Я хочу удалить слово с помощью Ctrl+ Wв, zsh
как.
vim /foo/bar^W
vim /foo/
И нашел решение для bash
, но bind
не в функции zsh.
Можно ли настроить ctrl-w (удалить слово)?
Как я могу настроить Ctrl+ Wкак delete-word
?
Я хочу удалить слово с помощью Ctrl+ Wв, zsh
как.
vim /foo/bar^W
vim /foo/
И нашел решение для bash
, но bind
не в функции zsh.
Можно ли настроить ctrl-w (удалить слово)?
Как я могу настроить Ctrl+ Wкак delete-word
?
Ответы:
Вот фрагмент из .zshrc, который я использовал:
my-backward-delete-word() {
local WORDCHARS=${WORDCHARS/\//}
zle backward-delete-word
}
zle -N my-backward-delete-word
bindkey '^W' my-backward-delete-word
Я помню, это был первоисточник: http://www.zsh.org/mla/users/2001/msg00870.html
~/.zshrc
и он отлично работает!
emacs
Таблица связывания ключей по умолчанию в ZLE связывает ^ W с, backward-kill-word
а не с backward-delete-word
, note.
Просто для вашего сведения, я нашел это решение здесь гораздо более элегантным. Я цитирую:
Другой вариант - установить
WORDCHARS
(не алфавитно-цифровые символы, которые рассматриваются как часть слова) на то, что не включает/
.Вы также можете настроить это, если вы хотите
^w
разбить на точку, подчеркнуть и т. Д. У~/.zshrc
меня есть:WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
Как отметил @Patryk в комментариях ниже, это не работает для ZSH >= 5.7
. Вот обновление, которое я протестировал и над которым работаю zsh 5.8 (x86_64-apple-darwin18.7.0)
.
autoload -U select-word-style
select-word-style bash
export WORDCHARS='.-'
M-d
менее полезным.
zsh 5.7 (x86_64-apple-darwin18.2.0)
.