Como posso impedir que o vim edite diretórios?

5

Às vezes, eu acidentalmente digo ao vim para editar um diretório em vez de um arquivo nele

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

Em vez de dar imediatamente uma mensagem de erro, o vim irá abrir o diretório em um modo "editor de arquivos" que eu pessoalmente não gosto:

Comopossofazerovimserecusaraabrirdiretórios?

Umcaminhopossívelpoderiaseralteraralgumasconfiguraçõesnomeu.vimrc,masnãoseioqueelasseriam.

Outrapossibilidadeseriacriarumaliasdeinvólucrodeinvólucroemtornodovimqueverifiquecomalgoaolongodaslinhasdetest-d"$1" para ver se estou tentando abrir um arquivo. No entanto, eu não sei fazer esse alias robusto para que ele possa diferenciar quais argumentos de linha de comando são sinalizadores e quais são nomes de arquivos.

    
por hugomg 23.07.2016 / 20:50

2 respostas

4

Você pode colocar as seguintes linhas no seu vimrc para sair do vim se algum dos seus argumentos for um diretório:

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

Alternativamente, se você quiser apenas sair se os argumentos all forem diretórios, você pode tentar algo assim:

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
    
por 23.07.2016 / 21:56
0

Isso parece com a saída do plugin netrw .

Isso pode ser desativado inserindo o arquivo ~/.vimrc .

let loaded_netrwPlugin = 1

Agora, se você tentar editar um diretório, receberá um erro is a directory .

    
por 23.07.2016 / 22:06

Tags