завершение вкладки zsh для запуска скриптов в текущей папке (. scr) ->./script.sh

у меня проблема с 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 `

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

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

26
задан Paaske
01.04.2023 9:03 Количество просмотров материала 3044
Распечатать страницу

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.

1
отвечен mpy 2023-04-02 16:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх