vim이 디렉토리를 편집하는 것을 어떻게 막나요?

vim이 디렉토리를 편집하는 것을 어떻게 막나요?

가끔 실수로 vim에게 디렉토리에 있는 파일 대신 디렉토리를 편집하라고 지시할 때가 있습니다.

vim directory-name           # what I typed
vim directory-name/blah.txt  # what I meant to type

vim은 오류 메시지를 즉시 표시하지 않고 대신 "파일 편집기" 모드에서 디렉터리를 엽니다. 이 모드는 개인적으로 마음에 들지 않습니다.

내가 좋아하지 않는 파일 브라우저

vim이 디렉토리 열기를 거부하게 만드는 방법은 무엇입니까?

가능한 방법 중 하나는 .vimrc의 일부 설정을 변경하는 것입니다. 하지만 그 설정이 무엇인지는 모르겠습니다.

또 다른 가능성은 vim 주위에 래퍼 셸 별칭을 만들어 test -d "$1"파일을 열려고 하는지 확인하는 것입니다. 그러나 어떤 명령줄 인수가 플래그인지, 어떤 것이 파일 이름인지 구별할 수 있도록 이 별칭을 강력하게 만드는 방법을 모르겠습니다.

답변1

인수가 디렉터리인 경우 vimrc에 다음 줄을 입력하여 vim을 종료할 수 있습니다.

for f in argv()
  if isdirectory(f)
    echomsg "vimrc: Cowardly refusing to edit directory " . f
    quit
  endif
endfor

아니면 그냥 로그아웃하고 싶은 경우모두매개변수는 디렉토리입니다. 다음과 같이 시도해 볼 수 있습니다.

let ndirs = 0
for f in argv()
  if isdirectory(f)
    let ndirs += 1
  endif
endfor
if ndirs > 0 && ndirs == argc()
  echomsg "vimrc: Cowardly refusing to edit directories"
  quit
endif

답변2

이것은 플러그인의 출력처럼 보입니다 netrw.

~/.vimrc이 기능은 파일을 입력하여 비활성화할 수 있습니다 .

let loaded_netrwPlugin = 1

이제 디렉토리를 편집하려고 하면 오류 메시지가 표시됩니다 is a directory.

관련 정보