Удаление ввода вперед к следующему пробелу

В терминале я могу использовать Ctrl + w , чтобы удалить целое слово или IP (. - разделитель для каждого октета) при переходе влево от приглашения. Однако, если я попытаюсь Alt + d перейти вправо от подсказки, терминал распознает "." в IP для разделителя и удаляет только один кусок, пока . из всего IP.

Как настроить так, чтобы терминал распознавал только пробелы для разделителя слова или, что еще лучше, имел бы другой ярлык для различных разделителей: ., =, , и т. Д.?

Это очень похоже на маневрирование в терминале с помощью Ctrl + стрелки (влево и вправо) и поведение аналогично в зависимости от того, что установлено для разделителя слов.

Я читал, что редактор Emacs находится позади того, что терминал использует для создания этих ярлыков, но я не мог его настроить.

3
задан 4 February 2015 в 21:22

1 ответ

Сначала используйте следующую команду в своем терминале:

bind '"\ew": vi-forward-bigword'

для создания нового сочетания клавиш - Высокого звука + w в этом случае - который переместит подсказку вперед до конца текущего или следующего слова. В этом случае слова ( bigwords) состоят из букв, цифр и специальных символов как ".".

Теперь можно использовать Высокий звук + w сопровождаемый Ctrl + w для выполнения то, чего Вы желаете.

Посмотрите еще некоторую информацию в моем ответе здесь .

<час>

, Кроме того, после того, как я просмотрел этот Q& , я понял следующее:

С bind, можно обязать ключи делать одну из трех вещей, , но никакая комбинация их :

  • Выполняют команду readline: bind '"key": command'
  • Выполняют ряд нажатий клавиш: bind '"key":"keystrokes"'
  • Выполняют команду оболочки: bind -x '"key": shell-command'

Так, теперь, если Вы хотите объединить те два нажатий клавиш ( Высокий звук + w сопровождаемый Ctrl + w ) в новом, необходимо будет обязать новое нажатие клавиши (в моем примере Высокий звук + q ) выполнять предыдущие нажатия клавиш следующим образом:

bind '"\eq": "\ew \C-w"'

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

"\ew": vi-forward-bigword
"\eq": "\ew \C-w"
5
ответ дан 4 February 2015 в 21:22

Другие вопросы по тегам:

Похожие вопросы: