就是前置數字
功能就是
用前置數字來代表要括幾個單字
無前置就是游標所在的單字
然後就查到 v:count
所以~map就可以這樣寫
nnoremap <silent> <Plug>SurroundNadd :<C-u>execute 'call ' \v:count? '<SID>surroundNadd(v:count)' : '<SID>surroundNadd(1)'<CR> nmap <M-s> <Plug>SurroundNadd
解釋一下:(可以去連結看我程式碼)
1. surroundNadd(num) 的 num 代表要括幾個單字
所以當我按 3<M-s>" 的時候它就會往後用 " 括三個單字
2. v:count? '<SID>surroundNadd(v:count)' : '<SID>surroundNadd(1)'
如果沒按前置就傳1給函式代表要括一個單字,否則沒按前置v:count預設是0
然後!!!!然後!!!!
我發現 v:count 下面有一個 v:count1 !!!!
完全可以理解為啥會出現這個QuQ
這個 v:count1 主要功能跟 v:count 相同
唯一不同就是沒按前置時 v:count1 預設是1
這樣我只要改成這樣
nnoremap <silent> <Plug>SurroundNadd :<C-u>call <SID>surroundNadd(v:count)<CR> nmap <M-s> <Plug>SurroundNadd一整個超簡潔~~
參考資料:
Invoke a function with a count prefix
還有上面有給的documentation連結
沒有留言:
張貼留言