Bash: Как мне перевести курсор влево по слову?


14

В OSX я могу просто удерживать optionклавишу и нажимать левую клавишу курсора, пока не доберусь до слова, которое нужно отредактировать (или в Vi я могу просто нажать b, но я не смог понять, как это сделать в терминале еще...


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

Ответы:


26

Чтобы установить привязку клавиш: Сначала вы должны выяснить, какие коды клавиш создает последовательность клавиш Ctrl+ Left. Просто используйте команду, catчтобы отключить любое вмешательство в существующие привязки клавиш, а затем введите последовательность клавиш. В моей системе (Linux) это выглядит так:

$ cat
^[[1;5D

Нажмите Ctrl+, dчтобы выйти из кота. Теперь вы узнали, что Ctrl-Left выдает 6 кодов клавиш:

  • Побег (^ [)
  • [
  • 1
  • ;
  • 5
  • D

Теперь вы можете выполнить команду bind:

bind '"\e[1;5D": backward-word'

6
Вы можете добавить `` "\ e [1; 5D": backward-word '' в $ HOME / .inputrc для постоянного эффекта, если хотите.
11

@llhuii +1, я забыл упомянуть об этом!
Даниэль Куллманн

2
+1 за самый гибкий способ связывать произвольные комбинации клавиш в любом месте!
Ирфи

14

Функция bash, которую вы хотите backward-word. Вы можете запустить, bind -q backward-wordчтобы получить список ключей, связанных с этой функцией. Один общий обязательный знак Esc+b

Кроме того, многие терминалы поддерживают Ctrl+ Left(та же самая горячая клавиша, которую вы можете использовать в X для перехода назад на слово)


1
Хорошо, он возвращается, backward-word can be invoked via "\eb".но как мне связать control + Left вместо Esc + b? Кроме того, один из недостатков Esc + b, который я уже вижу, заключается в том, что мне приходится отпускать клавишу Esc каждый раз, когда я могу вернуться к слову, разве нет лучшего способа?
ниппонец

1
Есть ли способ лучше? Естественно: set editing-mode vi:)
jasonwryan

3
@nipponese "esc b" также можно использовать на клавиатуре как ALT-b. Возможно, это должен быть левый или правый альт в зависимости от вашей конфигурации, поэтому попробуйте оба варианта.
Random832

8

Клавиша быстрого доступа по умолчанию в Bash для backword-wordэто Alt+ b. Тот же результат может быть достигнут с Esc+ b. Вы должны попробовать их, прежде чем редактировать ваши сочетания клавиш.

Используйте bindкоманду для редактирования или bind -q [name]для получения текущей комбинации клавиш определенного действия.


2
... и вперед -Alt + f
Путник
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.