Есть ли какой-нибудь способ в терминале OS X перемещать курсор слово за словом?

StackOverflow https://stackoverflow.com/questions/81272

Вопрос

Я знаю комбинацию Ctrl+A чтобы перейти к началу текущей команды, и Ctrl+E допрыгнуть до конца.

Но есть ли какой-нибудь способ перейти слово в слово, например Альт+/ в приложениях Cocoa есть?

Это было полезно?

Решение

Из коробки вы можете использовать довольно причудливые Esc+F чтобы перейти к началу следующего слова и Esc+B чтобы перейти к началу текущего слова.

Другие советы

В Mac OS X - следующие сочетания клавиш работают по умолчанию.Обратите внимание, что вы должны сделать Вариант ключ действует как Мета в настройках терминала (на вкладке клавиатура)

  • alt (⌥)+F прыгать Fили вперед одним словом
  • alt (⌥)+B прыгать Bэквард одним словом

Я заметил, что привязки клавиш emacs по умолчанию для простой текстовой навигации, похоже, работают в оболочках bash.Вы можете использовать

  • alt (⌥)+D чтобы удалить слово, начинающееся с текущей позиции курсора
  • ctrl+A чтобы перейти к началу строки
  • ctrl+E чтобы перейти к концу строки
  • ctrl+K чтобы прервать строку, начинающуюся с позиции курсора
  • ctrl+Y чтобы вставить текст из буфера уничтожения
  • ctrl+R для обратного поиска команд, которые вы вводили в прошлом, из вашей истории
  • ctrl+S для переадресации поиска (для меня работает в zsh, но не в bash)
  • ctrl+F для продвижения вперед с помощью символа
  • ctrl+B для перемещения назад на символ
  • ctrl+W чтобы удалить слово в обратном направлении из положения курсора

Вот как вы можете это сделать

По умолчанию в терминале есть следующие сочетания клавиш для перемещения (влево и вправо) слово за словом:

  • esc+B (слева)
  • esc+F (справа)

Вы можете настроить альт+ и чтобы сгенерировать эти последовательности для вас:

  • Откройте настройки терминала (cmd+,);
  • На вкладке "Настройки" выберите "Клавиатура" и дважды щелкните ⌥ ← если оно там есть, или добавьте его, если его нет.
  • Установите желаемый модификатор и введите комбинацию клавиш в поле: esc+B, генерирующий текст \033b (вы не можете ввести этот текст вручную).
  • Повторите для слова-правильно (esc+F становится \033f)

Кроме того, вы можете сослаться на эту запись в блоге на сайте textmate:

http://blog.macromates.com/2006/word-movement-in-terminal/

Переключиться на иТерм2.Это бесплатно и намного приятнее, чем обычный старый терминал.Также в нем гораздо больше возможностей для настройки, таких как сочетания клавиш.

Также мне нравится, что вы можете использовать cmd и 1-9 для переключения между вкладками.Попробуйте, и вы никогда не вернетесь к обычному терминалу :)

Как настроить пользовательские настройки клавиатуры в iterm2

  • Установить iTerm2
  • Запустите, а затем перейдите на панель настроек.
  • Перейдите на вкладку профили клавиатуры
  • Вам нужно будет либо скопировать профиль на что-то новое, а затем удалить сочетания клавиш со стрелками, такие как ^+ Правильно/Слева или, если вам не нужна резервная копия, просто удалите их из профиля по умолчанию.
  • Затем убедитесь, что ваш измененный профиль выбран (отмечен звездочкой).

Picture 1.png

  • Теперь выберите вкладку клавиатура (в самом верхнем ряду).

iTerm 2

  • Нажмите на кнопку "Плюс", чтобы добавить новое сочетание клавиш
  • В первом поле введите CMD+Стрелка влево
  • Во втором поле выберите "отправить escape-код".
  • В третьем поле введите букву B

Picture 2.png

  • Повторите с нужными комбинациями клавиш. побег+B перемещает одно слово влево, побег+f перемещает одно слово вправо.
  • возможно, вы также захотите настроить cmd+d чтобы удалить слово перед курсором с помощью побег+d

Я часто нажимаю не на ту кнопку (cmd / контроль / альт) с помощью клавиши со стрелкой, и поэтому у меня есть свои комбинации клавиш со стрелками и все эти кнопки настроены для перехода вперед и назад по словам, но, пожалуйста, делайте то, что подходит вам лучше всего.

На самом деле есть гораздо лучший подход.Удерживать вариант ( альт на некоторых клавиатурах) и нажимайте клавиши со стрелками влево или вправо для перемещения по слову.Все очень просто.

вариант
вариант

Также ctrle доставит вас в конец очереди и ctrla это приведет вас к самому началу.

У меня есть Альт+/ работающий:Открыть Настройки »Settings » Клавиатура, установите запись для курсор опции влево Для отправить строку в оболочку:\033b, и установить курсор опции справа Для отправить строку в оболочку:\033f.Вы также можете использовать это для других комбинаций клавиш управления.

