作者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://www.ptt.cc/bbs/Editor/M.1588692979.A.800.html
→ flu: 2用 :exec "'<,'>normal gd(" |exec "'<,'>normal gd)" 試試? 05/06 03:18
→ dododavid006: 單次方便用的話用 q<某字母> 錄成 macro 然後用 05/06 09:39
→ dododavid006: @<剛剛的字母> 播放就行了吧 如果是固定要用的就用 05/06 09:39
→ dododavid006: noremap 設定成一個按鍵 然後再次選取的動作可以用 05/06 09:40
→ dododavid006: gv 來選取上次選取的範圍 05/06 09:40
→ dododavid006: 對了 q<某字母> 是開始錄製 macro 要停再按一次 q 05/06 09:42
→ hank821017: 成功了!用map的方式把ga(gvga)綁起來即可,感謝樓上 05/06 12:02
→ hank821017: 兩位讓我學到新東西! 05/06 12:02
→ hank821017: 阿,另外之前內文有誤,是ga不是gd 05/06 12:03