用文档存储vim设置

有什么办法来保存文件的vim设置的状态?

澄清:我正在编辑一个文件,我改变了一堆设置。 我不一定记得哪一个; 除了当前文档,我不想再使用这些设置。 我不想手动尝试记住我已经改变了; 或者我已经改变的设置的神奇缩写是什么。 我只想为“mydoc.txt”这个“mydoc.vim”文件设置文件,这个文件将我放回原来的位置,并且设置文件会根据vim设置自动保存,或者也许是在我退出之前,按Ctrl键。 如果vim可以自动查找这样的文件,这将是方便的。

最好不要编辑进出文档本身的设置。

你可以使用Vim的Session支持:

:mksession 

您可以稍后通过运行vim -S Session.vim或使用source Session.vim来加载

还有vim插件来自动化会话加载/保存

是的,vim设置可以包含在文档中。

他们主要是在评论中发现,所以他们不搞乱原始文件。 制表符特定设置的示例是:

 /* ex: set tabstop=8 expandtab: */ 

请注意,这个命令在大多数情况下都能正常工作,但是由于安全原因,服务器通常没有启用模式线。 要打开该function,请在$ HOME / .vimrc或系统$ VIM / vimrc中添加以下内容:

 set modeline 

您可以通过编辑.vimrc文件来保存全局设置。

Vim还允许您使用模式线保存每个文件的设置

以下是将所有当前设置保存到文件的方法:

 :redir > textfile.txt :set all :redir END 

如果你喜欢,只需将该文件重命名为~/.vimrc即可。

您可以将文件保存为特定types,例如特殊文件名格式或扩展名,然后在.vimrc中为该文件types定义自动命令。

我这样做我的makefile,以确保我有我需要的特定文件的各种设置。

例如,这是我的自动命令十二。

 if has("autocmd") autocmd BufRead,BufNewFile Makefile* :set noexpandtab autocmd BufRead,BufNewFile mirror.conf :set noexpandtab autocmd BufRead,BufNewFile *.html* :set shiftwidth=2 autocmd BufRead,BufNewFile diff_files :set autowrite autocmd BufRead,BufNewFile lbnamed* :set ft=perl autocmd BufRead,BufNewFile *.t :set ft=perl endif