можно ли указать имя сервера vim в.vimrc, или где-то еще, в зависимости от типа файла?


Я должен ввести

gvim --servername xdvi toto.tex

Включить обратный поиск от xdvi к latex.

Есть ли способ инкапсулировать это в .vimrc: когда vim обнаруживает .tex file, autocmd устанавливает имя сервера в vimrc ? Кажется, уже слишком поздно, как только vim будет запущен, или?

Если не в .vimrc, то где ?

1 2

1 ответ:

Специальная переменная v:servername доступна только для чтения; вы не можете изменить ее в Vim. Если вам нужно определенное имя сервера, оно должно быть указано при запуске с помощью аргумента --servername.

Чтобы избежать дополнительного набора текста, я бы предложил специальный псевдоним оболочки (в Unix) или небольшую пакетную оболочку (в Windows). В зависимости от того, насколько это важно, вы можете даже добавить некоторую логику сценариев для проверки аргументов .tex, и только после этого задать имя сервера.

Единственный способ достичь этого изнутри Vim будет разветвлять новый экземпляр Vim (через system()), передавая все аргументы плюс аргумент servername, а затем закрывая исходный экземпляр Vim через :quit. Но это очень громоздко и не так просто реализовать.