Кажется, что ctrl+ Wудаляет назад одно слово за раз. Это здорово, но мне бы очень понравилось, что это работает с ctrl+, backspaceкак и большинство других приложений.
Какой лучший способ сделать это? Мне нужно, чтобы изменения влияли на команды терминала gnome, командную строку vim и графический интерфейс vim.
Ответы:
Обратите внимание, что это будет работать в терминале и в режиме emacs по умолчанию (который вы используете, если Ctrl+ Wудаляет предыдущее слово за вас). Он не будет работать в vi-режиме bash и не повлияет на сам vi / vim. Поэтому это только частичный ответ, но лучшее, что может предложить этот пользователь emacs.
Подобные вещи управляются
readline
библиотекой, поведение которой можно контролировать с помощью~/.inputrc
. Отредактируйте (или создайте, если он не существует)~/.inputrc
и добавьте эту строку:Теперь откройте новый терминал, и он должен работать.
объяснение
Это
\C-H
на самом деле Control+ BackSpace. Вы можете увидеть коды клавиш, нажав Ctrl+, Vзатем клавишу, которую вы ищете. Вы увидите, что BackSpaceвозвращается^H
.Теперь должно быть возможно связать Control+ BackSpaceс функцией bash, которая удаляет предыдущее слово (
backward-kill-word
илиunix-word-rubout
) с помощью"\C-H": backward-kill-word
. Однако я не могу заставить это работать. Он отлично работает с разными ключами ("\C-E": backward-kill-word
например, заставляет Ctrl+ Eудалить предыдущее слово), но по некоторым причинам я не могу заставить его работать BackSpace.Таким образом, в качестве обходного пути мы просто отображаем Ctrl+ Backspaceна Ctrl+, Wкоторый уже сопоставлен
backward-kill-word
. Итак, когда вы нажимаете Ctrl+ Backspace, это будет переведено в Ctrl+, Wчто, в свою очередь, отправитbackward-kill-word
. Я понял идею этого обходного пути из этого поста SU .источник
Вплоть до самого последнего времени , гном-терминал испускается один и тот же код на Backspaceи Ctrl+ Backspace, следовательно , вы не можете отличить два в приложении.
Это было исправлено в vte-0.42, который является частью Gnome 3.18, выпущенного этой осенью.
Если вы используете Wily, вы можете найти обновленные пакеты в Gnome3 Staging .
источник
Вместо этого используйте Alt+ Backspace: он работает так же, как Ctrl+ Backspaceи не требует никакой настройки.
источник
Это работает на моей машине. Просто убедитесь, что вы используете tmux от master и nvim из linuxbrew и control + backspace работает в bash и vim!
(Получить bash от linuxbrew тоже)
источник