[vim ] 如何合併兩個指令(針對selection range)

看板Editor (編輯器(vim/emacs))作者 (我養了一隻咩)時間4年前 (2020/05/05 23:36), 編輯推噓0(009)
留言9則, 3人參與, 4年前最新討論串1/1
最近在使用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

05/06 03:18, 4年前 , 1F
2用 :exec "'<,'>normal gd(" |exec "'<,'>normal gd)" 試試?
05/06 03:18, 1F

05/06 09:39, 4年前 , 2F
單次方便用的話用 q<某字母> 錄成 macro 然後用
05/06 09:39, 2F

05/06 09:39, 4年前 , 3F
@<剛剛的字母> 播放就行了吧 如果是固定要用的就用
05/06 09:39, 3F

05/06 09:40, 4年前 , 4F
noremap 設定成一個按鍵 然後再次選取的動作可以用
05/06 09:40, 4F

05/06 09:40, 4年前 , 5F
gv 來選取上次選取的範圍
05/06 09:40, 5F

05/06 09:42, 4年前 , 6F
對了 q<某字母> 是開始錄製 macro 要停再按一次 q
05/06 09:42, 6F

05/06 12:02, 4年前 , 7F
成功了!用map的方式把ga(gvga)綁起來即可,感謝樓上
05/06 12:02, 7F

05/06 12:02, 4年前 , 8F
兩位讓我學到新東西!
05/06 12:02, 8F

05/06 12:03, 4年前 , 9F
阿,另外之前內文有誤,是ga不是gd
05/06 12:03, 9F
文章代碼(AID): #1UiOVpW0 (Editor)
文章代碼(AID): #1UiOVpW0 (Editor)