Сочетание клавиш «удалить слово» удаляет слишком много символов

9

Под Bash какое-то поведение Alt+ dсводило меня с ума с годами, и я понял, что, возможно, это можно исправить настройкой.

Если я в терминале и выдаю команду, подобную этой:

...$   cat >> ~/notesSuperLongFilename.txt

и затем, если я хочу, скажем, выдать:

...$ scp ~/notesSuperLongFilename.txt

Я хотел бы вернуть "cat >> ~ / notesSuperLongFilename.txt", используя Ctrl + p (предыдущая строка), а затем сделать Ctrl+, aа затем Alt+ dи Alt+ еще dраз, чтобы у меня было:

...$  ~/notesSuperLongFilename.txt

и тогда я смогу просто ввести «scp», а затем сделать Ctrl+ m(или нажать Enter / Return).

Однако это не работает, потому что после первого Alt+ dя получаю:

...$ >> ~/notesSuperLongFilename.txt

(Все идет нормально)

но после второго Alt+ dя получаю:

...$ .txt

Поэтому по какой-то причине Alt+ сразу dудаляет ">> ~ / notesSuperLongFilename" вместо простого удаления ">>" .

Это, должно быть, самая большая трата времени, которая сводит меня с ума с помощью Linux / Bash буквально годами.

Так, как я могу исправить это (возможно сломанное) поведение Alt+ d?

PS: я не знаю, кто "отвечает" за это Alt+ dповедение: я не знаю, является ли это терминалом или оболочкой (в моем случае Bash).

Седрик Мартин
источник
после "cat >> ~ / notesSuperLongFilename.txt" введите "scp" и затем Esc ,. (Один раз сбежать, а затем один раз ".")
Матье

Ответы:

3

Я не знаю, кто "отвечает" за это поведение Alt + d: я не знаю, является ли это терминалом или оболочкой (в моем случае Bash).

Это bash, в частности, настройка редактирования командной строки по умолчанию. Вот хорошая страница о том, какие команды могут быть связаны, и как изменить привязки по умолчанию.

Связывание по умолчанию Alt-dIS , kill-wordкоторый должен работать как команда с таким же названием в Emacs. Однако, как вы заметили, это не так - Emacs будет рассматривать пространство между >>тильдой в вашем примере как разрыв слова. Это bashне так, я бы рассмотрел ошибку. Если не считать источника bash, изменить его и перекомпилировать, я не знаю, что вы можете сделать.

dodgethesteamroller
источник
1
Это похоже на ошибку. Я бы доложил об этом команде Bash.
Эрни