2

Я пытаюсь назначить пользовательскую команду в VI(VIM) в Linux(CentOS).

Особенно, если есть один файл сценария (просто текст), который включает файл списка pdf, как показано ниже, я хочу просмотреть каждый файл pdf, используя команду evince, например, как команду gf в linux. например, если я наведу курсор на один из списка pdf, то, если я нажму функциональную клавишу, то файл, который указан в курсоре, будет выполнен с использованием 'evince'.

Если я хочу увидеть 3.pdf, то я помещаю курсор, затем нажимаю функциональную клавишу, и этот файл PDF открывается с помощью evince. Что я должен сделать ?

Как назначить пользовательскую команду в VI(VIM)?

1 ответ1

1

Чтобы настроить Vim, сначала вы должны собрать и протестировать команды вручную, одну за другой. Если у вас есть рабочая последовательность, вы можете легко определить либо сопоставления (которые запускаются клавишей [sequence], например, F1), либо команды (набираемые в режиме Ex, например :MyCommand).

Итак, вам нужно прочитать текущую строку и выполнить с ней системную команду:

  • С y$ читать легко (вы можете использовать низкоуровневую getline('.') Чтобы избежать путаницы в регистре по умолчанию, но это необязательное расширение; сначала придерживайтесь основ).
  • Системные команды :! {cmd} (опять же, есть system() альтернатива)
  • Вставка регистра в режиме командной строки - <C-r>" .

(Все это можно найти в отличной :help .) Полная команда будет (<CR> - это клавиша Enter, которая завершает командную строку):

y$:! evince <C-r>"<CR>

Если это работает удовлетворительно, вы можете превратить его в отображение и поместить в ваш ~/.vimrc:

:nnoremap <F1> y$:! evince <C-r>"<CR>

Вуаля! Если вы хотите автоматически перейти к следующей строке, просто добавьте j в конце.

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