В tcsh
командах \eP
и \eN
учитывается нормализованный по пробелам префикс текущей строки, а не только первое слово.
Например, если моя история содержит
git pull upstream feature-dancing-pigs
git clone
и я печатаю
% git pull
а затем нажимаю \eP
, tcsh
я получаю
% git pull upstream feature-dancing-pigs
если я нажимаю \eP
in zsh
, я получаю элемент истории, который просто соответствует команде
% git clone
Я хочу настроить zsh
эмуляцию tcsh
поведения. Возможно ли это?
Я пробовал zsh
использовать стандартную конфигурацию клавиш emacs и явное
bindkey "\eP" history-search-backward
Как выясняется
bindkey "\eP" history-beginning-search-backward
имеет ожидаемое поведение, которое я ^[
изначально использовал вместо \e
.
решение1
В документации есть функция , zshcontrib
которая называется up-line-or-beginning-search
, вы можете просмотреть ее, запустив.
man zshcontrib | less '+/^\s*up-line-or-beginning-search'
Эти виджеты похожи на встроенные функции up-line-or-search и down-line-or-search: если они находятся в многострочном буфере, они перемещаются вверх или вниз внутри буфера, в противном случае они ищут строку истории, соответствующую началу текущей строки. В этом случае, однако, они ищут строку, котораясоответствует текущей строке до текущей позиции курсора, в манере истории-начала-поиска-назад и-вперед,а не первое слово в строке.
если вы посмотрите на инструкции, данные в верхней части ZLE FUNCTIONS
разделаman zshcontrib
ФУНКЦИИ ZLE
Виджеты
Все эти функции реализуют определяемые пользователем виджеты ZLE (см. zshzle(1)), которые можно привязать к нажатиям клавиш в интерактивных оболочках. Чтобы использовать их, ваш .zshrc должен содержать строки вида
autoload function
zle -N function
Лично я следовал инструкциям выше, но подозреваю, что в настоящее время вам это может и не понадобиться... в вашем~/.zshrc
# register the function with the autoloader
autoload -U up-line-or-beginning-search
# define new zle widget
zle -N up-line-or-beginning-search
# bind UP key
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-beginning-search