В терминале я могу использовать Ctrl kbd> + w kbd>, чтобы удалить целое слово или IP (.
- разделитель для каждого октета) при переходе влево от приглашения. Однако, если я попытаюсь Alt kbd> + d kbd> перейти вправо от подсказки, терминал распознает "." в IP для разделителя и удаляет только один кусок, пока .
из всего IP.
Как настроить так, чтобы терминал распознавал только пробелы для разделителя слова или, что еще лучше, имел бы другой ярлык для различных разделителей: .
, =
, ,
и т. Д.?
Это очень похоже на маневрирование в терминале с помощью Ctrl + стрелки (влево и вправо) и поведение аналогично в зависимости от того, что установлено для разделителя слов.
Я читал, что редактор Emacs находится позади того, что терминал использует для создания этих ярлыков, но я не мог его настроить.
Сначала используйте следующую команду в своем терминале:
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"