【问题标题】:Vim doesnt respect vimrc indentation settingsVim 不尊重 vimrc 缩进设置
【发布时间】:2020-11-04 08:33:51
【问题描述】:

我是使用 Vim 的新手,并且一直在使用 GitHub 上的“终极 Vim 配置”。它默认使用 4 个空格宽的制表符,因此为了改变它,我将 .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

" Own settings
set number
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
set smarttab

try
source ~/.vim_runtime/my_configs.vim
catch
endtry

my_configs.vim 文件被删除,所以我知道那里的缩进设置没有被覆盖。

问题是,如果我使用 :source ~/.vimrc 从 vim 获取 vimrc 文件,缩进效果很好,但是如果我关闭 Vim 并再次打开,那么缩进会回到 4 个空格而不是 vimrc 中指定的 2 个空格... Ultimate Vim 配置中的所有其他设置都是从​​ vimrc 加载的,但不是缩进设置,这真的很令人沮丧,因为每次我想使用 vim 时都需要获取 vimrc 文件。

非常感谢任何帮助,我真的很想专门使用 Vim 但如果无法解决,那么我需要继续使用 Visual Studio Code :(

提前谢谢你。

编辑:这是运行命令:verbose set tabstop? softtabstop? shiftwidth?的输出:

tabstop=2, Last set from ~/.vimrc line 10
softtabstop=2, Last set from ~/.vimrc line 11
shiftwidth=2, Last set from ~/.vimrc line 12

【问题讨论】:

  • 使用别人的vimrc 是一个非常糟糕的主意。你应该考虑放弃它并正确地学习 Vim。
  • "所有其他设置......从 vimrc 加载,但不是缩进设置" 那肯定是不可能的,事实并非如此。所有设置都已加载,但稍后会覆盖一些设置。查看地点::verbose set tabstop? softtabstop? shiftwidth?
  • @phd 该命令的输出已添加,如您所见,它们没有被覆盖...
  • 那有什么问题呢?它会增加 4 个空格吗? -> 查看选项卡的映射。它会将空间更改为制表符吗?它会改变已经存在的空格数吗?
  • 你是否在 python 文件中调用了:verbose set tabstop? softtabstop? shiftwidth? 命令?有文件类型插件。您是否有任何插件正在改变标签行为?

标签: vim


【解决方案1】:

当您在 Vim 中编辑 Python 文件时,它会自动检测文件类型并应用 Python 特定设置。其中,它将设置 PEP 8 推荐的软制表位。

您可以在 Vim 运行时的 ftplugin/python.vim 中找到这些设置:

if !exists("g:python_recommended_style") || g:python_recommended_style != 0
    " As suggested by PEP8.
    setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
endif

你可以用一个全局变量覆盖这些设置,你可以在你的 vimrc 中设置它。要禁用 Vim 自动设置的 Python 制表位,请在 vimrc 中的某处包含以下内容:

let g:python_recommended_style = 0

请注意,这些设置的存在是有原因的,它们对于 Python 来说是相当标准的,并且看到 Python 代码缩进不同数量的空格是非常不寻常的......但如果你真的想要,你可以使用旋钮来覆盖它到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多