Это потому, что то, что следует за autocmd
, является командой ex (те, которые начинаются
с двоеточием). Чтобы смоделировать выполнение команды нормального режима, используйте
:normal
команда. Проблема в том, что вы не можете передать <C-O>
(а не
<Ctrl-O>
) непосредственно к :normal
, оно будет воспринято как буквенные символы (<,
затем C, затем r), что не очень значимая нормальная команда. У вас есть два
опции: </p>
1.Введите буквальный символ ^ O
Используйте control v control o , чтобы получить:
au BufEnter *.pdf normal! ^O
2.Используйте :execute
для создания вашей команды
Таким образом, вы можете получить более читаемый результат с помощью экранированной последовательности:
au BufEnter *.pdf exe "normal! \<c-o>"
В любом случае, это не самая подходящая команда. <C-O>
просто прыгает на
предыдущее место в списке переходов, поэтому ваш буфер остается открытым. я бы сделал
что-то вроде:
au BufEnter *.pdf bdelete
Вместо. Тем не менее у меня есть другое решение для вас.
Создайте еще одну команду с картой, скажем gO . Тогда используйте вашу программу для чтения PDF
напрямую, или утилиту типа open
, если вы используете MacOS X или Darwin (не уверен, что
другие системы Unix имеют его, и как это называется). Это как двойной щелчок
значок файла передается в качестве аргумента, поэтому он открывает программу чтения PDF по умолчанию
или любое другое приложение, настроенное на открытие любого файла по умолчанию, например изображения или
поэтому.
:nnoremap gO :!open <cfile><CR>
Этот <cfile>
будет расширен до файла под курсором. Так что если вы хотите
откройте файл в Vim, используйте gf . Если вы хотите открыть его по умолчанию
приложение, используйте gO .
Если у вас нет этой команды или вы предпочитаете решение только для PDF, создайте карту для
предпочитаемая вами команда:
:nnoremap gO :!FoxitReader <cfile> &<CR>