Нажатие «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
, но тогда, если попытаться повторить движение с
;
, курсор не будет двигаться.