2

У меня проблема с zsh (или oh-my-zsh):

Когда я хочу запустить скрипт в текущем каталоге, я делаю ./script.sh . В bash я мог бы сделать .<TAB> и это дало бы мне ./ где я мог бы продолжать вводить имя скрипта ./sc<TAB> которое заканчивалось бы ./script.sh

Теперь проблема в том, что когда я делаю .<TAB> в zsh, я получаю список альтернатив, где нет ни одного из них ./ .

Причина , почему я не просто набрав ./ что это довольно громоздко на норвежской раскладки . затем SHIFT+7 . Заставляет меня чувствовать себя неэффективно :)

Я пробовал с zstyle ':completion:*' special-dirs true и некоторые параметры, такие как

setopt autolist
unsetopt menucomplete `

Но, кажется, ничего не работает для меня.

Я довольно новичок в этом, поэтому я очень признателен за любую помощь в решении этого!

1 ответ1

1

Я не знаю, как настроить систему завершения, чтобы она расширялась . всегда ./ . Но вот обходной путь для описанного вами особого случая, то есть в начале командной строки:

expand-or-complete-special-dot() {
  if [[ $BUFFER == "." ]]; then
    LBUFFER="./"          
  fi 
  zle expand-or-complete
}
zle -N expand-or-complete-special-dot
bindkey "^I" expand-or-complete-special-dot

Это оболочка для обычной функции expand-or-complete которая (по умолчанию) связана с TAB .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .