Перемещение курсора в Terminal

Перемещение курсора в TerminalВ моем случае, Terminal.app является одним из самых активно используемых приложений в операционной системе. И первое, что кажется неудобным, это реакция на привычные комбинации клавиш, касающиеся перемещения курсора. Поясню на примере графических приложений. Вам наверняка часто приходится работать с редактированием текста, и применять клавиатурные комбинации с использованием стрелок и системных клавиш, для того, что бы передвинуть курсор к началу слова или строки. Так вот вынужден вас разочаровать, но в терминале эти фокусы работать не будут до тех пор, пока мы не сунемся туда с напильником. За дело.

На самом деле, я выразился не совсем корректно. Вышеописанные действия сделать возможно, но придется использовать несколько иные комбинации. Какие именно? В ответ на этот вопрос я сравнил сочетания клавиш выполняемые в графическом интерфейсе, с теми, что используются в терминале, и запечатлел результат в следующей таблице:

Действия GUI Terminal
Перенести курсор
к началу слова
Option ⌥ + Клавиша влево ← Esc ⎋ + B
Перенести курсор
к концу слова
Option ⌥ + Клавиша вправо → Esc ⎋ + F
Перенести курсор
в конец текста
Option ⌥ + Клавиша вниз ↓ Control ⌃ + A или
Shift ⇧ + Home ↖
Перенести курсор
в начало текста
Option ⌥ + Клавиша вверх ↑ Control ⌃ + E или
Shift ⇧ + End ↘
Удалить слово
перед курсором
Option ⌥ + Backspace ⌫ Control ⌃ + W или
Option ⌥ + Backspace ⌫
Удалить слово
после курсора
Option ⌥ + Delete ⌦ Esc ⎋ + D

На данный момент моя цель привести все к какой-то одной схеме. Технически, гораздо проще просто настроить терминал, который, к слову, обладает довольно гибкими настройками. Нам нужно зайти в меню Settings, подменю Keyboard. Для тех у кого русская локализация, можете посмотреть скриншот ниже, что бы сориентироваться:

В терминале можно работать как локально, так и удаленно. Что бы добиться более полной совместимости с другими операционными системами, по части управления с клавиатуры, нам необходимо будет поставить галочку перед надписью «Use option as meta key». Это действие также избавит от проблем, которые могут возникнуть при использовании некоторых текстовых редакторов. Теперь вернемся к задуманному. Нажимаем кнопку «Add key setting», которая изображена в виде математического знака «плюс», и вводим для каждого действия свои настройки. Об этом по порядку:

  1. Перенести курсор к началу слова.
    Key: cursor left
    Modifier: option
    Action: send string to shell
    В поле ввода нажмите «Esc ⎋ + B» или вставьте код «\033b»
  2. Перенести курсор к концу слова.
    Key: cursor right
    Modifier: option
    Action: send string to shell
    В поле ввода нажмите «Esc ⎋ + F» или вставьте код «\033f»
  3. Перенести курсор в начало текста.
    Key: cursor up
    Modifier: option
    Action: send string to shell
    В поле ввода нажмите «Control ⌃ + E» или вставьте код «\005»
  4. Перенести курсор в конец текста.
    Key: cursor down
    Modifier: option
    Action: send string to shell
    В поле ввода нажмите «Control ⌃ + A» или вставьте код «\001»
  5. Удалить слово после курсора.
    Key: forward delete
    Modifier: option
    Action: send string to shell
    В поле ввода нажмите «Esc ⎋ + D» или вставьте код «\033d»

В дополнение стоит упомянуть про дополнительные клавиатурные сочетания, доступные либо только в графических приложениях, либо только в терминале:

Действия GUI Terminal
Удалить строку Command ⌘ + Backspace ⇧
Удалить все слева от курсора Control ⌃ + U
Удалить все справа от курсора Control ⌃ + K

Конечно, все индивидуально и каждый по-своему видит идеально настроенный Terminal. С вопросами или замечаниями добро пожаловать в комментарии.

Источник: snupt.com