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

if(aa || bb && cc)中的 boolean 表达式,假如要删除 aa 或 bb 或 cc 你们怎么操作

  •  
  •   zhanggang807 · 2022-10-05 03:46:01 +08:00 · 1724 次点击
    这是一个创建于 561 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有 argtextobj 插件可以方便操作方法参数
    但是这种表达式怎么删除?
    要用 vim-textobj-user 插件自己定义 textobject 吗?
    9 条回复    2022-10-06 10:13:16 +08:00
    optional
        1
    optional  
       2022-10-05 09:57:23 +08:00
    这样的代码 CR 能过? 一眼看不出逻辑的 PR 直接 Reject
    zhanggang807
        2
    zhanggang807  
    OP
       2022-10-05 15:51:54 +08:00
    @optional 你是机器人吗?
    zhanggang807
        3
    zhanggang807  
    OP
       2022-10-05 15:57:03 +08:00
    目的很简单,除了用 v 选中之后再操作之外
    删除整个表达式比较简单,dib 或者 di(
    有没有更方便的方法删除其中某一部分?
    删除 aa
    删除 aa ||
    删除 bb
    删除 || bb
    删除 bb &&
    删除 cc
    删除 && cc
    jdhao
        4
    jdhao  
       2022-10-05 16:24:06 +08:00 via Android
    aa bb cc 具体是什么样的,如果没有括号之类,没有现成的 text object 可用
    zhanggang807
        5
    zhanggang807  
    OP
       2022-10-05 16:32:53 +08:00
    @jdhao aa,bb,cc 具体可以是 boolean 变量 /常量,boolean 表达式,返回 boolean 的方法等
    zhanggang807
        6
    zhanggang807  
    OP
       2022-10-05 16:34:32 +08:00
    @jdhao 就是想要一个 if(以|| &&分割的 text object)
    没有现成的 那只能自己定义了吧??
    zhanggang807
        7
    zhanggang807  
    OP
       2022-10-05 16:37:34 +08:00
    jdhao
        8
    jdhao  
       2022-10-05 16:43:00 +08:00 via Android
    @zhanggang807 yes, 自己定义吧,没有现成的,因为你这个结构不太规则。
    daveh
        9
    daveh  
       2022-10-06 10:13:16 +08:00
    JetBrains 全系可以用 Extend Selection 这个功能来实现,将光标放到 || 或者 && 上,连续按 Extend Selection 快捷键,来选择条件的代码片段,再删除就行。
    而且 JB 系的这个 Extend Selection 是理解语义的,就是说能识别 && 与 || 优先级不一样,例如 if(aa || bb && cc && dd) ,光标放第 1 个 && 上,先选择中 bb && cc ,再扩展到 bb && cc && dd ,而不是扩展为 aa || bb && cc 。

    vim 也可以参考一下,看有没有类似理解语义的 Extend Selection 功能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3892 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:06 · PVG 13:06 · LAX 22:06 · JFK 01:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.