vim - vimrc 和 vimruntime 有什么区别

标签 vim vim-plugin

我从 amix/vimrc 下载了 vimrc这对于开始使用 vim 非常有帮助。但是当我尝试编辑 .vim_runtime 时,我不断收到错误消息。这是我的 .vimrc

set runtimepath+=~/.vim_runtime
    source ~/.vim_runtime/vimrcs/basic.vim
    source ~/.vim_runtime/vimrcs/filetypes.vim
    source ~/.vim_runtime/vimrcs/plugins_config.vim
    source ~/.vim_runtime/vimrcs/extended.vim
 try
    source ~/.vim_runtime/my_configs.vim
 catch
 endtry

现在我想更改我的 NERDTree 插件的设置,但我不知道在哪里编辑我的设置。配置对于vim的新手来说很困惑。我发现了这个类似的 question但这对我的努力没有帮助。有人能解释一下 vimrc 和 vimruntime 之间的区别吗?我可以看到 vimrc 从 .vim_runtime 获取设置,但我是否将设置添加到 vimrc 或 vimruntime?哪个是添加设置的最佳位置?

最佳答案

您正在使用其他人的 Vim 配置文件,这可能有点棘手,尤其是当 vimrc文件很大或分成许多文件。

这里发生了什么?

amix 决定分手他的 vimrc配置成更小的文件以帮助组织他的 vimrc文件。他是通过 :source 做到的- 这些文件来自他的 vimrc文件(见 :h :source)。现在理论上你可以在这些其他文件之一中添加你的 NerdTree 设置,可能是 ~/.vim_runtime/vimrcs/plugins_config.vim .

需要注意的是,这个文件约定不是 Vim 原生的,只是 amix 发明的东西来帮助他处理庞大的 vimrc文件。他的惯例可能与您自己的组织不一致,并且可能会妨碍您将来寻求帮助。

友好的警告

关于使用其他配置文件的年轻 vimmer 有几点需要注意:

  • 当您想要进行自己的自定义时,经常使用大型和/或复杂的 vimrc 会导致混淆
  • vimrc 文件是一个非常自以为是的文件。您的意见可能会发生冲突
  • 假设您复制的 vimrc “好”或更可能:“适合您的工作流程”
  • 很多时候很多设置只是简单的复制,没有任何理解。很好的例子是 'gdefault'选项(见 :h 'gdefault')
  • 不理解复制会导致cargo cult programming
  • Vimrc 文件很容易出错。这意味着您可能正在复制不再使用的东西,令人困惑的东西,或者只是简单的损坏

  • 想法

    通常最好从一个小的 vimrc 文件开始,然后在学习时慢慢添加。这意味着您了解 vimrc 中的每一行。开始使用 vimrc 的好地方是:idiomatic-vimrc .

    对于一般 Vim 定制建议,我会指向 Drew Neil 的 Vimcast 帖子:On sharpening the saw

    有关更多信息,请参阅:
    :h vimrc-intro
    :h vimrc_example.vim
    :h vimrc
    :h startup
    :h :source
    :h 'gdefault'
    

    关于vim - vimrc 和 vimruntime 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30337281/

    相关文章:

    vim - 如何在 Vim 中创建新目录和文件

    Vim 与 GHCi 的集成

    windows - 我怎样才能让 gVim (Windows) 为我的插件使用 "home\.vim"?

    vim - 如何让 NERDTree 保持在左侧

    vim 插件 csupport : How to change the layout of automatic header?

    ruby - VIM 有哪些不同的 Ruby 调试插件?

    vim - ctags 在 vi​​m 中导航到 java 静态方法

    python - 如何改变 vim Python 缩进大小?

    展开 html 标签后的 Vim 光标位置

    vim - 电力线可以在多个缓冲区中显示,但不能在单个缓冲区中显示