2010-08-04 2 views
3

Если у меня есть файлы «something1» и «something2» в папке, как мне сделать заполнение вкладки ZSH только в общих символах? Например, я бы типа:Заполнение вкладки ZSH - не заполнять первый файл

som<Tab> 

, и я хочу, чтобы заполнить с «чем-то», а не «something1».

Текущие zstyles:

zstyle ':completion:*' special-dirs true 
zstyle ':completion::complete:*' use-cache on 
zstyle ':completion::complete:*' cache-path ~/.zsh/cache/$HOST 
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} 
zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s' 
zstyle ':completion:*' menu select=1 _complete _ignored _approximate 
zstyle -e ':completion:*:approximate:*' max-errors \ 
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' 
zstyle ':completion:*::::' completer _expand _complete _ignored _approximate 
zstyle -e ':completion:*:approximate:*' max-errors \ 
zstyle ':completion:*:expand:*' tag-order all-expansions 
zstyle ':completion:*' verbose yes 
zstyle ':completion:*:descriptions' format '%B%d%b' 
zstyle ':completion:*:messages' format '%d' 
zstyle ':completion:*:warnings' format 'No matches for: %d' 
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b' 
zstyle ':completion:*' group-name '' 
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' 
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters 
# zstyle ':completion:*:processes' command 'ps -au$USER' 
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' 
#zstyle ':completion:*:processes' command 'ps ax -o pid,s,nice,stime,args | sed "/ps/d"' 
zstyle ':completion:*:*:kill:*:processes' command 'ps --forest -A -o pid,user,cmd' 
zstyle ':completion:*:processes-names' command 'ps axho command' 
#zstyle ':completion:*:urls' local 'www' '/var/www/htdocs' 'public_html' 
zstyle ':completion:*' hosts $(awk '/^[^#]/ {print $2 $3" "$4" "$5}' /etc/hosts | grep -v ip6- && grep "^#%" /etc/hosts | awk -F% '{print $2}') 
zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' \ 
zstyle ':completion:*:functions' ignored-patterns '_*' 
zstyle ':completion:*:*:*:users' ignored-patterns \ 
zstyle ':completion:*:scp:*' tag-order \ 
zstyle ':completion:*:scp:*' group-order \ 
zstyle ':completion:*:ssh:*' tag-order \ 
zstyle ':completion:*:ssh:*' group-order \ 
zstyle '*' single-ignored show 
+0

Что вы можете получить, если вы введете 'zstyle' или' grep zstyle ~/.zshrc' в командной строке. У меня есть 'zstyle ': завершение: *' menu select = 0' как один параметр, и пока я не думаю, что это влияет на то, о чем вы просите, я получаю поведение, которое вы ищете. –

+0

Пробовал, что, похоже, не получилось. – victor

ответ

0

ЗАКАНЧИВАТЬ zshoptions человек. Это довольно хорошо организовано, так что все варианты завершения находятся в разделе «Завершение». Я думаю, что вариант, который вы ищете, является list_domiguous. если да, то вам просто нужно добавить в строку

setopt list_ambiguous

к вашему .zshrc

0

Хорошая новость: это полностью выполнимо, и вам не нужно будет беспокоиться о zstyles. (Я верю.) Плохие новости: немного сложно ответить.

Большое объяснение конкретных вариантов завершения zsh, связанных с проблемой, которую вы пытаетесь решить, можно найти в this specific section руководства пользователя по zsh.

Кроме того, вы можете сделать «man zshoptions» и найти варианты завершения. Ответ выше упоминания list_domiguous является частью ответа, но я не считаю, что он обращается ко всей картине. Ключевой вопрос, который вам нужно задать самому себе: «Что я хочу сделать после того, как я впервые попал в TAB, а zsh вставляет только общие символы?» Вы можете сделать zsh много разных вещей на секунде TAB press или даже третий. Использование различных комбинаций вариантов завершения ZSH может дать множество полезных результатов. Все зависит от того, чего вы хотите.

Удачи вам!

Смежные вопросы