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

学习到了 Vim 中的一个新概念: exclusive 和 inclusive

  •  
  •   jdhao · 91 天前 · 2582 次点击
    这是一个创建于 91 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果你经常使用 dwde,你会发现两者的表现不太一致,另外 db 并不能删除当前光标所在处的字符,很蛋疼,为什么是这样呢?原来和 Vim 中一个动作的 exclusivity 有关。

    认真学习了一下,写了一篇短文: https://jdhao.github.io/2019/05/18/nvim_exclusive_inclusive_motion/

    不知道有多少人不知道的,欢迎讨论。。

    14 回复  |  直到 2019-05-18 21:31:43 +08:00
        1
    vitovan   91 天前 via Android
    学习了,虽然没看太明白,VIM 太难了
        2
    jdhao   91 天前
    @vitovan 哪里没明白。。这个这是一个简单的概念哈~
        3
    carlclone   91 天前 via Android
    通常使用 ciw 删除和修改
        4
    conanforever22   91 天前   ♥ 1
    学习了, 平时用 df{char} / dt{char} , 看 help 发现 f{char}/t{char}都是 inclusive, 加了 v 可以转换为 exclusive
        5
    thedrwu   91 天前 via Android
    手指对着空气比划了一下才想起来 dw 和 de 有什么区别。
    跟形码输入汉字一样,成为了肌肉记忆之后看着字母不知道它要干什么。。
        6
    jdhao   91 天前 via Android
    @conanforever22 自带的 f 只能找一个字符,不精确,我用 vim-sneak 代替,可以找两个字符,精确度大大提升,基本上三个按键跳到眼睛能看到的任何地方
        7
    shaco   91 天前   ♥ 1
    @jdhao #2 为啥我觉得 de 才是 exclusive,dw 才是 inclusive。因为根据这两个单词的意思,exclusive 的意思应该是把最后一个字符排除在外,也就是不删除最后一个字符。而 inclusive 应该是删除最后一个字符
        8
    jdhao   91 天前 via Android   ♥ 1
    @shaco 你还没理解正确,以 de 为例,e 跳到 hello 的 o 处,因为 e 是 inclusive,所以从 h 到 o 的所有字符都被删除了,如果 e 是 exclusive,那么字符 o 不会被删除
        9
    vitovan   91 天前 via Android   ♥ 1
    @shaco
    @jdhao

    我把这个贴到这里,可能会帮助理解:

    ```
    Many commands that text are made from an operator and a motion.
    The format for a follows:

    d motion

    Where:
    d - is the delete operator.
    motion - is what the operator will operate on (listed below).

    A short list of motions:
    w - until the start of the next word, EXCLUDING its first character.
    e - to the end of the current word, INCLUDING the last character.
    $ - to the end of the line, INCLUDING the last character.
    ```
        10
    vitovan   91 天前 via Android
    然后,我想我理解了,谢谢楼主。
        11
    jdhao   91 天前 via Android
    @vitovan 有 vim 的话上手用一下,结合文档,就比较容易明白这个概念
        12
    mrvon   91 天前
    仔细一想, dw, de 两个命令中,w, e 两个 motion 与 d 结合之后,行为不一致了。为了适应使用者的直觉,所以搞了 exclusive 和 inclusive。感谢分享。
        13
    mrcode   91 天前
    一般习惯用 df* 和 dt*
        14
    jciba5n4y6u   91 天前
    dw 经常用,de 没用过。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   863 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 22:53 · PVG 06:53 · LAX 15:53 · JFK 18:53
    ♥ Do have faith in what you're doing.