微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在新缩进级别vim之后换行后缩进

vim中,我只是将标签从2个空格更改为4个空格.这很好 – 当我点击标签时,它会缩进4个空格.当我添加相同缩进的新行时,它可以工作.但是 – 当我需要一个新的缩进级别并按Enter键时,它只会缩进2个空格.

prevIoUsly fixed code{
    prevIoUsly indented code;
    if (new amount of indenting should happen){
      only this much is given by vim;
        but hitting tab takes me here (where I want to be);
    }
}

知道我可能需要更改哪些设置才能使其正常工作?我已经尝试过每一个我能找到的东西(autoindent,cindent,设置各种tabstop类型的变量),但无济于事.

解决方法

当您通过运行:help tabstop检查帮助文件时,您将获得:

'tabstop' 'ts'      number  (default 8)
            local to buffer
    Number of spaces that a <Tab> in the file counts for.  Also see
    |:retab| command,and 'softtabstop' option.

    Note: Setting 'tabstop' to any other value than 8 can make your file
    appear wrong in many places (e.g.,when printing it).

    There are four main ways to use tabs in Vim:
    1. Always keep 'tabstop' at 8,set 'softtabstop' and 'shiftwidth' to 4
       (or 3 or whatever you prefer) and use 'noexpandtab'.  Then Vim
       will use a mix of tabs and spaces,but typing <Tab> and <BS> will
       behave like a tab appears every 4 (or 3) characters.
    2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
       'expandtab'.  This way you will always insert spaces.  The
       formatting will never be messed up when 'tabstop' is changed.
    3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
       |modeline| to set these values when editing the file again.  Only
       works when using Vim to edit the file.
    4. Always set 'tabstop' and 'shiftwidth' to the same value,and
       'noexpandtab'.  This should then work (for initial indents only)
       for any tabstop setting that people use.  It might be nice to have
       tabs after the first non-blank inserted as spaces if you do this
       though.  Otherwise aligned comments will be wrong when 'tabstop' is
       changed.

所以把它放在你的.vimrc文件中一切正常.

set expandtab       "Use softtabstop spaces instead of tab characters for indentation
set shiftwidth=4    "Indent by 4 spaces when using >>,<<,== etc.
set softtabstop=4   "Indent by 4 spaces when pressing <TAB>

set autoindent      "Keep indentation from prevIoUs line
set smartindent     "Automatically inserts indentation in some cases
set cindent         "Like smartindent,but stricter and more customisable

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