我的论文由多个tex文件组成,我不断在它们之间滑动,所以我创建了一个shell脚本load_files.sh:
#!/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
标志时,命令仅在第一个文件上运行,而不是在所有文件上运行吗?这绝对是问题,但是您提供的解决方案无法提供帮助。
如果我创建本地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:未知选项:顶级
当然不能这么复杂,有人可以帮忙吗?
答案 0 :(得分: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
。
您还可以在文件中使用Modeline。参见:help modeline
。
请注意,您无需键入脚本来进行vim实例化,只需键入vim file*.tex
。