为什么〜/ .vimrc在我输入“:so~ / .vimrc”之前没有效果?


1

我只想更改标签大小。我知道文件正在加载,因为它显示在:scriptnames中,我包含了一个每次打开vim时运行的echo。为什么〜/ .vimrc在vim启动时不能自动工作?

我正在运行最新版本的Ubuntu。

〜/ .vimrc的内容:

map <C-t><up> :tabr<cr>

map <C-t><down> :tabl<cr>

map <C-t><left> :tabp<cr>

map <C-t><right> :tabn<cr>

set tabstop=4
set shiftwidth=4
echo "LOADED"

~/.vimrc几乎肯定是正确的来源,但文件类型插件可能会覆盖您的设置。你能分享你的vimrc吗?
罗曼

你的意思是文件〜/ .vimrc中的文字?
迈克尔·亚当2014年

当然是。
罗曼

1
要找出覆盖您的值的脚本,请尝试:verbose set tabstop? shiftwidth?
echristopherson 2014年

:verbose命令用于显示定义映射的位置。检查你有什么样的映射,control-t以及它们的设置位置: :verbose map <c-t>
Heptite 2014年

Answers:


0

默认情况下,已保存的会话也会存储所有全局配置值和映射。因此,您需要~/.vimrc在加载会话后明确地获取更改,或重新创建/编辑会话。

如果您不动态更改选项并定义映射(仅通过~/.vimrc插件和插件),则无需在已保存的会话中包含此选项。你可以通过以下方式关闭它:

:set sessionoptions-=options

作为一个很好的副作用,您存储的会话将变得更小。


是否可以从旧会话中永久地获取新的.vimrc?
迈克尔·亚当2014年

我更喜欢我的答案中的选项,但你可以通过:autocmd SessionLoadPost * source ~/.vimrc
Ingo Karkat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.