Вернитесь в обычный режим, не выходя из домашнего ряда

Я пробовал vim, и акцент на скорость и доступность имеет смысл для программиста-ветерана. Раньше я использовал emacs, а сейчас использую комбинацию nano и тому подобное gedit или geany.

Меня смущает необходимость постоянно переключать режимы, а также то, что для возврата из режима вставки в обычный режим необходимо покинуть домашнюю строку, чтобы нажать Esc. Я читал, что ранее эта клавиша была Tab в некоторых системах, где впервые использовался vim, что имеет гораздо больше смысла, но не в современных системах, где ожидается, что табуляция будет участвовать в интеллектуальных отступах при кодировании. .

Возврат в обычный режим — это операция, которую нужно выполнять постоянно. Есть ли какое-то альтернативное сопоставление клавиш, которое делает это быстрее, или сопоставления, о которых я просто не знаю, делают это?


person Matt Joiner    schedule 31.01.2011    source источник


Ответы (7)


Вы также можете использовать ^[. Если вы сопоставили клавишу Caps Lock с управлением (настоятельно рекомендуется), это становится довольно простым нажатием клавиши.

person Lily Ballard    schedule 31.01.2011
comment
Я слышал о пользователях vi, которые переназначают CapsLk на Esc, но это то, что я делаю. +1 Кроме того, ^C выходит в обычный режим, но имеет другие эффекты. - person ephemient; 31.01.2011
comment
Лично мне также нравится ^[ с заглавными буквами, переназначенными на ctrl. Другие идеи, включая переназначение jj на ‹esc›, см. на этой странице: vim.wikia.com/wiki /Avoid_the_escape_key - person martinl; 31.01.2011

Ctrl+C также возвращает вас в обычный режим

person dimba    schedule 31.01.2011

Лично я использую клавишу Capslock в качестве второй клавиши Esc, так что это очень удобно. Вы можете сделать это, добавив следующие строки в файл .xmodmap:

remove Lock = Caps_Lock
keysym Caps_Lock = Escape
person tungd    schedule 31.01.2011

Вы можете отобразить все, что вам нравится, чтобы сбежать:

imap kj <Esc>

Я еще не сталкивался с ситуацией, когда мне нужно набирать kj рядом друг с другом, кроме того, когда я говорю об этом отображении. Я видел, как другие люди используют jk или jj, но для меня лучше всего подходит kj.

person Fred Nurk    schedule 31.01.2011
comment
Я еще не... :) Тем не менее, просто подождите секунду между ними, и сопоставление не вступит в силу. - person Fred Nurk; 31.01.2011

Я лично использую ii, чтобы выйти из режима вставки, оставаясь в домашней строке, но это только вопрос личных предпочтений:

inoremap ii <Esc>

i для входа вставки и ii для выхода вне. Пальцу это легко запомнить. (Хотя я все еще использую <Esc>)

person Xavier T.    schedule 31.01.2011

Лично я использую Left Control как escape и Caps Lock как Left Control. Это не отображение vim, а какая-то магия xmodmap+setxkbmap:

! ~/.Xmodmap
! Control_R
keycode 37 = Escape

и ctrl:nocaps в параметрах клавиатуры X. Однако у вас может быть другой код ключа.

person ZyX    schedule 31.01.2011

Используйте Alt/Meta в терминале

Если вы используете Vim в терминале, просто нажмите клавишу alt/meta+normal_mode_key. Большинство терминалов отправляют escape-символ, за которым следует клавиша normal_mode_key, которую вы нажали, что устраняет необходимость нажимать escape-символ самостоятельно.

Терминалы konsole и gnome по умолчанию отправляют экран, когда вы нажимаете клавишу alt/meta+normal_mode_key. Для Xterm вы можете нажать Ctrl+щелчок и выбрать опцию Meta посылает escape или Alt посылает escape.

Таким образом, в режиме вставки нажатие alt+h alt+j alt+k alt+l переводит вас в обычный режим и перемещает в ожидаемом направлении. Вы можете удерживать Alt при движении даже в обычном режиме, так как дополнительный ESC, который отправляется, не наносит вреда.

Преимущество использования этой схемы заключается в том, что вы можете использовать комбинацию клавиш alt/meta+ с любой клавишей обычного режима, например.

Alt+o opens a new line below the one you are currently editing,
Alt+A appends to the end of the current line,
Alt+p pastes at the current insert location.
Alt+k moves up 

Таким образом, использование vim через терминал дает вам эти возможности быстрого доступа в любой стандартной стандартной системе без необходимости редактировать сопоставления vim для каждой системы.

person alzee    schedule 20.06.2020