【问题标题】:Oddities in Configuring Vim配置 Vim 的奇怪之处
【发布时间】:2013-06-02 18:35:13
【问题描述】:

Vim 出现了一些让我困惑的配置行为。

  1. 我读到 vim 接受 $VIM/vimrc 作为其默认配置文件。在我的 shell 环境中,$VIM 设置为 /etc/vim,但 /etc/vim/vimrc 不用作默认配置文件。而是使用/usr/share/vim/vimrc

  2. 我在我的 vimrc 文件(现在是 /usr/share/vim/vimrc)中定义了以下映射,nnoremap ccom :normal I//< ESC>< CR>。该映射应该在当前行的开头插入一个 c 样式的注释。当我使用这张地图时,我会在当前行的开头看到文本//<ESC><CR>。这是故障。同样,如果我以-u /usr/share/vim/vimrc 启动vim,则映射会表现出相同的不良行为。但是,如果我使用 ex 命令source /usr/share/vim/vimrc,则映射只是在行首插入//。这怎么可能?

  3. 如果 :show cmd 在我知道运行的配置文件中,为什么不设置 showcmd?

【问题讨论】:

  • 不,你的 vimrc 不是 /usr/share/vim/vimrc,它是 ~/.vimrc,也可以在 Vim 中使用 :e $MYVIMRC 访问。如果它还不存在,您需要自己创建它。
  • 如果您有多个问题,请提出多个问题。 无论您是在运行时在 Vim 中还是在 ~/.vimrc 中执行此操作,:show cmd 都不执行任何操作。在运行时使用:set showcmd 或将set showcmd 添加到您的~/.vimrc。哦!并阅读:help showcmd

标签: shell vim configuration keymapping


【解决方案1】:

永远不要$VIM做任何事。

全部您的配置应该发生在~/.vim 目录和~/.vimrc 文件中。

将此行放入~/.vimrc,您就可以开始了:

nnoremap ccom :normal I//<CR>

编辑

$VIM 是 Vim 的默认运行时。因此,它的设置方式可以保证一致的用户体验。以下是三个很好的理由,我相信我还可以挖掘更多:

  • 更改该目录中的任何内容只会使 Vim 处于不一致的状态,可能导致意外行为。

  • 该目录的内容(或部分内容)可能会在下一次升级(vim 或系统)期间被覆盖,基本上消除了您在那里所做的任何自定义。

  • 大多数脚本都是围绕一堆约定设计的,并且通常要求某些功能在运行时或源时或其他任何情况下都可以访问。将这些脚本安装在正常位置 (~/.vim) 以外的任何地方都会导致更多意外行为。

【讨论】:

  • 你为什么建议不要在 $VIM 中做任何事情?
猜你喜欢
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
  • 2021-01-08
相关资源
最近更新 更多