【问题标题】:vim ident: don't remove tabs indent when closing }vim ident:关闭时不要删除标签缩进 }
【发布时间】:2013-05-18 08:35:15
【问题描述】:

当我在 vim 中打开 cindent 或 vim-javascript 时:

if(bla){
    #

(# 显示光标)

我输入一个新行:

if(bla){

    #

然后关闭}

if(bla){

}

问题是,现在我回到上一行

if(bla){
#
}

# 之后不再有缩进!现在您可能认为这并不烦人,但是当我处理具有多级制表符缩进的文件时,由于我的编码方式,它会破坏我的工作效率。有什么方法可以关闭 } 而不是破坏行前的制表符缩进?

【问题讨论】:

    标签: vim


    【解决方案1】:

    标签没有被删除,因为您关闭了{},它被删除了,因为您没有在该行输入任何文本。

    几年来,我在~/.vimrc 中使用了以下映射的许多变体来“修复”该问题(等待更清洁的解决方案):

    inoremap {<CR> {<CR>}<C-o>==<C-o>O
    inoremap {; {<CR>};<C-o>==<C-o>O
    

    两者都做同样的事情:它们关闭{} 并将光标放在它所属的位置。有很多自动关闭插件提供该功能,但从长远来看,我发现它们太烦人了。

    【讨论】:

    • 即使在一行中没有输入任何文字,我也想保持标签怎么办?这是我的另一个习惯..
    【解决方案2】:

    你用什么来移动到空白行?方向键(有些人认为这是个坏习惯)?也许在你写完上面的东西之前你不需要放入右括号?您也可以不离开空行,点击右大括号,然后键入 &lt;esc&gt;O 在上方打开。或者,如果您出于某种原因想保留空白行,只需使用 S 重置缩进即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 2011-08-31
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      相关资源
      最近更新 更多