我希望能够使用“=”对齐赋值语句,例如以下使用vim:
var1 = a1[a1 >= 20]
variable2 = array2[array2 >= 20]
var_5 = arr3[arr3 != 10]
问题是vim的Align命令将使用用于赋值语句的“=”和等于语句的那个。然后我得到:
var1 = a1[a1 > = 20]
variable2 = array2[array2 > = 20]
var_5 = arr3[arr3 ! = 10]
这是有问题的,因为它不会增加可读性,而是破坏它,并且因为它破坏了逻辑运算符。
我尝试使用命令
:AlignCtrl \<=\>
但这没有帮助。
感谢
答案 0 :(得分:3)
我不确定您使用的是哪个对齐脚本,并且您没有指定,但它可能支持正则表达式并且您的想法很接近。但是,您的单词边界正则表达式不是正确的选项,因为>
确实计为单词边界(它实际上取决于您的'iskeyword'
选项)。您可以尝试在空格前面的等号中对齐:
:AlignCtrl \s=
或者,如果此情况下的空格包含在对齐字段中,并且您要删除它,请使用:
:AlignCtrl \s\zs=
答案 1 :(得分:2)
您可以使用插件vim-easy-align。它允许您仅指定第一次出现用于对齐的分隔符。
答案 2 :(得分:2)
当谈到vim中的对齐时,我使用Tabular Plugin。请参阅表格上的Drew Neal精彩的截屏视频:http://vimcasts.org/episodes/aligning-text-with-tabular-vim/
基本上,表格将与正则表达式匹配的文本对齐,例如
:Tabular /[<>=!]\+
输入
var1 = a1[a1 >= 20]
variable2 = array2[array2 >= 20]
var_5 = arr3[arr3 != 10]
输出
var1 = a1[a1 >= 20]
variable2 = array2[array2 >= 20]
var_5 = arr3[arr3 != 10]
正则表达式中的方括号表示字符类,即一组将匹配的单个字符。正则表达式[<>=!]\+
表示&#34;匹配一个或多个字符<
,>
,=
或!
&#34;。因为]
字符标记了字符类的结尾,所以必须在开头[
之后直接放置,以使其含义明确:
:Tabular /[][<>=!]\+
也将括号括起来:
var1 = a1 [ a1 >= 20 ]
variable2 = array2 [ array2 >= 20 ]
var_5 = arr3 [ arr3 != 10 ]