【问题标题】:Vim plugin "auto-pairs" change automatic indent size?Vim 插件“自动对”更改自动缩进大小?
【发布时间】:2018-12-06 15:10:20
【问题描述】:

我不确定这是否是问这个问题的正确地方,但我认为在这里问不会有什么坏处。我正在使用一个名为auto-close 的插件,这样我就不必关闭自己的括号。它有一个非常好的功能,可以执行以下操作:

这是一个很棒的功能,但我不喜欢它对我的缩进程度。 我的 .vimrc 中有以下行:

" for filetype "js", tab = insert 4 spaces, backspace will delete all 4
autocmd Filetype javascript setlocal expandtab softtabstop=4

在编辑 javascript 文件时,它会自动执行 8 空格缩进,而不是 4 空格缩进,正如我在 .vimrc 中指定的那样。谁能帮我弄清楚如何让它自动缩进 4 个空格的制表符而不是 8 个空格的制表符?我在文档中也找不到。谢谢!

【问题讨论】:

  • :verbose set shiftwidth? softtabstop? tabstop?
  • @phd 这是我得到的:shiftwidth=8,softtabstop=0,tabstop=8。我可以尝试更改其中的每一个,看看它是否会产生所需的行为,但它可能会影响其他东西,对吧?我怎样才能让它只影响这种特定情况下的行为?
  • 请发布详细命令的全部输出。我们必须看看它在哪里设置。
  • 这是这些命令的全部输出 (?)。如果我在 vim 中输入:verbose set shiftwidth?,整个输出是shiftwidth=8。我该怎么做才能获得更多输出?

标签: vim plugins indentation text-editor vi


【解决方案1】:

如果你得到shiftwidth=8, softtabstop=0, tabstop=8,那意味着你的autocmd FileType没有生效。你必须解决这个问题。

我建议将任何设置、映射和特定于文件类型的自动命令放入~/.vim/ftplugin/{filetype}_whatever.vim(或{filetype}/whatever.vim;cp.:help ftplugin-name)而不是定义大量:autocmd FileType {filetype};它更干净,扩展性更好;不过,要求您拥有:filetype plugin on覆盖 默认文件类型插件中的设置应该进入~/.vim/after/ftplugin/{filetype}.vim。缩进设置的更改将适合后者,目录之后位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 2011-04-25
    • 2020-08-09
    • 1970-01-01
    相关资源
    最近更新 更多