LINUX.ORG.RU

Zsh completion


0

0

При дополнении путей у команды cd также дополняются и имена пользователей. Это надоедает. Подскажите пожалуйста, как это отключить. Я уже запарился.


Врёшь! Что-то перемудрил с завершением.
Пример приведи.

Я использую zshrc из дистрибутива и получаю примерно так:
cd /m/a/u/Sl
<TAB>
cd /mnt/archive/unix/Slackware

UVV ★★★★★
()
Ответ на: комментарий от UVV

Ну так то конечно. У тебя же юзера не совпадают со строкой. У меня вот так:

[mak@devel]:a0_mxe4 $>> cd go<TAB>
local directory
goahead-2.1.1/
user
gopher

Zmacs
() автор топика
Ответ на: комментарий от Zmacs

grep -R ':completion:' ~/.zshrc /etc/zsh* покажи пожалуйста.

Harliff ★★★★★
()
Ответ на: комментарий от Zmacs

from mailing list:

> There is a user 'proxy' on my system, when I now try to 'cd' into a
> directory, let's call it 'profiles' the file/dir completion will offer
> me 'proxy' as an alternative. Roughly like so:
>
> % cd pro^D
> local directory
> profiles/
> user
> proxy
>
> This is highly annoying behaviour, which I'd like to stop. I'm using the
> default zshrc that get's shipped with zsh 4.3.2.

This is because of the option "cdablevars". This makes it possible for
"cd user" to behave the same as "cd ~user"; it works for user
directories and named directories (i.e. where ~var behaves like $var)
alike, since those deliberately have the same behaviour. If you're not
using that, you can "unsetopt cdablevars".

If you want to keep the option but disable completion of relevant
directories, you will need to tweak the code: find the _cd completer in
your $fpath,

print $^fpath/_cd(N)

and edit it or copy and edited version earlier in the $fpath. The bit
you want to get rid of is around line 47, the line beginning alt=:

if [[ -o cdablevars && -n "$PREFIX" && "$PREFIX" != <-> ]]; then
if [[ "$PREFIX" != */* ]]; then
alt=( "$alt[@]" 'named-directories: : _tilde' )
else

Simply commenting out that single line should probably be enough.

UVV ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.