Завершение Zsh для глобальных псевдонимов
Есть ли способ получить завершение табуляции для глобальных псевдонимов в zsh? Определяется как:
% alias -g zshplugins=~/.zshplugins
% nvim zshpl[tab]
вкладка не будет завершена.
Я использую глобальные псевдонимы в основном для того, чтобы не вводить путь к файлу и не ограничивать себя одной командой (например, alias zshplugin="nvim ~/.zshplugins"
)
Я понимаю, что они также предназначены для использования внутри произвольных однострочных (глобальный псевдоним для | grep -i
, например), и не имеет смысла предлагать их при каждом нажатии табуляции, но если есть какое-то обходное решение, чтобы включить их в завершение каталога / файла, это было бы здорово.
2 ответа
Вы должны использовать переменную оболочки, но не глобальный псевдоним.
Но если хотите, добавьте в свой zshrc
_complete_alias() {
[[ -n $PREFIX ]] && compadd -- ${(M)${(k)galiases}:#$PREFIX*}
return 1
}
zstyle ':completion:*' completer _complete_alias _complete _ignored
Было бы zshpl[tab]
завершить в начале строки (без nvim)? Это то, над чем я должен работать. Псевдоним не предназначен для использования в качестве ярлыка для имени файла. Для последних можно использовать переменные оболочки (и для них тоже есть завершение). Я предлагаю вам определить
zshplugins=~/.zshplugins
а затем сделать
nvim $zshpl[tab]