Как изменить поведение команд, которые удаляют «слова» слева
Недавно я пытался переключиться с давнего пользователя 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 ответов на вопрос
Похожие вопросы
-
2
Как отправить escape-символ на OS X терминал?
-
2
.profile в Mac OS X?
-
1
Как разблокировать заблокированный файл псевдонимов в OS X?
-
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
4
Использование публичных терминалов для входа в ваши личные учетные данные
-
2
Как я могу получить OSX Terminal.app для открытия полноэкранного режима, а не каскадного?
-
3
Mac OS X: обычные места, где должны жить бинарные файлы
-
2
Mac OS X: нужен простой скрипт
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
2
Можно ли передать выходные данные одной команды двум другим командам?