4
A
回答
4
這裏有替代DJ的映射與hlsearch
發揮出色:
跳轉到下一個非空行
nnoremap <key> :<C-u>call search('^.\+')<CR>
跳轉到以前的非空行
nnoremap <otherkey> :<C-u>call search('^.\+', 'b')<CR>
將視覺選擇延伸到下一個非空l INE
xnoremap <key> :<C-u>k`\|call search('^.\+')\|normal! <C-r>=visualmode()<CR>``o<CR>
可視選擇延伸到先前的非空行
xnoremap <otherkey> :<C-u>k`\|call search('^.\+', 'b')\|normal! <C-r>=visualmode()<CR>``o<CR>
操作以下一個非空行
omap <key> :<C-u>normal! v<key><CR>
操作以先前的非空行
omap <otherkey> :<C-u>normal! v<otherkey><CR>
解釋...
隨着hlsearch
啓用,/anything
將突出每場比賽。由於我們不積極搜索非空行,但僅移動給他們,由此產生的突出顯示是毫無意義的嘈雜。
通過使用:help search()
,我們繞過hlsearch
,從而使映射更少噪音。
<C-u>
用於在調用我們的函數之前去除任何意外範圍。
視覺模式映射的工作原理是這樣的:
- 我們定義的「前一個標記」與
:help :k
, - 我們進行搜索,
- 我們運行下面的普通模式命令與
:help :normal
, - 我們檢索以前的視覺模式
:help i_ctrl-r
,:help "=
,並且:help visualmode()
, - 我們擴展ŧ他通過
:help ''
, - 對「上一個標記」的位置進行視覺選擇,最後我們將光標移動到
:help v_o
的視覺選擇的另一端。
運算符掛起的映射只是重用可視化模式映射。
1
我不確定你想要映射這兩個,所以我只使用{
和}
。這個怎麼樣?
nnoremap } /^\S<cr>
nnoremap { ?^\S<cr>
該解釋非常簡單。
/ " Search forward
^ " For the start of a line
\S " Followed by a non-whitespace character
<cr> " Enter
?
映射是相同的除了向後而不是向前搜索。
當然爲了完整,你需要添加
nnoremap } /^\S<cr>
xnoremap } /^\S<cr>
onoremap } /^\S<cr>
nnoremap { ?^\S<cr>
xnoremap { ?^\S<cr>
onoremap { ?^\S<cr>
這將使作爲參數傳遞給操作者(例如d{
),並在可視化模式下工作。
相關問題
- 1. 移動項目,反之亦然
- 2. 將集合映射到Map並反之亦然使用Mapstruct
- 3. 將域對象映射到ViewModel反之亦然使用Automapper
- 4. 映射部首cookie字符串到CookieCollection反之亦然
- 5. Angular 4 - 將JSON映射到模型,反之亦然
- 6. 從上到下動畫UIview從上到下,反之亦然
- 7. XAML到Html,反之亦然
- 8. PHP到C#反之亦然
- 9. 行到列,反之亦然轉換
- 10. 完成老活動,並開始一個新的,反之亦然
- 11. Excel自動更新一個字段,反之亦然
- 12. 映射幻數,以枚舉值,反之亦然
- 13. 將小值映射爲大型和反之亦然的方法
- 14. .NET - 將/映射列表轉換爲對象,反之亦然
- 15. Vim的:重映射鍵切換行號
- 16. 從行移調動態表列,反之亦然
- 17. 上一個複選框,反之亦然
- 18. 從tm對象移動到koRpus對象,反之亦然
- 19. 如何從左到右移動uiview,反之亦然
- 20. 是選擇之前更新一個好方法,反之亦然?
- 21. Vim重新映射奇怪
- 22. vim重新映射hjkl
- 23. 重新映射「te」到「tabedit」vim
- 24. 如何從上到下過渡活動,反之亦然?
- 25. 重新映射其中一個鍵盤
- 26. 轉換鍵盤AZERTY到QWERTY鍵盤,反之亦然
- 27. Powershell和wmi,如何將邏輯磁盤/卷映射到硬盤,反之亦然?
- 28. 庫跨平臺的MIME類型映射到文件擴展名,反之亦然
- 29. 在Node.js中創建ID到套接字的映射,反之亦然
- 30. VIM NERDTree鍵映射
非常感謝!這些工作完美。 – HaySwim