Нажатие «v» в терминале открывает bash-fc.some_random_string в редакторе

Недавно я начал использовать привязку клавиш vim в терминале. Я изменил привязку клавиш терминала, добавив следующую строку в файл ~/.bashrc.

      set -o vi

Но я заметил проблему с ним. Когда я перехожу в обычный режим, нажимая клавишу «Escape», а затем нажимая «v», он открывает файл со следующим именем в редакторе по умолчанию.

/tmp/bash-fc.some_random_string_здесь

например, /tmp/bash-fc.PFb1Vy

Я пытался проверить все ярлыки терминала, но не смог найти там ничего с буквой «v». Хотя я новичок в написании сценариев оболочки, я проверил файл ~/.bashrc, но не смог найти ничего, связанного с «bash-fc».

Может ли кто-нибудь из вас любезно сказать мне, в чем причина этого? Это действительно раздражает, когда каждый раз случайно открываешь vim и выходишь из него :(

1 ответ

В Vi-режиме Bash нет визуального режима. В vобычном режиме выводит текущую строку в предпочитаемом пользователем редакторе. Там набирают/редактируют команду, а после сохранения и выхода из редактора (в Vim, :xили же :wq), Bash выдает команду.

Чтобы отключить привязку , вы можете повторно привязать ее к незаметной операции. Просто добавьте это в ~/.inputrcфайл:

      set keymap vi-command
"v":redraw-current-line

Этот файл влияет только на GNU Readline (библиотеку, которая обрабатывает пользовательский ввод в Bash), но не на сам редактор Vim.


В настоящее время пользователи Vi-mode останавливаются в основном на недокументированных основаниях (vего нет ни в руководстве Bash, ни в руководстве Readline ) и сталкиваются с некоторыми ошибками. Например, если вы наберете

      a b b

в подсказке поставьте курсор на aа потом попробуй tbв обычном режиме курсор переместится на первую b, но тогда, если попытаться повторить движение с ;, курсор не будет двигаться.

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