В разделе "Карта клавиш" в Справочном руководстве по Bash говорится, что одним из приемлемых вариантов является «vi-move». Кажется, нет никакого описания того, что это соответствует. Я хорошо знаком с "vi-command" и "vi-insert", но не могу найти что-нибудь относительно "vi-move".

Я надеялся, что этот вопрос пролил свет на некоторые вещи, но не повезло.

3 ответа3

1

diff <(bind -p -m vi-move) <(bind -p -m vi-command) показывает никакой разницы, поэтому я думаю, что это просто синонимы. Тем не менее, документация readline только утверждает, что vi и vi-команда эквивалентны и, несмотря на то, что в одном и том же параграфе упоминается vi-mode, она не может утверждать эквивалентность между этими тремя режимами. Итак, я спросил Чет Рами, и его авторитетный ответ был «да [три одинаковы]».

0

vi-move , vi-command и vi являются синонимами для одной и той же таблицы ключей (что подтверждено @memeplex) и являются активными командой vi- Move 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 делает. Обходной путь здесь.

0

При локальном поиске в руководстве по 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 для воспроизведения из истории.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .