diff <(bind -p -m vi-move) <(bind -p -m vi-command)
не показывает никакой разницы, поэтому я думаю, что они просто синонимы. Тем не менее, документация readline только утверждает, что vi и vi-команда эквивалентны и, несмотря на то, что в одном и том же параграфе упоминается vi-mode, она не может утверждать эквивалентность между этими тремя режимами. Итак, я спросил Чет Рами, и его авторитетный ответ был «да [три одинаковы]».
Что на самом деле делает раскладка клавиш "vi-move" в режиме vi Bash?
В разделе «Карта клавиш» в Справочном руководстве по Bash говорится, что одним из приемлемых вариантов является «vi-move». Кажется, нет никакого описания того, что это соответствует. Я хорошо знаком с "vi-command" и "vi-insert", но, похоже, ничего не могу найти относительно "vi-move".
Я надеялся, что этот вопрос пролил свет на некоторые вещи, но не повезло.
3 ответа на вопрос
При локальном поиске в руководстве по bash строка «vi-move» отображается в разделе «Привязки к режиму VI»:
VI Mode bindings VI Insert Mode functions "C-D" vi-eof-maybe ... <snip> "C-[" vi-movement-mode ...
При vim
этом :help ^[
показывает это:
i_CTRL-[ i_<Esc> <Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode. Finish abbreviation. Note: If your <Esc> key is hard to hit on your keyboard, train yourself to use CTRL-[.
Это просто клавиша перехода для перехода из режима вставки в обычный режим, так что я думаю, что vi-move
в основном это обычный режим в vim. Я не уверен, как это сопоставляется с чем-то полезным в Bash. Мои keymap
показы либо зависят, vi
либо в vi-insert
зависимости от того, вызываю ли я bash -V, набирая его или нажимая Esc k CR
кнопку воспроизведения из истории.
vi-move
, vi-command
И vi
являются синонимами одного и та же раскладка (как доказано @memeplex), и являются одним набором активного по vi-movement-mode
команде.
Карта vi-insert
ключей активируется editing-mode vi
командой или set -o vi
.
Обратите внимание, что в bash
v4.3.11 (1) выполнение vi-movement-mode
команды, когда раскладка клавиатуры emacs
активна, не изменяет приглашение, если оно show-mode-in-prompt
есть on
, но при изменении на vi-editing-mode
делает. Обходной путь здесь .
Похожие вопросы
-
2
.profile в Mac OS X?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
13
Какие функции Vim вы используете?
-
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
2
Можно ли передать выходные данные одной команды двум другим командам?
-
8
Переименуйте группу файлов одной командой
-
2
Почему мой путь не обновляется * сейчас *?
-
5
Как удалить символическую ссылку на каталог?
-
8
Спаси меня от бессмысленного терминала
-
9
Как можно добавить номер строки и табуляцию к каждой строке текстового файла?