在 Vim 中对齐行尾注释?
Posted
技术标签:
【中文标题】在 Vim 中对齐行尾注释?【英文标题】:Align End Of Line Comments in Vim? 【发布时间】:2011-11-07 02:19:35 【问题描述】:在 Vim 内部,是否有一个格式化命令可以对齐行尾 cmets 块?
例如在 C++ 中,它会变成这样:
m_varName1; // Comment 1
m_varName1AndABit; // Command 1 and a bit
m_varName2; // Comment 2
m_varName3ButReally2AndABit; // Comment 3 (but really 2 and a bit)
进入这个:
m_varName1; // Comment 1
m_varName1AndABit; // Command 1 and a bit
m_varName2; // Comment 2
m_varName3ButReally2AndABit; // Comment 3 (but really 2 and a bit)
【问题讨论】:
【参考方案1】:使用 Vim 的 Align 插件根据您选择的任何分隔符进行对齐。
【讨论】:
起初我完全赞成,但 Align 有一些副作用 - 其中一个与我现有的键映射冲突。 您可以重新映射键映射。我根本不使用它们。我只是使用:Align <separator>
是的,但我没有使用 Tabularize '开箱即用'的问题,所以它赢了。但这涉及到关于如何设计 vim 插件的问题之外的更大讨论。【参考方案2】:
tabular.vim
插件应该可以做到这一点。直观地选择它们,并将它们与
:Tabularize /\/\/
【讨论】:
其实你不需要视觉选择,除非你想要更精确。 Tabularize 足够聪明,可以检测到一个块。此外,您可能会发现:Tab
更易于使用。
在尝试了 Align 之后,我根据个人喜好选择了 Tabularize。两者都解决了这个问题,但 Tabularize 对我来说似乎是一个更清洁的解决方案。
你如何解释“/\/\/”?
@JihoNoh /\/\/
是评论字符//
的搜索/匹配表达式。 Tabularize 接受 vim 搜索,例如您可以使用 /
命令搜索它并将两个 //
转义为 \/
【参考方案3】:
我今天遇到了类似的问题,我想在某个位置的空白处对齐。刚刚写了一封blog post,讲述了我是如何使用Align 插件做到的。
【讨论】:
以上是关于在 Vim 中对齐行尾注释?的主要内容,如果未能解决你的问题,请参考以下文章