Я хотел бы иметь возможность копировать и вставлять текст в командной строке Bash , используя те же привязки клавиша , что Emacs использует по умолчанию (то есть , используя C-space
для set-mark
, M-w
чтобы скопировать текст, C-y
, M-y
чтобы вставить его, и т.д.).
В документации GNU Bash говорится, что Bash поставляется с некоторыми из этих привязок клавиш, настроенных по умолчанию.
Например, yanking ( C-y
) работает по умолчанию на моем терминале. Тем не менее, я не могу получить set-mark
и copy
команды для работы, и они , кажется, не быть связаны с любыми ключами по умолчанию.
Обычно пользователь может определить свои собственные привязки клавиш, чтобы добавить их .inputrc
. Поэтому я посмотрел и нашел следующие функции bash в документации, которая, как я полагаю, может помочь мне определить поведение, подобное Emacs, которое я хочу (то есть set-mark
с C-space
и copy
с M-w
).
copy-region-as-kill ()
Скопируйте текст в области в буфер уничтожения, чтобы его можно было сразу же восстановить. По умолчанию эта команда не связана.
и
set-mark (C-@)
Установите отметку в точку. Если указан числовой аргумент, отметка устанавливается на эту позицию.
Если я правильно понимаю, вышеуказанные средства, copy-region-as-kill
не связанные с какой - либо последовательностью клавиатуры по умолчанию, в то время как set-mark
обязаны C-@
по умолчанию.
Я попробовал C-@
на своем терминале, но я не думаю, что он работает, set-mark
потому что я не вижу никакого текста, выделенного, когда я двигаю свой курсор. В любом случае, я пытался добавить привязки клавиатуры ( M-w
и C-
) к функциям copy-region-as-kill
и set-mark
выше в моем, .inputrc
а затем перезагрузить его C-x C-r
, но это не сработало. Я знаю, что мои другие записи в .inputrc
работе, потому что у меня есть другие определенные пользователем сочетания клавиш, определенные в нем.
Что-то я делаю не так? Я что-то упустил?
источник
bash
и какую терминальную программу вы используете?Ответы:
Это не выделяет выбор, но в остальном я думаю, что он работает нормально.
Попробуйте запустить
чтобы убедиться, что на
C-x C-r
самом деле работает.Следует сказать:
После этого все должно работать нормально.
Пример:
дает мне
Если вы когда-нибудь захотите узнать, где
mark
находится, просто сделайтеC-x
C-x
.Пример:
вернет курсор туда, где вы установите метку (начало строки).
Кроме того, я не думаю, что вам нужно добавлять
set-mark
привязку. Я не(обратите внимание, что большинство терминалов отправляет,
C-@
когдаC-Spc
нажата. Я полагаю, что ваш делает тоже.)Если все это не удается:
emacs -nw
на том же терминале?источник
\e
или\M-
. Смотрите readline синтаксис файла инициализации .Я также связываю Cw для kill-region . Вот мой .inputrc:
источник