代码之家  ›  专栏  ›  技术社区  ›  ojunk

VIM:打开多个文件时执行多字命令

  •  1
  • ojunk  · 技术社区  · 7 年前

    #!/bin/bash
    
    vim file1.tex file2.txt, ..., fileN.tex
    

    这很好,但不幸的是,由于复杂的多文件结构,VIM的拼写检查不能正常工作。我发现来自@Dominik的答案解决了这个问题( Vim spellcheck not always working in .tex file. Check region in Vim ). 但是,我不想每次打开文件时都手动运行该命令,也不想将其放入我的tex.vim文件中,因为只有我的论文才有这个问题。所以我试图在shell脚本中使用-c和+标志,但它不起作用( Vim - how to run a command immediately when starting vim? How can I open vim with a particular line number at the top? )但没用。下面是我将shell脚本的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的回应,因为它太长了,无法发表评论:

    谢谢你@Conner的帮助。你是说当我使用 -c 标记命令只在第一个文件上运行,而不是在所有文件上运行?这绝对是个问题,但你给出的解决方案却帮不上忙。

    • 我在问题中声明,我只接受了对我的论文tex文件所做的更改,因此不希望将命令添加到tex.vim。
    • .thesis_vimrc 使用 -u 如果我想要我的插件,那么我需要将~/.vimrc复制到 .论文 syntax spell toplevel 为了它。不幸的是,病原体停止工作(可能是因为它需要那个目录中的所有插件,但我不想拥有所有插件的多个副本)。我试着寻找 ~/.vimrc 在内部 .论文 so ~/.vimrc 但我也有同样的病原体错误。

    • 我试着打开所有的文件并用 然后使用 mksession . 当我打开保存的会话时 语法拼写顶层

    • 最后我试着用 modelines 添加 set modeline set modelines=1 ~/.vimrc 加上 % vim: syntax spell toplevel 到文件的第一行,但是当我打开这些文件时,转到缓冲区并打开拼写检查器,我得到以下错误:

      处理模型行时检测到错误: E518:未知选项:顶级

    当然不会这么复杂,有人能帮忙吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Conner devopensource    7 年前

    使用 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{command}{command}将是 在第一个文件完成后执行 阅读

    .vimrc 例如 .myprojectvimrc 并用 -u :help -u .

    您也可以使用vim会话。见 :help mksession :help -S .

    也可以在文件中使用模型线。见 :help modeline

    顺便说一下,您可以只键入 vim file*.tex .