2015-07-26 2 views
1

Мне было интересно, есть ли функция, в которой вы получите завершение истории (нажав UP и DOWN) для команды, но также и для уже введенных аргументов, это было бы очень удобно с sudo, так например :zsh история завершения с sudo

$ Sudo ВИМ [прижиматься]
-> завершат меня sudo vim .zshrc (если это была моя последняя команда), но если я [PRESS UP] еще раз я получаю завершение для:
$ SUDO Ls/
(если это была моя предпоследняя команда sudo)

Но то, что я хочу, это завершение для команд, начинающихся только с sudo vim.
Надеюсь, это имеет смысл.

+1

Это не является уникальным для «Суда» ... –

+0

Это Ит использование функции 'up-line-or-search'. Откройте 'man zshzle' и найдите' up-line-or-search'. Эта команда использует только первое слово для поиска истории. – Francisco

ответ

1

Звучит похоже на на "рыбные" предложения. Вот implementation for Zsh. Такие вещи чаще всего ориентируются на tab или Ctrl-D, чем Up-Arrow.

Существует также predict-on Zsh виджет, который автоматически заполнит вашу последнюю подобную команду, как указано на данный момент. Стоит экспериментировать с:

% autoload predict-on; predict-on 
0

Это ограничение функции up-line-or-search. Откройте man zshzle и найдите up-line-or-search. Эта команда использует только первое слово для поиска истории.

Чтобы получить «полную линию» поиск по up/down ключей

autoload -U up-line-or-beginning-search 
autoload -U down-line-or-beginning-search 
zle -N up-line-or-beginning-search 
zle -N down-line-or-beginning-search 
bindkey "^[[A" up-line-or-beginning-search # Up 
bindkey "^[[B" down-line-or-beginning-search # Down 
0

Вы можете использовать history-beginning-search-backward виджет для этого. Он ищет назад в истории для строк с тем же началом, что и текущая строка до позиции курсора. Вы можете заменить свой текущий связыванию или создать новый, например, на СдвигаUp (на моей машине она сопоставляется ^[[a):

bindkey '^[[a' history-beginning-search-backward 

Вы также можете связать history-beginning-search-backward виджет, чтобы иметь возможность двигаться в обоих направлениях по истории (ShiftDown, ^[[b на моей машине):

bindkey '^[[b' history-beginning-search-forward 
Смежные вопросы