[vim ] 如何合并两个指令(针对selection range)

楼主: hank821017 (我养了一只咩)   2020-05-05 23:36:15
最近在使用Vim-Easy-Align这个Plugin
用途是先用Visual Mode选出一个range
然后按gd<char>,就可以在range内针对该<char>做对齐
但现在现在遇到一个问题,我想把以下的code:
test(test)
helloworld(helloworld)
yo(yo)
变成
test (test )
helloworld(helloworld)
yo (yo )
在原本的模式下,我要做以下四个步骤
1. 选取这三行
2. gd( 对齐左括号
3. 再次选取这三行
4. gd) 对齐右括号
我想问的问题是,vim有没有办法透过定义一些类似alias的东西
让我能把上面四步骤变成两步骤
1. 选取这三行
2. <some_alias_command> = "gd(" + "gd)"
在网络上找了很久,但不知道要用什么关键字
作者: flu (Crazy Rhythm)   2020-05-06 03:18:00
2用 :exec "'<,'>normal gd(" |exec "'<,'>normal gd)" 试试?
作者: dododavid006 (朔雪)   2020-05-06 09:39:00
单次方便用的话用 q<某字母> 录成 macro 然后用@<刚刚的字母> 播放就行了吧 如果是固定要用的就用noremap 设定成一个按键 然后再次选取的动作可以用gv 来选取上次选取的范围对了 q<某字母> 是开始录制 macro 要停再按一次 q
楼主: hank821017 (我养了一只咩)   2020-05-06 12:02:00
成功了!用map的方式把ga(gvga)绑起来即可,感谢楼上两位让我学到新东西!阿,另外之前内文有误,是ga不是gd

Links booklink

Contact Us: admin [ a t ] ucptt.com