1
daydreamcafe 2023-10-13 18:48:16 +08:00 1
如果是纯 vim ,可以装这个 plugin
Plug 'michaeljsmith/vim-indent-object' python 的一个 function 或者 class 就是一块缩进 ident ,你想要的场景 vii vai 可以做到 如果是 vscode 中的 vim 插件,这个插件的功能有自带实现 |
2
daydreamcafe 2023-10-13 18:49:21 +08:00
@daydreamcafe typo fix ident -> indent
|
3
churchill 2023-10-13 18:58:56 +08:00
neovim 有 treesitter
|
4
xiaopanzi 2023-10-13 19:23:26 +08:00 1
vim 里面不清楚,但是 nvim 中实现它就很方便,借助插件`nvim-treesitter`。在 select 模式`af`就能选中一个函数;`ac`选中一个类。
|
5
llh880808 2023-10-13 20:32:38 +08:00 1
可以安装 pythonsense 插件,它可以提供针对 function/class/docstring 的 textobj ,
https://github.com/jeetsukumaran/vim-pythonsense |
6
justdoit123 OP 我用的不是纯 vim ,主要在 pycharm 里使用。纯 vim 偶尔在 server 的 cli 里使用。这些 plugin 貌似用不了。
|
7
z1645444 2023-10-13 23:59:34 +08:00 1
选中函数的话,Jetbrains IDEs 都有共通的一个 API 吧,op 既然是在 PyCharm 里面用 Vim keymapping ,那就看看 Extend Selection 功能吧,然后在你的 .ideavimrc 里 map 上吧,机器不在身边没法查看 API 是什么名
|
8
z1645444 2023-10-14 00:03:06 +08:00
|
9
justdoit123 OP @z1645444 感谢,这个多少能满足了我的需求。Pycharm 貌似没有专门 extend selection 到整个函数或者 class 的接口,不知道是不是我搜索得不对,不过直接用 extend selection 也够用。
|
10
yuancoder 2023-10-14 13:28:19 +08:00
michaeljsmith/vim-indent-object 试试这个插件,基于缩进的,很适合 python 这种
|