Я очень часто буду переключаться между несколькими файлами на сервере. Я буду запускать следующие примеры команд в последовательности:
nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc
Чтобы перейти от одной nano
команды к следующей, в данный момент я нажимаю Upи Backspaceдля замены последнего сегмента пути. Проблема в том, что я очень, очень ленивый.
Есть ли сочетание клавиш (или Bashism), которое может:
- Заменить на последний использованный путь (с дополнительным битом в конце)
- Удалить в текущей строке (например, после нажатия Up) назад к последней
/
alt
+.
?Alt + .
используется для чего-то другого .alt
+.
.Ответы:
Я думаю, что вы ищете ярлык Alt+ Backspace.
После нажатия Upэто следует удалить обратно к предыдущему
/
илиspace
символу.источник
backspace
.bind -P | grep '^backward-kill-word'
Чтобы обнаружить привязку readline, которая убивает слово назад, как вы хотите, вы можете использовать следующую команду в своем терминале:
В установке Ubuntu по умолчанию вывод может быть:
На данный момент вторая строка не имеет значения, поэтому давайте попробуем понять, что означает первая строка. Из того, что я понимаю,
backward-kill-word
функция readline, которая фактически удаляет все символы до предыдущего специального символа (/
,;
и,
т. Д.), Связана с\e\C-h
последовательностью клавиш. Теперь, в этой последовательности\e
представляет на Escключ,\C
- на Ctrlключ, и\C-h
выступает за Ctrl+ , hкоторая эквивалентна в этом случае с Backspaceключом.Итак, вы ищете Esc+ Ctrl+h сочетание клавиш, которое эквивалентно Esc+Backspace и которое из-за поведения xterm, которое превращает Altключ в мета-символ и метасимволы, преобразуется в двухсимвольную последовательность с самим символом, которому предшествует Esc(см.
man xterm
) , эквивалентно Alt+Backspace .Теперь, если вам это не нравится и вы по-прежнему забываете об этом, вы можете использовать следующую команду для создания нового ярлыка, скажем, Esc+ w, для вашей цели:
Чтобы сделать этот новый ярлык постоянным для всех команд, использующих readline, добавьте следующую строку в ваш
~/.inputrc
файл:Смотрите
help -m bind | sensible-pager
для получения дополнительной информации.источник
bind '"\ew": backward-kill-word'
но это придирчиво. И может быть стоит отметить , что вы также можете поместить"\ew": backward-kill-word
в~/.inputrc
, в этом случае других команд, использование Readline будет также , что связывание, например , если вы включите Readline в питоне интерактивной оболочке, что связывание также будет применяться там.Другая комбинация клавиш:
Alt+ Bтогда Ctrl+K
Alt+ Bтогда Alt+D
Это удаляет последнее слово без удаления специального символа между словами.
источник