vi <TAB> завершает только каталоги в bash

В каталоге я набираю vi а затем tab (дважды), это дает мне

 user$ vi CMakeFiles/ global/ libs/ 

тогда как ls за которым следуют 2 вкладки, дает мне

 user$ ls ! core.log CMakeFiles/ global/ libs/ _jni/ 

(Примечание: ls имеет псевдоним для `ls -Ah –color = auto ' , _jni – символическая ссылка, и ни один из файлов не скрыт.)

Я думаю, что vi не показывает никаких файлов, а только каталогов во время выполнения табуляции. Почему это происходит? Как заставить vi вести себя так же, как ls ? Я поместил следующую строку в ~ / .vimrc после прохождения одного из сообщений в SE. Но в этом случае он ничего не делает.

 set wildmode=longest,list,full set wildmenu 

Версия vi : VIM-Vi IMproved version 7.3.429
Версия ls : ls (GNU coreutils) 8.13

  • Как я могу использовать vi для редактирования строки подсказки утилиты?
  • Какова точка режима виртуальной замены в Vim?
  • Переместить в crontab -e editor
  • Невозможно планировать задачи в crontab
  • vi для добавления пустой строки?
  • Vim - Есть ли способ получить немедленную визуальную обратную связь во время вставки в режиме визуального блока?
  • Как поместить текущую строку вверху / центру / внизу экрана в vim?
  • Symlink везде
  • 3 Solutions collect form web for “vi <TAB> завершает только каталоги в bash”

    У меня была такая же проблема в Arch Linux, и, наконец, я обнаружил, что это проблема с функцией завершения.

    используйте complete -r vim для удаления дополнения. (или поместите эту строку в ваш bashrc)

    Это поведение напрямую не связано с командой ls или бинарным vi. Вместо этого он контролируется функцией завершения вкладки вашей оболочки. Если вы используете bash на linux, вы, вероятно, получили /etc/bash_completion и /etc/bash_completion.d/* полные правила для того, как реализовать завершение.

    Убедитесь, что в вашем файле /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 

    Выполните эту команду в оболочке. Альтернативно добавьте выше строку в файле /etc/bash_completion и выполните:

     bash /etc/bash_completion 
    Linux и Unix - лучшая ОС в мире.