vi O TAB completa apenas diretórios no bash

3

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

    
por user13107 30.10.2012 / 05:05

3 respostas

5

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)

    
por 30.10.2012 / 05:11
4

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.

    
por 30.10.2012 / 05:19
0

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
    
por 02.07.2014 / 07:55