VIM & Python - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
justdoit123
V2EX    Vim

VIM & Python

  •  
  •   justdoit123 2023-10-13 18:36:57 +08:00 2365 次点击
    这是一个创建于 731 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在用 vim 写花括号语言的时候,光标在函数体内,可以在 normal mode 里`vi{` 或者 `va{`来选中整个函数体。当然,这里只是举例,不限于函数体。

    但是到了 python 里,我很好奇各位都是怎么快速选择一个函数体的?或者快速选择整个 class ?
    10 条回复    2023-10-14 13:28:19 +08:00
    daydreamcafe
        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 插件,这个插件的功能有自带实现
    daydreamcafe
        2
    daydreamcafe  
       2023-10-13 18:49:21 +08:00
    @daydreamcafe typo fix ident -> indent
    churchill
        3
    churchill  
       2023-10-13 18:58:56 +08:00
    neovim 有 treesitter
    xiaopanzi
        4
    xiaopanzi  
       2023-10-13 19:23:26 +08:00   1
    vim 里面不清楚,但是 nvim 中实现它就很方便,借助插件`nvim-treesitter`。在 select 模式`af`就能选中一个函数;`ac`选中一个类。
    llh880808
        5
    llh880808  
       2023-10-13 20:32:38 +08:00   1
    可以安装 pythonsense 插件,它可以提供针对 function/class/docstring 的 textobj ,

    https://github.com/jeetsukumaran/vim-pythonsense
    justdoit123
        6
    justdoit123  
    OP
       2023-10-13 21:10:52 +08:00
    我用的不是纯 vim ,主要在 pycharm 里使用。纯 vim 偶尔在 server 的 cli 里使用。这些 plugin 貌似用不了。
    z1645444
    7
    z1645444  
       2023-10-13 23:59:34 +08:00   1
    选中函数的话,Jetbrains IDEs 都有共通的一个 API 吧,op 既然是在 PyCharm 里面用 Vim keymapping ,那就看看 Extend Selection 功能吧,然后在你的 .ideavimrc 里 map 上吧,机器不在身边没法查看 API 是什么名
    z1645444
        8
    z1645444  
       2023-10-14 00:03:06 +08:00
    justdoit123
        9
    justdoit123  
    OP
       2023-10-14 10:30:53 +08:00
    @z1645444 感谢,这个多少能满足了我的需求。Pycharm 貌似没有专门 extend selection 到整个函数或者 class 的接口,不知道是不是我搜索得不对,不过直接用 extend selection 也够用。
    yuancoder
        10
    yuancoder  
       2023-10-14 13:28:19 +08:00
    michaeljsmith/vim-indent-object 试试这个插件,基于缩进的,很适合 python 这种
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2754 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 15:12 PVG 23:12 LAX 08:12 JFK 11:12
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86