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


1

Нещодавно я намагався переключитися з давнього користувача 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. У мене встановлений ключ видалення, щоб не надсилати контроль-h, оскільки він не веде себе так, як я очікував у кожному контексті. У мене також не встановлено параметр як мета-ключ, оскільки я насторожився, щоб не порушити використання стрілок параметра та клацання параметра для переміщення курсору.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.