Горячие клавиши «Home» и «End» в режиме Vim INSERT на MacBook Pro

Я новичок в Vim и Mac, у меня есть MacBook Pro с дисплеем Retina под управлением OS X 10.8.3, в котором НЕТ родных клавиш Home, и .EndPageUpPageDown

Я знаю, что Fn+ arrow keysможет работать в некоторых приложениях. Также в bash я могу использовать Ctrl+ Aперейти к началу командной строки, которую я печатаю, и Ctrl+ Eперейти к концу.

Но в Vim с режимом INSERT/edit все это работает по-другому. Я не хочу всегда переключаться в обычный режим, используя 0и $или Iи A. (Или это лучший способ?)

Итак, может ли кто-нибудь показать мне некоторые приемы для сопоставления некоторых горячих клавиш, которые могут работать удобно? Или какие-то другие решения? (Но, пожалуйста, без MacVim, я хочу сначала попробовать родной Vim:))?

Любые другие советы по Home, и функциям под Mac также приветствуются End.PageUpPageDown

Ответы (3)

Перейдите в Терминал -> Настройки -> Профили -> Клавиатура и добавьте:

Клавиша: ↖ Действие: \033OH

Ключ: ↗ Действие: \033OF

Vim позволяет вам сопоставлять любую последовательность клавиш с другой последовательностью клавиш с помощью :mapкоманды. Существует несколько типов этой команды, которые можно использовать для создания ярлыков только для некоторых режимов vim. Подробности смотрите на этой странице и/или в команде vim.:help map

Что касается ваших вопросов, в vim есть два способа реализовать Homeповедение:

  • 0(ноль), чтобы перейти к самому первому столбцу
  • ^перейти к столбцу с первым непробельным символом в данной строке

Ведь Endможно использовать $. Для PageUpи PageDownможно использовать Ctrl+Fи Ctrl+Bсоответственно.

Эти клавиши работают только в командном режиме, но вы можете переназначить их для использования в режиме вставки с помощью :imap(«i» здесь для режима вставки) и Ctrl+F. Например, чтобы сопоставить Ctrl+Aдействие, 0используйте эту команду:

:imap <C-a> <C-o>0

Это очень стандартная команда vim, и она должна прекрасно работать в консоли vim, gvim, mvim и т. д.

Всего один совет. По умолчанию bash работает в «режиме emacs». Вы можете изменить его на «режим vi». Bash использует пакет readline для редактирования вашей командной строки, для получения более подробной информации прочитайте раздел «READLINE» на странице руководства bash.

Короче говоря, вы можете переопределить множество привязок клавиш в файле с именем .inputrc, который должен находиться в вашей домашней папке.

readline также используется рядом других утилит и мест, таких как интерактивная оболочка python.