vim에게 파일의 압축을 풀지 말라고 알리는 방법


15

.xlsxVim에서 파일 을 열려고하는데 오류가 발생했습니다.

***error*** (zip#Browse) unzip not available on your system  

바이너리 파일이라는 것을 알고 있지만 체크섬을 수행하고 16 진수로 변환하려고합니다.

확장을 변경해도 Vim은 더 이상 확장을 시도하지 않습니다. 내 질문으로 연결됩니다.

vim이 파일의 압축을 풀지 않고 파일을 열도록 지시하는 방법이 있습니까?

FWIW, 저는 Windows 7에서 Vim 7.4를 사용하고 있습니다.


Linux 시스템에서 동일한 오류가 발생하므로 Windows 관련 동작이 아닌 것 같습니다
Martin Tournoij

1
호기심 때문에, 왜 vim 내에서 체크섬 / 육각을하고 있습니까?
Random832

이 기회에 @ Random832, 그것이 내 마음에 온 첫 번째 이유이기 때문입니다. 대부분 의 경우 전체 파일 대신 범위 를 체크섬 할 수 있기 때문에 원시로 전환 할 수 있기 때문에 16 진수입니다.
Roflo

답변:


16

이와 같은 기능은 autocmds에 의해 처리됩니다 . 특정 명령에 대해 autocmds를 비활성화하려면 :noautocmd(약어 :noau)를 사용할 수 있습니다 . 이 경우

:noau e foo.xlsx

zip 파일을 열려고 시도하는 autocmd를 트리거하지 않고 단순히 원시 파일을 엽니 다.

쉘에서 이것을 사용할 수도 있습니다.

$ vim -c 'noau e foo.xlsx'

모든 autocmd를 비활성화하는 것보다 더 세분성을 원한다면 옵션을 사용하여 BufRead/ BufReadPreautocmds를 일시적으로 비활성화 할 수 'eventignore'있습니다.

:set ei=BufRead,BufReadPre
:e foo.xlsx
:set ei=

zip 플러그인으로 정의 된 autocmd/ 만 비활성화 할 수도 augroup있습니까? 나는 이것을 좋아하지만 (+1), 예를 들어, autocmd구문 강조 표시를 비활성화하고 큰 파일 (예 : 일반적인 파일)에 대해 비활성화하면 부작용으로 비활성화 할 수 있습니다 .
Martin Tournoij

@Carpetsmoker 일시적으로 아닙니다. 그룹 이름 (이 경우 "zip")을 알고 있으면을 사용하여 해당 그룹에 정의 된 모든 autocmd를 정의 할 수 없습니다 augroup zip | exe 'au!' | augroup END.
jamessan

10

이것은 "zip"플러그인으로 보입니다.이 플러그인은 Vim과 함께 제공되며 기본적으로 활성화되어 있습니다.

:help zip 무엇보다도 그것에 대한 정보가 있습니다.

로딩 방지

어떤 이유로 vim을 사용하여 압축 파일을 검사하지 않으려면 다음 두 변수를 <.vimrc>에 넣어 zip 플러그인이로드되지 않도록 할 수 있습니다.

let g:loaded_zipPlugin= 1                                               
let g:loaded_zip      = 1                                               

이 두 줄을 추가하면 .zip파일을 다른 파일로 열 수 있습니다.

그건 그렇고 나는 이것에 대해서도 몰랐다. 그러나 오류 메시지가 언급 zip#Browse되었으므로 :help zip올바른 문서 페이지에 입력 하고 착륙했습니다 :-)

Vim의 문서에서 주제를 어떻게 탐색합니까?를 참조하십시오 . Vim의 도움말 시스템에 대한 추가 정보 및 팁이 필요합니다.

& tar를 사용하는 것을 제외하고 플러그인 에서도 작동합니다 .g:loaded_tarPluging_loaded_tar


그 트릭을 수행합니다. 문서 질문에 링크하여 +2 할 수 없습니다.
Roflo

@Roflo 나는 그 게시물에 대해 어떤 신용도 취할 수 없습니다, 그것은 모든 romainl 의 작품입니다 :-)
Martin Tournoij
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.