VIM: выполнить команду из нескольких слов при открытии нескольких файлов - PullRequest
0 голосов
/ 05 декабря 2018

Мой тезис состоит из нескольких текстовых файлов, и я постоянно переключаюсь между ними, поэтому я создал сценарий оболочки load_files.sh:

#!/bin/bash

vim file1.tex file2.txt, ..., fileN.tex

Это прекрасно работает, но, к сожалению, из-за сложной мультиструктура файла Проверка орфографии VIM не работает должным образом.Я обнаружил, что ответ @Dominik решил проблему ( Проверка орфографии Vim не всегда работает в файле .tex. Проверьте область в Vim ).Однако я не хочу запускать эту команду вручную каждый раз, когда открываю файлы, и не хочу помещать ее в свой файл tex.vim, потому что это только мой тезис, который имеет эту проблему.Поэтому я попытался использовать -c и флаг + в сценарии оболочки, но он не работает ( Vim - как сразу запустить команду при запуске vim? и Как я могу открыть vimс определенным номером строки вверху? ), но это не работает.Вот что я изменил строку vim и сценарий оболочки:

  • vim +"syntax spell toplevel" file1.tex file2.txt, ..., fileN.tex
  • vim -c "syntax spell toplevel" file1.tex file2.txt, ..., fileN.tex

Они прекрасно открывают файлыно когда я включаю проверку орфографии, проблема не решается.К вашему сведению, если я нормально открою файлы и запусту :syntax spell toplevel, то проверка орфографии сработает.

Вот мой ответ @Conner, потому что он слишком длинный для комментария:

Спасибо @Коннер за помощь.Вы говорите, что когда я использую флаг -c, команда запускается только для первого файла, а не для всех файлов?Это определенно проблема, но решения, которые вы предлагаете, не могут помочь.

  • Я заявил в вопросе, что я только хотел сделать это изменение в моих текстовых файлах диссертации, и поэтому не хотел добавлятьвведите команду tex.vim.
  • Если я создаю локальный vimrc, скажем .thesis_vimrc и использую флаг -u, тогда, если мне нужны мои плагины, мне нужно скопировать ~ / .vimrc в .thesis_vimrc и затем добавьте syntax spell toplevel к нему.К сожалению, Pathogen перестает работать (предположительно, потому что ему нужны все плагины в этом каталоге, но я не хочу иметь несколько копий всех моих плагинов).Я попытался найти ~/.vimrc в .thesis_vimrc с so ~/.vimrc, но я получил ту же ошибку Pathogen.

  • Я попытался открыть все файлы и изменить орфографию с помощью syntax spell toplevel изатем сохраните новый сеанс, используя mksession.Когда я открываю сохраненный сеанс, syntax spell toplevel не изменяется.

  • Наконец я попытался использовать modelines для добавления set modeline и set modelines=1 к ~/.vimrc и добавления % vim: syntax spell toplevel до первой строки файлов, но затем, когда я открываю эти файлы, захожу в буферы и включаю проверку орфографии, я получаю следующую ошибку:

    синтаксис = tex Обнаружена ошибка при обработке моделин: строка 1: E518: Неизвестная опция: toplevel

Конечно, это не может быть так сложно, кто-нибудь может помочь, пожалуйста?

1 Ответ

0 голосов
/ 05 декабря 2018

Использование vim -c 'text here' действительно работает для команд из нескольких слов.

Если вы прочитаете пост, на который вы ссылались, вы увидите:

enter image description here

, который инструктирует вас написать команду в вашем файле ~/.vim/after/syntax/tex.vim.Таким образом, вам не нужно выполнять его вручную.

Это можно сделать, просто набрав

echo "syntax spell toplevel" >> ~/.vim/after/syntax/tex.vim

Если вы прочитаете :help -c, вы заметите:

-c {команда} {команда} будет исполнена после того, как будет прочитан первый файл

Здесь есть несколько альтернативных опций.Если вы хотите использовать эти параметры только для конкретного проекта, вы можете создать пользовательский .vimrc, например .myprojectvimrc, и указать его с помощью -u.Смотри :help -u.

Вы также можете использовать сеансы vim.См. :help mksession и :help -S.

Вы также можете использовать моделину в своих файлах.См. :help modeline.

В качестве примечания, вместо того, чтобы использовать скрипт для создания экземпляра vim, вы можете просто набрать vim file*.tex.

...