我知道Vim有“[[”和“]]”在功能之间移动的快捷方式。但是,我如何才能为C语言添加此功能,而不是为Pascal语法添加此功能?
答案 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)