На самом деле это зависит от того, какую оболочку вы используете, однако большинство оболочек имеют похожие привязки.Привязки, на которые вы ссылаетесь (например Ctrl+A и Ctrl+E) - это привязки, которые вы найдете во многих других программах, и они используются целую вечность, кстати, также работают в большинстве приложений пользовательского интерфейса.

Вот обзор привязок по умолчанию для Bash:

Наиболее важные сочетания клавиш Bash

Пожалуйста, также обратите внимание, что вы можете настроить их.Вам нужно создать файл, назовите его так, как вы хотите, я назвал свой .bash_key_bindings и поместил его в свой домашний каталог.Там вы можете задать некоторые общие параметры bash, а также установить привязки клавиш.Чтобы убедиться, что они применены, вам необходимо изменить файл с именем ".bashrc" этот bash считывается при запуске (вы должны создать его, если он не существует) и выполнить следующий вызов там:

bind -f ~/.bash_key_bindings

~ означает домашний каталог в bash, как указано выше, вы можете назвать файл так, как вам нравится, а также разместить его там, где вам нравится, при условии, что вы укажете правильный путь + имя для привязки.

Позвольте мне показать вам несколько выдержек из моего файла .bash_key_bindings:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

Они просто устанавливают пару параметров (например,отключите звонок;все это можно посмотреть на веб-странице bash).

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

Они гарантируют, что сами по себе символы просто ничего не делают, кроме как следят за тем, чтобы символ был "напечатан" (они вставляются в оболочку).

"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line

Это довольно интересно.Если я ударю Ctrl+D в одиночку (я выбрал d для удаления) ничего не происходит.Но если я затем введу строчную букву w, слово слева от курсора будет удалено.Однако, если я наберу верхний регистр, слово справа от курсора будет уничтожено.То же самое относится к l и L относительно всей строки, начинающейся с курсора.Если я наберу "a", фактически будет удалена вся строка (все до и после курсора).

Я сделал скачок на одно слово вперед на Ctrl+F и одно слово назад на Ctrl+B

"\C-f": forward-word
"\C-b": backward-word

Как вы можете видеть, вы можете создать ярлык, который немедленно приведет к действию, или вы можете создать ярлык, который просто вводит последовательность символов, а затем вам нужно ввести один (или более) символов, чтобы выполнить действие, как показано в примере далее выше.

Поэтому, если вас не устраивают привязки по умолчанию, не стесняйтесь настраивать их по своему усмотрению.Вот такой ссылка на руководство по bash для получения дополнительной информации.

Если вы являетесь пользователем Vim, вы можете попробовать vim-режим bash.Запустите это или поместите в свой ~/.bashrc файл:

set -o vi

По умолчанию вы находитесь в режиме вставки;нажмите escape, и вы сможете передвигаться точно так же, как в обычном режиме Vim, так что перемещение по слову - это w или b, и тот обычные клавиши перемещения также работают.

Если вы проверите Use option as meta key на вкладке клавиатура настроек, затем команды в стиле emacs по умолчанию для прямого и обратного ввода word и ⌥F (Альт+F) и ⌥B (Альт+B) соответственно.

Я бы порекомендовал почитать От Bash до Z-Shell.Если вы хотите увеличить свое мастерство в bash / zsh!

Начиная с Mac OS X Lion 10.7, Карты терминалов Вариант-Стрелка влево/Вправо Для Esc-б/ф по умолчанию, так что теперь это встроено в bash и другие программы, использующие эти emacs-совместимые привязки клавиш.

В Bash они связаны с Esc-B и Esc-F.В Bash есть еще много-много сочетаний клавиш;взгляните на результаты работы bind -p чтобы увидеть, что они собой представляют.

Под iterm2's Настройки > Профиль > Ключи, вы нажимаете на + ниже Сопоставления ключей и запишите новый ярлык.Для Экшен, выберите Send Escape Sequence и введите b или f для обратного и переднего хода соответственно.

Когда я попытался записать один из них для (Ctrl+), я заметил в Сочетание клавиш укажите, что стрелка так и не появилась.Оказывается, мне пришлось отключить Mac по умолчанию Системные настройки > Клавиатура > Сочетания клавиш > Управление полетами сначала сокращайте, чтобы заставить все работать, так как они переопределят ярлыки iterm2 по умолчанию.Должно быть верно и для стандартного приложения терминала.

Keyboard system preferences

Удерживая нажатой клавишу Option, щелкните в том месте, куда вы хотите переместить курсор

Использование Естественное редактирование текста предустановленный!

enter image description here

По сути, он привязывает, среди прочих ключевых последовательностей, Option + LeftArrow к ^[b последовательность и опция + RightArrow для ^[f

Это работает в fish и bash, а также в терминале psql.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top