Как изменить поведение команд, которые удаляют "слова" слева

Недавно я пытался переключиться с давнего пользователя tcsh на bash, и я оплакивал нажатие дополнительной клавиши для удаления "слов" влево, поэтому я пытался изменить поведение в bash, чтобы сделать его более похожим на tcsh так что мне не нужно переназначать свои 18 лет мышечной памяти. Что я сейчас пытаюсь выяснить это:

Как изменить "границы слова", когда escape delete набрано. (Обратите внимание, я имею в виду 2 отдельных нажатия клавиш.)

В tcsh, когда я хочу удалить слово слева, я бы повторил 2 нажатия клавиш: escape delete. Я знаю, что bash использует control-w, чтобы убить слово слева, и я выяснил, как сделать так, чтобы игнорировать тире и подчеркивание как границы слов (но моя мышечная память tcsh использует control-w для удаления всего, что осталось от курсора - bash's контроль-и). Вы можете сделать одно из:

bind '\C-w:unix-filename-rubout'

или же

stty altwerase

(хотя я еще не знаю, есть ли у этого непредвиденные побочные эффекты - я все еще просто пытаюсь разобраться). Каждый из них позволяет control-w удалять через тире и подчеркивание, но я не знаю, чем они отличаются в противном случае.

Я был удивлен тем не менее, что escape delete последовательность клавиш в обоих случаях все еще останавливалась на черточках и подчеркиваниях. Я пробовал разные команды связывания, чтобы изменить это, например:

set bind-tty-special-chars Off
set bind-tty-special-chars On
bind '\e\C-h:unix-filename-rubout'
bind '\e\C-?:unix-filename-rubout'

Но ни один из них не меняет слово границы поведения escape delete,

Некоторые заметки: я действительно не знаю, что escape delete делает в моем терминале - то есть то, что он посылает в bash. Если я сделаю control-v escape, Я вижу ^[, Если я сделаю control-v delete, Я вижу ^?, Я использую Terminal.app на macOS. У меня есть ключ удаления, установленный, чтобы не отправлять control-h, потому что он не ведет себя так, как я ожидаю в каждом контексте. У меня также нет опции, установленной как мета-ключ, так как я был осторожен, чтобы не прерывать использование option-arrow и option-click для перемещения курсора.

0 ответов

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