Перемещение курсора в 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», которая изображена в виде математического знака «плюс», и вводим для каждого действия свои настройки. Об этом по порядку:
- Перенести курсор к началу слова.
Key: cursor left
Modifier: option
Action: send string to shell
В поле ввода нажмите «Esc ⎋ + B» или вставьте код «\033b» - Перенести курсор к концу слова.
Key: cursor right
Modifier: option
Action: send string to shell
В поле ввода нажмите «Esc ⎋ + F» или вставьте код «\033f» - Перенести курсор в начало текста.
Key: cursor up
Modifier: option
Action: send string to shell
В поле ввода нажмите «Control ⌃ + E» или вставьте код «\005» - Перенести курсор в конец текста.
Key: cursor down
Modifier: option
Action: send string to shell
В поле ввода нажмите «Control ⌃ + A» или вставьте код «\001» - Удалить слово после курсора.
Key: forward delete
Modifier: option
Action: send string to shell
В поле ввода нажмите «Esc ⎋ + D» или вставьте код «\033d»
В дополнение стоит упомянуть про дополнительные клавиатурные сочетания, доступные либо только в графических приложениях, либо только в терминале:
| Действия | GUI | Terminal |
|---|---|---|
| Удалить строку | Command ⌘ + Backspace ⇧ | |
| Удалить все слева от курсора | Control ⌃ + U | |
| Удалить все справа от курсора | Control ⌃ + K |
Конечно, все индивидуально и каждый по-своему видит идеально настроенный Terminal. С вопросами или замечаниями добро пожаловать в комментарии.
Filed under Mans by on Nov 10th, 2009 Comment
Leave a Comment


Comments on Перемещение курсора в Terminal
И еще, хотелось бы пояснить, что говоря фразу «графические приложения», я подразумевал исключительно те приложения, которые написаны с использованием программной среды Cocoa. Это основной тулкит для Mac OS X, если вдруг кто не знает.
Я привык к эпизодическим заходам на всяческие HP-UX и отвык от использования курсорных клавиш, работаю только с Esc+letter.
Теперь есть, что настроить в Terminal.app :-)