我有一个python包即将发布,所以现在我开始使用vim慢慢地将文档字符串添加到文件中。所以对于像
这样的功能def foo(x, y, z=None, **kwargs):
我必须在一整天内重复手动输入以下内容
""" foo does this stuff.
Parameters
----------
x:
y:
z: optional
kwargs:
Returns
-------
"""
有没有办法通过定义一些vim宏来动态生成这个模板文档字符串(我对此一无所知,所以关于如何启动的建议也会很好)。感谢。
答案 0 :(得分:3)
vim-pydocstring
的作者已经将Numpy风格文档字符串的兼容性添加到了包中,现在这似乎是这个问题的最佳答案。
您可以从here
提取/下载vim插件答案 1 :(得分:2)
重复函数名和参数通常不是什么大问题(插入模式完成有助于此);相反,你需要一个一致的骨架,你只需要在正确的位置插入变量信息。
片段就像类固醇上的内置:abbreviate
一样,通常带有参数插入,镜像和内部多个停止。第一个非常着名(并且仍然广泛使用)的Vim插件之一是snipMate(受 TextMate 编辑器的启发);不幸的是,它不再维持;虽然有a fork。现代替代方案(虽然需要Python)是UltiSnips。还有更多内容,请参阅this list on the Vim Tips Wiki。
有三件事要评估:第一,摘录引擎本身的功能,第二,作者或其他人提供的片段的质量和广度;第三,添加新片段是多么容易。使用一些高级引擎,您甚至可以自己提取函数和参数名称。
答案 2 :(得分:1)
宏只是记录在寄存器中的正常动作,可以毫不拖延地播放。
一种可能的策略是:
def
行播放该宏。看起来像那样:
qq
yyP
(all your text manipulations)
q
:g/def /normal! @q