[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