我使用vim的拼写检查功能。鉴于我使用了许多技术术语和LaTeX命令,因此我倾向于将它们添加到~/.vim/spell/en.utf-8.add中的个人字典中。 word到一台计算机上的文件中,它也会添加到其他计算机上,而我不需要在每台计算机上添加一次。我尝试在git中对~/.vim/spell/en.utf-8.add进行版本控制,但这似乎不起作用:vim无法使用新术语。我怀疑vim还需要以某种方式编辑en.utf-8.add.spl文件,但是由于该文件是二进制文件,因此对其进行版本控制可能会导致冲突。作为其配置的一部分,并在所有计算机之间进行同步?

#1 楼

Vim使用spl文件进行检查,并从spl文件生成add文件。我们可以推测spl文件是否可以在不同的机器和Vim版本之间移植,但是根据需要更容易(更安全)地重新生成它。现在,当您从Vim中向本地词典中添加单词时,会自动重新生成spl文件,但是如果直接编辑mkspell文件,则必须运行add才能重新生成它。

请记住,您可以执行以下操作:通过任何方式(与addgit,NFS或其他方式)同步rsync文件,并将这些命令添加到所有计算机上的vimrc中: br />
每当相应的spl文件比它新时,这将在Vim启动时重新生成add文件。

评论


太好了,谢谢!我在exec之前添加了Silent,所以我不会在启动时被命令的进度信息所发垃圾邮件(也不会收到“按ENTER或键入命令以继续”)。

– a3nm
2015年10月9日15:20

@ a3nm这是一个优先事项。正如多年前一位高级系统管理员向我解释的那样,被“确定”通知所充斥的信号表明一切正常。 :)

–佐藤桂
2015年10月9日18:48

顺便说一句,如果您还使用此设置,则可能要自动处理git冲突。我在这里解释了如何执行此操作:a3nm.net/blog/git_auto_conflicts.html

– a3nm
17年3月26日在22:16

@Cbhihe:你完全错了。 glob()是一个内置的Vim函数(顾名思义)执行与Bash路径名globbing等效的功能。也就是说,glob()接受一个glob表达式,并返回一个与本地文件系统上与该表达式匹配的所有路径名的列表或字符串。 Glob表达式就像正则表达式一样,只是更简单,功能更弱。在Vim中键入:h glob以获得令人毛骨悚然的详细信息。

– Cecil咖喱
20-4-11在3:34



#2 楼

我为此创建了一个Vim插件。它会自动找到拼写文件夹的路径,然后在启动时找到的任何单词列表上调用mkspell来重新生成拼写文件。它还在拼写目录中创建.gitignore.gitattributes文件,以排除二进制拼写文件,并使用Gi​​t的并集合并驱动程序来避免在合并来自两个不同计算机的拼写文件时发生冲突。感谢Sato Katsura提供的mkspell示例。

https://github.com/micarmst/vim-spellsync

#3 楼

我使用Dropbox将.vim文件夹同步到我的机器上。每当我对配置进行更改时,我都会将其放回Dropbox并将其拉到其他计算机上。

我在.bashrc文件中设置了命令,因此可以保存一些键入内容。我的Vim安装不是太复杂,因此在进行更改时可以很快同步。不确定如何处理超大的.vim文件夹。

评论


感谢您的建议!但是,Dropbox是专有软件,因此不想使用它。 (这迫使我更加担心它的安全性,并且它不提供我所存储内容的机密性保证。)

– a3nm
17 Mar 26 '17在22:18

避免使用“投递箱”。改用git版本控制。

– Cbhihe
19 Mar 8 '19 at 10:17