завершение удара: как выбрать среди различных альтернатив

В ударе, как я могу выбрать опцию из списка, отображенного ВКЛАДКОЙ?

Напр. Предположим vim <TAB> показывает различные возможности txt1 txt2 txt3. Как я могу выбрать первый (txt1)?

Править:

позвольте мне быть более точным дальнейшей разработкой предыдущего примера:

Предположим, что текущая папка содержит только названный файл txt1. Если я пишу vim t<TAB>, автозавершение правильно работает, т.е. оно отображается vim txt1.

Однако, если папка содержит три файла txt1, txt2, txt3, команда vim t<TAB> дисплеи только txt1 txt2 txt3, без любого автозавершения.

Как я могу заставить автозавершение происходить даже в последнем случае?

2
задан 22 March 2020 в 02:10

1 ответ

Bash работает следующий путь:

$ touch file1.txt file2.txt file3.txt video1.avi video2.avi
$ ls
file1.txt  file2.txt  file3.txt  video1.avi  video2.avi

Если Вы вводите первую букву f и хит СНАБЖАЕТ ВКЛАДКАМИ в первый раз, когда он автоматически заполняет его к file. При ударе ВКЛАДКИ во второй раз, когда она показывает все доступные варианты, запускающиеся с file. Существует три файла, запускающиеся с file префикс и bash не знает, кого из них Вы хотите.

$ vim.tiny file                    # the second tab
file1.txt  file2.txt  file3.txt 

Затем если Вы вводите следующий символ и нет никаких других файлов, запускающихся с него, он автоматически заполняет его полностью:

  • $ vim.tiny file1# 1 added to 'file' word
  • $ vim.tiny file1
  • ВКЛАДКА
  • $ vim.tiny file1.txt # result

Если Вы хотите, чтобы это работало так же, как это находится в zsh, Вы могли выполнить следующие команды:

bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'

Это будет вести себя следующий путь:

  • $ vim.tiny f
  • ВКЛАДКА
  • Результат:

    file1.txt  file2.txt  file3.txt  
    $ vim.tiny file1.txt
    
  • ВКЛАДКА
  • Результат: $ vim.tiny file2.txt
2
ответ дан 7 April 2020 в 23:31

Другие вопросы по тегам:

Похожие вопросы: