7
A
回答
6
你必須要麼使用和searchpair(),或用%玩(只要安裝matchit,和你在開始/結束)然後標記這兩個位置,測試它是文本還是括號,最後更新這兩行。
nnoremap <buffer> <c-x>{ :call <sid>ToggleBeginOrBracket()<cr>
let s:k_be = [ 'begin', 'end' ]
function! s:ToggleBeginOrBracket()
let c = lh#position#char_at_mark('.')
if c =~ '[{}]'
" don't use matchit for {,}
exe 'normal! %s'.s:k_be[1-(c=='}')]."\<esc>``s".s:k_be[(c=='}')]."\<esc>"
else
let w = expand('<cword>')
if w == 'begin'
" use mathit
normal %
exe "normal! ciw}\<esc>``ciw{\<esc>"
elseif w == 'end'
" use mathit
normal %
exe "normal! ciw{\<esc>``ciw}\<esc>"
else
throw 'Cannot toggle block: cursor is not on {, }, begin, nor end'
endif
endif
endfunction
凡lh#position#char_at_mark()
定義here。 PS:由於它結合了ruby上下文和先進的vim腳本,因此這絕對是一個SO問題。
3
看看這個新的插件:https://github.com/jgdavey/vim-blockle。
30個字符墊
0
有一個splitjoin.vim插件,這是否很好(GJ/GS映射分割/結合)。
相關問題
- 1. 有沒有簡單的方法來切換項目和它的DLL
- 2. 有沒有簡單的方法來交換,其中值列表
- 3. Vim:有沒有命令切換窗口
- 4. VIM:有沒有一種簡單的方法來管理Vim中的Visual Studio解決方案/ makefile項目?
- 5. 有沒有簡單的方法將數字轉換爲PHP中的單詞?
- 6. 在vb2005中有沒有簡單的將MP3轉換爲WAV的方法?
- 7. 有沒有簡單的方法來在java中播放rtmp流?
- 8. 在Python中,有沒有簡單的方法來編輯xml?
- 9. 有沒有簡單的方法來獲取li:gt(-1)在jquery中?
- 10. 有沒有一種簡單的方法在JavaScript中將文本轉換爲HTML?
- 11. 在Vim中交換兩個字符串的最簡單方法?
- 12. 有沒有簡單的方法將C#類轉換爲PHP?
- 13. 有沒有簡單的方法將值轉換爲字符串?
- 14. 有沒有簡單的方法將標準轉換爲HQL?
- 15. 在Vim中查找和替換有更好的方法嗎?
- 16. 有沒有更簡單的方法來解析Java中的Android?
- 17. JavaScript中的30個數組有沒有簡單的方法?
- 18. 有沒有簡單的方法來加載listmodel中的泛型?
- 19. 有沒有簡單的方法來改變django中的路徑?
- 20. 在Java中切換布爾變量的最簡單方法?
- 21. 在PyGTK中使用F11切換全屏的簡單方法
- 22. WiX:在Visual Studio中真的沒有簡單的方法嗎?
- 23. 爲什麼Ruby中沒有繼承這個簡單的測試類的方法?
- 24. 有沒有簡單的方法來使用jQuery和Simile Timeplots?
- 25. 有沒有簡單的方法在spring-restdocs中創建單獨的片段?
- 26. 有沒有簡單的方法來動畫ScrollableControl.ScrollControlIntoView方法?
- 27. 有沒有在Silverlight中的控件中進行簡單驗證的方法
- 28. 有沒有簡單的方法來驗證和解碼React Native中的JWT?
- 29. 有沒有簡單的方法在Eclipse中導入黑白色配色方案
- 30. 沒有類的Ruby方法?
是的,沒有理由爲複雜的解決方案。只需使用matchit.vim。 :) – graywh 2010-07-14 21:32:26
Matchit沒有解決OP的請求。 (即使沒有vim參與,它仍然涉及開發工具的調整,用於開發目的) – 2010-07-15 18:12:24