Удаление ввода до последней косой черты

Удаление ввода до последней косой черты

Я очень часто буду переключаться между несколькими файлами на сервере. Я выполню следующие примеры команд последовательно:

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заменяю последний сегмент пути. Проблема в том, что я действительно,Действительноленивый.

Существует ли сочетание клавиш (или башизм), которое может:

  • Заменяется последним использованным путем (с дополнительным битом в конце)
  • Удалить в текущей строке (например, после нажатия Up) до последней/

решение1

Я думаю, вы ищете клавишу Alt«+» Backspace.

После нажатия Upэтой кнопки следует вернуться к предыдущему /символу space.

решение2

Чтобы обнаружить привязку readline, которая удаляет слово в обратном направлении по вашему желанию, вы можете использовать следующую команду в своем терминале:

bind -p | awk '/kill/ && /word/ && /backward/'

В стандартной установке Ubuntu вывод может быть следующим:

"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)

Вторая строка, похоже, не имеет значения на данном этапе, поэтому давайте попробуем понять, что означает первая строка. Насколько я понимаю,backward-kill-wordФункция readline, которая фактически удаляет все символы, пока предыдущий специальный символ ( /, ;, ,и т.д.) не будет привязан к \e\C-hпоследовательности клавиш. Теперь, в этой последовательности\e представляетключ Esc, \C- Ctrlключ, и \C-hобозначает Ctrl+ h, которыйэквивалентно в этом случаес Backspaceключом.

Итак, вы ищетеEsc+ Ctrl+hсочетание клавиш, эквивалентноеEsc+Backspaceи который,из-за поведения xterm, которое заставляет Altkey действовать как метасимвол, а метасимволы преобразуются в двухсимвольную последовательность, в которой самому символу предшествует Esc(см. man xterm), эквивалентноAlt+Backspace.

Теперь, если вам это не нравится и вы продолжаете забывать об этом, вы можете использовать следующую команду, чтобы создать новую комбинацию клавиш, скажем, Esc+ w, для ваших целей:

bind '"\ew": backward-kill-word'

Чтобы сделать это новое сочетание клавиш постоянным для всех команд, использующих readline, добавьте в свой файл следующую строку ~/.inputrc:

"\ew": backward-kill-word

help -m bind | sensible-pagerБолее подробную информацию см .

решение3

Другая комбинация клавиш:

Alt+ Bтогда Ctrl+K

Alt + B     Move cursor backward one word on the current line    
Ctrl + K    Clear the line after the cursor

Alt+ Bтогда Alt+D

Это удаляет последнее слово, не удаляя специальные символы между словами.

Связанный контент