在功能之间跳跃(pascal)

时间:2012-12-21 11:55:32

标签: vim

我知道Vim有“[[”和“]]”在功能之间移动的快捷方式。但是,我如何才能为C语言添加此功能,而不是为Pascal语法添加此功能?

1 个答案:

答案 0 :(得分:1)

某些文件类型重新定义内置]]映射以跳转到下一个函数的开头。例如,看看$VIMRUNTIME/ftplugin/vim.vim

" Move around functions.
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
vetlocal foldmethod< foldtext< foldexpr< | delcommand FoldToggle oremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>

您可以在begin中定义类似的映射(例如end / ~/.vim/after/ftplugin/pascal.vim个关键字)。


如果您想要一个舒适的插件,可以轻松设置这些映射,支持[count],并提供文本对象来选择整个功能,请查看我的CountJump plugin。 有一个关于Pascal帮助的例子:

:call CountJump#Motion#MakeBracketMotion('<buffer>', '', '', '\c^begin\n\zs', '\c^.*\nend', 0)