当前位置:  开发笔记 > 编程语言 > 正文

缩进注释以匹配vim中的代码

如何解决《缩进注释以匹配vim中的代码》经验,为你挑选了4个好方法。

我在vim中完成所有编码并且对它非常满意(所以,请不要"使用不同的编辑器"响应),但是因为smartindent功能想要不缩进以#开头的注释而持续烦恼.例如,我想要

  # Do something
  $x = $x + 1;
  if ($y) {
    # Do something else
    $y = $y + $z;
  }

而不是vim的首选

# Do something
  $x = $x + 1;
  if ($y) {
# Do something else
    $y = $y + $z;
  }

我能够阻止评论被发送到线路开头的唯一方法是在点击#之前插入和删除线路上的字符(每次都要记住要做的麻烦)或完全关闭smartindent (当我打开/关闭括号时,失去自动缩进增加/减少).

如何设置vim来维护我的注释缩进而不是将它们发送到行的开头?



1> Richard Wait..:

看起来你在Perl编码.确保在.vimrc中设置以下内容:

filetype plugin indent on
syntax enable

这些将告诉Vim在打开缓冲区时设置文件类型并配置缩进和语法突出显示.无需显式设置smartindent,因为Vim包含的Perl语法文件将自动设置它(以及任何其他Perl特定的自定义).


注意:具有或者set smartindent和/或set autoindent~/.vimrc可以防止溶液工作.如果您遇到问题,请寻找他们.


似乎有'smartindent`设置覆盖了这一点.所以从vimrc中删除它也有帮助.
这根本没有用!在工作的Windows计算机上我仍然坚持这个缩进问题.(我想念gg = G)
奇怪......我没想到这会做任何事情,因为我已经得到了正确的语法高亮,但这确实也得到了正确处理的评论.假设默认情况下没有加载缩进插件,那么?
还需要`设置noautoindent`.如果设置了`smartindent`或`autoindent`,它们将覆盖文件类型设置.

2> Russell Silv..:

如果您使用的是"smartindent"缩进选项,则可以在":help smartindent"VIM文档中解释您的问题的修复:

    When typing '#' as the first character in a new line, the indent for
    that line is removed, the '#' is put in the first column.  The indent
    is restored for the next line.  If you don't want this, use this
    mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
    When using the ">>" command, lines starting with '#' are not shifted
    right.

我使用"smartindent"并且可以确认所描述的修复对我有用.它通过键入"X"替换键入"#"来欺骗VIM,然后按下退格键,然后再次键入"#".您可以自己手动尝试,看看它不会触发自动缩小.



3> Ben Hoffstei..:

将以下内容放在_vimrc文件中可以解决此问题.

set cindent
set cinkeys=0{,0},!^F,o,O,e " default is: 0{,0},0),:,0#,!^F,o,O,e

更多信息 ......


我会留下我的答案,以防有人碰巧使用不支持文件类型插件的旧版Vim,但我建议尽可能使用Richard Waite的解决方案.

4> Paul Tomblin..:

我认为"smartindent"是为C设计的,因此它认为"#"是预处理器指令的开始而不是注释.我不知道它的解决方案,除非你键入一个空格,然后是退格键,然后"#"就不会这样做.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有