В putty, как я в основном использовал VIM, я мог бы сделать следующее:
- Страница вверх / вниз: с помощью родной страницы вверх / вниз. В Mac альтернативой является Fn + Up / Down, которая не работает в терминале (не прокручивает файл vim, но прокручивает буфер терминала)
- Точно так же клавиши Fn + вправо / влево не выводят меня на начало / конец строки
Как мне эмулировать эту функциональность в Mac OS X?
Ответы:
Это не вопрос макинтоша, это вопрос vi.
В режиме навигации ctrl-f прокручивает страницу вниз, а ctrl-b прокручивает страницу вверх (например, «F» или «B»). Ctrl-d прокручивает до половины страницы, а ctrl-u прокручивает до половины страницы.
^ переводит вас в начало строки, а $ в конец. Я знаю, я знаю, но для этого есть исторические причины.
Вот действительно хороший шпаргалка по элементам управления vi. vi немного загадочен, но как только вы его усвоите, это самый быстрый и приятный текстовый редактор в мире.
источник
Настройки терминала по умолчанию отображаются Shift- Page Upи Shift- Page Downна последовательности символов, которые говорят программам, таким как Vim и Emacs, прокручивать (
ESC [ 5 ~
иESC [ 6 ~
).Если вы хотите, чтобы эти клавиши отправляли последовательности символов на терминал без Shiftмодификатора, вы можете настроить раскладку клавиатуры:
Если вы сделаете это, я рекомендую инвертировать значение Shiftмодификатора для этих клавиш, поменяв местами сопоставления для сдвинутых и несмещенных клавиш, чтобы альтернативные варианты поведения все еще были доступны. Также см. Меню « Вид» , в котором содержатся команды прокрутки, использующие Commandмодификатор, поэтому они доступны независимо от карты клавиатуры терминала.
Аналогично, Shift- Homeи Shift- Endотображаются для перемещения в начало / конец текущей строки (
ESC [ H
иESC [ F
). Эти последовательности понятны Bash, но вам, возможно, придется настроить Vim, чтобы понять их, или отредактировать сопоставления специально для Vim. Vim, Emacs и некоторые другие программы отправляют управляющую последовательность, чтобы перевести терминал в «Режим курсора приложения», куда отправляются клавиши Home / EndESC O H
иESC O F
, но Terminal (по состоянию на 10.9) не реализует это поведение. Поэтому вы можете изменить карту клавиатуры, чтобы вместо этого отправлять эти другие коды (Bash также понимает их). (На других ОС Homeи Endиспользуются для начала / конца строки, поэтому Терминал предоставляет им Shiftмодификатор симметрии.)Control- Left Arrowи Control- Right Arrowтакже отображаются по умолчанию для последовательностей "переход к началу / концу строки", хотя они отличаются от тех, которые отображаются на Shift- Homeи Shift- End. Вместо этого они отображаются в Emacs- и Bash-совместимые последовательности
ESC [ 5 D
иESC [ 5 C
. Предполагая, что они не используются Vim, самый простой подход - настроить Vim для их принятия, используя ~ / .vimrc.Обратите внимание, что в более поздних версиях macOS у Терминала больше нет явных сопоставлений по умолчанию Homeи Endв настройках. Вместо этого он имеет динамическое поведение, когда ключи автоматически отображаются на начало / конец строки, когда активен альтернативный экран - например, при использовании полноэкранного приложения, такого как emacs, vim, screen или tmux. При использовании линейно-ориентированной программы, такой как оболочка, на главном экране, они продолжают прокручивать вид терминала по умолчанию. ShiftМодификатор инвертирует поведение.
источник
\033[5~
(и ... 6.) Для PageDown / Up.Самое простое и лучшее решение - это
n
+↓
, гдеn
указано количество строк, которое вы хотите уменьшить, и↓
клавиша «Вниз».Я регулярно просто делаю
12
+↓
и22
+↓
.источник
Я привык к Home / End, приводя меня к началу и концу строк в режиме вставки (от использования в Windows и, я думаю, в Linux), который Mac не поддерживает. Это особенно раздражает, потому что когда я использую vim в удаленной системе, я также не могу легко это сделать. После некоторых мучительных проб и ошибок я придумал несколько
.vimrc
строк, которые делают то же самое, и в конце концов нашел кого-то еще, кто придумал подобное решение здесь:https://coderwall.com/p/fd_bea
Наслаждаться.
источник