Как выполнять команды zsh внутри командной строки nvim?

Я знаю, что это нубский вопрос, но я не могу найти ответ в Интернете. Я хочу выполнять команды zsh внутри командной строки nvim. Я хочу настроить это так, чтобы я мог копировать путь к текущему каталогу/файлу, который я сейчас редактирую.

По сути, у меня есть файл .zshrc, содержащий мои команды псевдонимов. Например...

alias CopyDir = "pwd | xclip -selection clipboard"

Эта команда работает при выполнении в терминале, но не работает при запуске в командной строке nvim. Например...

:! CopyDir

возвращается - zsh:1: command not found: CopyDir\ shell returned 127

Кажется, я не могу найти никакой информации об этом в Интернете. Либо это невозможно, либо это не требуется широко, либо я упустил команду, позволяющую добиться этого гораздо более простым способом. Я использую режим vim уже около полугода, поэтому постепенно перехожу на nvim в качестве предпочтительной IDE. До сих пор этот опыт мне нравился, просто нужно больше опыта и больше знаний по настройке.

:! zsh -c "CopyDir"
Ghorban M. Tavakoly 21.04.2024 10:51

@GhorbanM.Tavakoly Да, я тоже это пробовал. Это не работает. Он возвращает ту же ошибку. На самом деле мне следует больше изучить эту ошибку.

Ian Teves 21.04.2024 10:55

Я просмотрел, что может означать код ошибки, и убедился, что это не какие-либо проблемы с зависимостями/проблемами с разрешениями. Итак, осталась проблема с конфигурацией оболочки, из-за которой команда не найдена. Нужно ли каким-то образом соединить nvim и zsh, чтобы nvim мог найти команды?

Ian Teves 21.04.2024 11:06

Я в лиге emacs и не глубоко погружаюсь в vim. но я думаю, что использование coc.nvim с языковым сервером zsh может помочь. например: github.com/tjdevries/coc-zsh

Ghorban M. Tavakoly 21.04.2024 11:20

:! zsh -ic CopyDir работает?

Gairfowl 21.04.2024 13:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
454
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Чтобы запустить команды zsh в командной строке nvim/vim, попробуйте следующее:

  1. Используйте zsh -c:
:! zsh -c "ZSHCOMMAND"
  1. Альтернативно, попробуйте zsh -ic:
:! zsh -ic "ZSHCOMMAND"

Просто замените ZSHCOMMAND командой, которую хотите запустить.

Псевдоним работает только в интерактивных сеансах. чтобы ваш псевдоним работал, вы должны написать исполняемый файл и поместить его в один из ваших $PATH.

или просто сделайте это вместо этого:

" copying file dir
:!echo %:p:~:h | xclip

" copying file path
:!echo %:p:~ | xclip

Другие вопросы по теме