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