Я знаю, что это нубский вопрос, но я не могу найти ответ в Интернете. Я хочу выполнять команды zsh внутри командной строки nvim. Я хочу настроить это так, чтобы я мог копировать путь к текущему каталогу/файлу, который я сейчас редактирую.
По сути, у меня есть файл .zshrc, содержащий мои команды псевдонимов. Например...
alias CopyDir = "pwd | xclip -selection clipboard"
Эта команда работает при выполнении в терминале, но не работает при запуске в командной строке nvim. Например...
:! CopyDir
возвращается - zsh:1: command not found: CopyDir\ shell returned 127
Кажется, я не могу найти никакой информации об этом в Интернете. Либо это невозможно, либо это не требуется широко, либо я упустил команду, позволяющую добиться этого гораздо более простым способом. Я использую режим vim уже около полугода, поэтому постепенно перехожу на nvim в качестве предпочтительной IDE. До сих пор этот опыт мне нравился, просто нужно больше опыта и больше знаний по настройке.
@GhorbanM.Tavakoly Да, я тоже это пробовал. Это не работает. Он возвращает ту же ошибку. На самом деле мне следует больше изучить эту ошибку.
Я просмотрел, что может означать код ошибки, и убедился, что это не какие-либо проблемы с зависимостями/проблемами с разрешениями. Итак, осталась проблема с конфигурацией оболочки, из-за которой команда не найдена. Нужно ли каким-то образом соединить nvim и zsh, чтобы nvim мог найти команды?
Я в лиге emacs и не глубоко погружаюсь в vim. но я думаю, что использование coc.nvim
с языковым сервером zsh может помочь. например: github.com/tjdevries/coc-zsh
:! zsh -ic CopyDir
работает?
Чтобы запустить команды zsh в командной строке nvim/vim, попробуйте следующее:
zsh -c
::! zsh -c "ZSHCOMMAND"
zsh -ic
::! zsh -ic "ZSHCOMMAND"
Просто замените ZSHCOMMAND
командой, которую хотите запустить.
Псевдоним работает только в интерактивных сеансах. чтобы ваш псевдоним работал, вы должны написать исполняемый файл и поместить его в один из ваших $PATH.
или просто сделайте это вместо этого:
" copying file dir
:!echo %:p:~:h | xclip
" copying file path
:!echo %:p:~ | xclip
:! zsh -c "CopyDir"