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

用文档存储VIM设置

  •  52
  • dkretz  · 技术社区  · 16 年前

    有没有办法用文档保存VIM设置的状态?

    澄清:我正在编辑一个文档,我更改了一系列设置。我不一定记得是哪个;我不想再使用这些设置,除了当前文档。我不想手动记住我所做的更改,也不想记住我所做设置的神奇缩写。我只想,比如说,对于“mydoc.txt”,有一个“mydoc.vim”文件,将我放回我离开的地方,并且设置文件将根据vim设置自动保存,比如说,或者在我退出之前用ctrl键保存。如果Vim能自动查找这样一个文件,那就方便了。

    最好不要在文档本身中编辑这些设置。

    5 回复  |  直到 9 年前
        1
  •  23
  •   Hasturkun    16 年前

    您可以使用VIM的会话支持:

    :mksession
    

    以后可以通过运行 vim -S Session.vim 或使用 source Session.vim

    还有一些VIM插件可以自动执行会话加载/保存。

        2
  •  110
  •   Alexis Wilke    10 年前

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

    它们大多在注释中找到,因此不会弄乱原始文件。选项卡特定设置的一个示例是:

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

    注意,这个命令在大多数情况下都有效,但是,服务器通常是在没有 modeline 出于安全原因打开。要启用该功能,请在$home/.vimrc或系统$vim/vimrc中添加以下内容:

    set modeline
    
        3
  •  9
  •   Matthewd    16 年前

    您可以通过编辑 .vimrc 文件。

    VIM还允许您使用 modelines

        4
  •  7
  •   Harley Holcombe    16 年前

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

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

    如果您愿意,只需将该文件重命名为 ~/.vimrc 你走吧。

        5
  •  4
  •   Sagar Jain    9 年前

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

    我对生成的文件执行此操作,以确保具有特定文件所需的各种设置。

    例如,这里是我的自动命令dec。

    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