【问题标题】:vim uses a different rc file for 2 different files in the same folder. How come?vim 对同一文件夹中的 2 个不同文件使用不同的 rc 文件。怎么会?
【发布时间】:2017-01-24 18:43:21
【问题描述】:

我的主目录中有 2 个文本文件:file1.txt 和 fil2.txt。 我正在使用 /usr/bin/vim 打开它们。 在查找用于设置属性的最后一个脚本时(例如 :verbose set textwidth?),它们会产生不同的结果。怎么会 ?该信息存储在哪里?

vim file1.txt

:verbose set textwidth?
  textwidth=78
        Last set from /etc/vimrc

vim file2.txt

:verbose set textwidth?
  textwidth=120
        Last set from ~/.exrc

只是为了增加谜题或帮助获得答案:如果我将 file2.txt 复制到一个新文件(即 file3.txt),那么新文件将获得“Last set from /etc/vimrc”):

cp file2.txt file3.txt
vim file3.txt
:verbose set textwidth?
  textwidth=78
        Last set from /etc/vimrc

这里是关于我刚刚创建的新 file3.txt 的更多信息:另一方面,如果我进入另一个 Xterm,我创建新 file3.txt 的 Xterm 显示“Last set from /etc/vimrc”(让我们称它为 Xterm2) 我刚刚打开并检查了 file3.txt,它显示“Last set from ~/.exrc”。所以答案也必须与 Xterm 环境设置有关。 总结一下:

Xterm file2.txt -> ~/.exrc
Xterm file3.txt -> /etc/vimrc
Xterm2 file2.txt -> ~/.exrc
Xterm2 file3.txt -> ~/.exrc

【问题讨论】:

  • 最好在这里问这个问题vi.stackexchange.com
  • ~/.exrc 中有什么内容?
  • 我认为最好显示您的 vim 和 .exrc 使用的 .vimrc 的内容,因为答案就在那里,并说明您采购了哪些文件。
  • 你能提到$VIM的价值吗?或者直接显示你的默认vimrc ?
  • 这里有一些答案: --- cat .exrc set shiftwidth=4 set tabstop=4 set autoindent set backup set hardtabs=4 set expandtab set backupext=.bak verbose set textwidth=120 "使用 gqG重新格式化整个文档或 gq{ 提醒文件 "set wrapmargin=2 "set gfn=Monospace\ 10 set gfn=Monospace\ 9 ":colors default ... 我的主目录中没有 .vimrc .exrc。建议与 vanila vi 共享它 --- echo $VIM 为空

标签: vim


【解决方案1】:

这些信息存储在哪里?

对于set 命令(set [option])的每个选项,vim 都持有与每个选项相关的特性。

其中一个特征是制作最后一组的脚本的 ID。

所以 Vim 不会在任何文件中保存这些信息,而是直接将它们写在屏幕上。

如果你设置了verbosefile 选项,vim 将根据文件中的详细级别复制 verbose 命令 显示的那些消息。

当查找用于设置的最后一个脚本时 属性(例如 :verbose set textwidth?)它们产生不同的 结果。怎么会?

您需要检查您的/etc/vimrc~/.exrc、插件和源文件,以了解设置textwidth 选项的顺序,以便您了解为什么它是最后一个设置它的脚本。

【讨论】:

  • 为什么位于同一文件夹(即主目录)中的 2 个文本文件的插件顺序会不同?
  • 2 个文件有 2 个不同的名称,可能有 2 个不同的内容,2 个不同的位置 ....所以它可能是一个插件正在设置一个文件而不是另一个。我刚刚提到它,以便您了解并遵循设置选项的顺序,但可以肯定的是,您的问题中提到的两个文件是最后一个设置 textwidth 的文件。
【解决方案2】:
.exrc is the configuration file for vi, 
.vimrc is the config file for vim

因此,file1.txt 被编辑并保存在 vim 中; file2.txt 被编辑并保存在 vi 中。 (注意:vim 会使用 .vimrc 配置文件,如果不存在则使用 .exrc。)

textwidth=xxx 是一个可以放在 .vimrc 或 .exrc 配置文件中的配置。

【讨论】:

  • 如果我使用 vim 编辑并保存 file2.txt 下次我用 vim 打开它时,我会得到相同的“Last set from ~/.exrc”。
  • 你或你的shell环境是否可以访问.vimrc,还是只能找到.exrc?
  • 我的主目录中没有 .vimrc。我只保留 ~/.exrc 并打算将它用于 vim 和 vanilla vi。
  • 使用 :scriptnames,比较打开这两个文件。 :scriptnames 将显示订单来源文件。
  • 我知道 :scrptnames 但这里重要的是最后一个执行的。问题仍然存在 - 为什么同一 Xterm 中同一目录中的 2 个文件显示不同的最后执行脚本?
猜你喜欢
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 2014-05-08
  • 1970-01-01
相关资源
最近更新 更多