通过VIM选择Python函数的最快方法是什么?

vi4fp9gy  于 2023-04-30  发布在  Python
关注(0)|答案(8)|浏览(190)

没有任何插件是可能的吗?或者编辑python文件的最佳插件是什么?

lnvxswe2

lnvxswe21#

尝试vis以可视化选择和o以跳过边缘

voj3qocg

voj3qocg2#

我做这件事的方式并不特定于函数。它只会选择一个连续的Python代码块:
v]](如果要选择的内容位于光标下方)
v[[,如果它在光标上方。
如果光标位于要选择的代码块的第一行,则只需删除一个方括号。

643ylb08

643ylb083#

有了这个插件https://github.com/bps/vim-textobj-python,你可以选择,删除,更改等:

af: a function
if: inner function
ac: a class
ic: inner class
7cjasjjr

7cjasjjr4#

我通常根据需要使用vip或以上任何一种,不要忘记您可以随时选择up(i.例如,down =))到下一次出现,使用v/match(然后按Enter确认,可能n表示下一次)。对于python,可以查找下一个defreturn(ret通常就足够了)。
这不是一开始最快的,但它是非常通用的,使用它在任何语言和外部编码(md,latex等)。).

e4yzc0pl

e4yzc0pl5#

我想你的意思是视觉上快速选择整个功能。一种方法是使用插件Indent text objectGitHub)。你可以使用vai来选择整个函数,只要你的光标在函数内部,并且只比它低一个缩进级别。
如果你真的想要选择函数而不考虑缩进级别,我建议你阅读this并编写自己的文本对象。我想这会很容易,因为Python有def关键字来定义函数。

3duebb1j

3duebb1j6#

你必须使用omnicompletion for vim7,但它只适用于vim-nox,vim-gtk,vim-gnome或vim-athen
也可以通过this page来使用python配置vim(自动indend,语法高亮和自动完成)

wfauudbj

wfauudbj7#

我尽量避免视觉,因此对于像yank这样的动作,我倾向于转到段落的开头[[,yank直到结尾y]],然后返回^o。它是[[y]]^o^代表控制)。
对于视觉,您可以使用[[v]]或一些变体,如[[v][[[v]m[[v]M

6mw9ycah

6mw9ycah8#

如果你的函数很长或者有很多空行,那么使用v}}...}}d会很慢。
我发现的最快的方法(没有插件)是zc2dd。命令zc关闭光标下的折叠,因此如果您在函数声明或最外缩进级别的任何行,整个函数将折叠。然后2dd(或者3dd,如果你的函数前后有两个空行的话)将删除整个东西。

相关问题