4

我知道 Vim 有 "[[" 和 "]]" 在函数之间移动的快捷方式。但是,我怎样才能不仅为 C 语言而且为 Pascal 语法添加这个功能呢?

4

1 回答 1

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 插件。在它的帮助中甚至还有一个关于 Pascal 的例子:

:call CountJump#Motion#MakeBracketMotion('<buffer>', '', '', '\c^begin\n\zs', '\c^.*\nend', 0)
于 2012-12-21T12:16:54.890 回答