1

我的论文由多个 tex 文件组成,我经常在它们之间切换,所以我创建了一个 shell 脚本 load_files.sh:

#!/bin/bash

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

这很好用,但不幸的是,由于复杂的多文件结构,VIM 的拼写检查不能正常工作。我发现@Dominik 的答案解决了这个问题(Vim 拼写检查并不总是在 .tex 文件中工作。检查 Vim 中的区域 )。但是,我不想每次打开文件时都手动运行该命令,也不想将它放入我的 tex.vim 文件中,因为只有我的论文有这个问题。所以我尝试在 shell 脚本中使用 -c 和 + 标志,但它不起作用(Vim - 如何在启动 vim 时立即运行命令?以及如何在顶部打开带有特定行号的 vim? ) 但它不起作用。这是我将 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。
  • 如果我创建一个本地 vimrc,说.thesis_vimrc并使用-u标志,那么如果我想要我的插件,那么我需要将 ~/.vimrc 复制到.thesis_vimrc然后添加syntax spell toplevel到它。不幸的是,Pathogen 停止工作(可能是因为它需要该目录中的所有插件,但我不想拥有所有插件的多个副本)。我试图~/.vimrc.thesis_vimrcwith内部进行采购,so ~/.vimrc但我得到了相同的 Pathogen 错误。

  • 我尝试使用打开所有文件并更改拼写syntax spell toplevel,然后使用mksession. 当我打开保存的会话时,syntax spell toplevel它没有改变。

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

    处理模式行时检测到语法 = tex 错误:第 1 行:E518:未知选项:顶层

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

4

1 回答 1

3

使用vim -c 'text 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.

于 2018-12-05T16:51:08.540 回答