作者hank821017 (我养了一只咩)
看板Editor
标题[vim ] 如何合并两个指令(针对selection range)
时间Tue May 5 23:36:15 2020
最近在使用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)"
在网路上找了很久,但不知道要用什麽关键字
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.193.248 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Editor/M.1588692979.A.800.html
1F:→ flu: 2用 :exec "'<,'>normal gd(" |exec "'<,'>normal gd)" 试试? 05/06 03:18
2F:→ dododavid006: 单次方便用的话用 q<某字母> 录成 macro 然後用 05/06 09:39
3F:→ dododavid006: @<刚刚的字母> 播放就行了吧 如果是固定要用的就用 05/06 09:39
4F:→ dododavid006: noremap 设定成一个按键 然後再次选取的动作可以用 05/06 09:40
5F:→ dododavid006: gv 来选取上次选取的范围 05/06 09:40
6F:→ dododavid006: 对了 q<某字母> 是开始录制 macro 要停再按一次 q 05/06 09:42
7F:→ hank821017: 成功了!用map的方式把ga(gvga)绑起来即可,感谢楼上 05/06 12:02
8F:→ hank821017: 两位让我学到新东西! 05/06 12:02
9F:→ hank821017: 阿,另外之前内文有误,是ga不是gd 05/06 12:03