Vim为函数添加参数的快捷方式
时间:2020-03-06 14:22:42 来源:igfitidea点击:
有一个Vim快捷方式可以跳转到当前函数的参数列表吗?我经常发现自己需要弄乱一个函数的参数列表,不得不烦恼吗?def或者?function或者10k或者尚有什么,直到我终于找到它为止,然后是(或者5e到达参数列表中的正确位置,依此类推。例如,我可以直接按一下-a并在参数列表的末尾/开始处立即进入插入模式,那将是很棒的。
可能的方法:
- 折叠式的
- 标签支持(ctags)
另外,我使用的是Python,因此不幸的是,基于花括号的解决方案将不起作用。
如果不存在这样的快捷方式,我将只写一个并将其发布在此处作为答案。 :-)
解决方案
地图[ma [{F(a
点击,a进入参数列表,然后点击" a"返回调用时的位置。警告:[{跳回到最后一个不匹配的{字符,因此,如果我们处于循环或者其他控制结构内,它将带我们回到其开头。
我不知道以一种简单的方法来开始该函数的方法。如果我们对标签一致,则可以执行以下操作:
地图,功能:nohlf(a
在这里,如果在定义函数之前不使用单个选项卡,则将更改为适当的值。
免责声明,我不了解Python,我假设可以从问题中使用"函数"或者" def"来标识Python函数。只需更改正则表达式即可。
可能是这样的:
:nnoremap <buffer> [m :call search('def\|function', 'b')<cr>f(
?
注意:
- 我使用了search(),以免弄乱搜索历史; searchpair()可能是一个更好的选择,因为它只会跳转到我们所在函数的定义,而不是先前的函数。
- 由于这仅适用于Python,因此我使用<buffer>来避免弄乱非Python文件中的键绑定。最好在python ftplugin中定义此映射。
HTH,
开始使用功能的简单方法是使用[[。所以你用
地图[ma [[kf(a
因此它可以带我们到函数定义,搜索"("的第一个匹配项,然后将我们置于插入模式。