Я предпочитаю vi-style
движения слов, такие как vi-forward-word
вместо forward-word
, так что курсор также останавливается на символах разделителя. Тем не менее, я также хотел бы сделать zsh
уважением WORDCHARS
в этом случае или каким-то образом определить мои разделительные символы. Возможно ли это как-то? Кажется, я могу либо сделать zsh
использовать мои разделительные символы, либо использовать vi-style
движения, где он также останавливается на них, но не оба.Как заставить команды zsh vi-style уважать WORDCHARS?
Так, например, если моя линия заключается в следующем:
% ls -la /foo/bar/f-b/r
тогда, если я начинаю двигаться вперед слово за словом, он остановится на /
, foo
, /
, bar
, /
, f-b
, /
, r
.
Соответствующие строки из моей .zshrc
:
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>' # removed/
autoload select-word-style
select-word-style normal
bindkey '^W' vi-backward-kill-word
bindkey '^f' vi-forward-word
bindkey '^b' vi-backward-word
Я знаю, что 'zsh' достаточно хорошо, чтобы предположить, что вы можете написать пользовательский' zle', чтобы дать вам поведение, которое вы хотите, но недостаточно хорошо, чтобы предложить, как его писать. – chepner
Спасибо за подсказку - вот что я сделал. – ldx