Eu tive o mesmo problema no Arch Linux e, finalmente, descobri que esse era o problema da função de conclusão.
use complete -r vim
para remover o completer. (ou coloque essa linha no seu bashrc)
Em um diretório eu digito vi
e então a aba (duas vezes), isso me dá
user$ vi
CMakeFiles/ global/ libs/
considerando que ls
seguido por 2 tab s me dá
user$ ls
! core.log CMakeFiles/ global/ libs/ _jni/
(Nota: o ls é aliado para 'ls -Ah --color = auto' , _jni é um link simbólico e nenhum dos arquivos está oculto.)
Acho que vi
não está exibindo nenhum arquivo, mas apenas diretórios durante a conclusão da tabulação. Por que isso está acontecendo? Como fazer com que vi
se comporte como ls
? Eu coloquei a seguinte linha em ~ / .vimrc depois de passar por um dos posts no SE. Mas não parece fazer nada neste caso.
set wildmode=longest,list,full
set wildmenu
Versão do vi
: VIM - Vi Versão aprimorada 7.3.429
Versão de ls
: ls (GNU coreutils) 8.13
Esse comportamento não está diretamente relacionado ao comando ls ou ao vi binário. Em vez disso, ele é controlado pela função de conclusão da guia do seu shell. Se você estiver usando o bash no linux, provavelmente terá /etc/bash_completion
e /etc/bash_completion.d/*
de regras para implementar a conclusão.
Verifique se a linha semelhante à abaixo está presente no seu arquivo /etc/bash_completion
:
complete -f -X '*.@(o|so|so.!(conf)|a|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite
Execute este comando no shell. Como alternativa, adicione a linha acima no arquivo /etc/bash_completion
e execute:
bash /etc/bash_completion
Tags bash vi autocomplete