Pull to refresh

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

Development for MacOS
В моем случае, 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. С вопросами или замечаниями добро пожаловать в комментарии.

Источник: http://snupt.com
Tags:applemacterminalshortcuts
Hubs: Development for MacOS
Total votes 5: ↑4 and ↓1 +3
Views3.9K

Comments 4

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now

Frontend Software Development Engineer
from 3,000 to 5,000 $EnnablRemote job
Software Development engineer
from 4,000 to 5,000 $DataDirect Networks Inc. (DDN)Remote job
React Native (Mobile) Developer
from 130,000 to 270,000 ₽GXB DevelopmentRemote job
Tech Lead (Development)
from 180,000 ₽Game InsightRemote job
Frontend Development Lead
to 550,000 ₽NUTSonМоскваRemote job