gpt4 book ai didi

"change inside next occurance of ..."的 Vim 命令

转载 作者:行者123 更新时间:2023-12-05 04:13:32 25 4
gpt4 key购买 nike

我敢肯定你们中的很多人都输入了 ci(ci" 只是为了让它失败,因为你目前不在括号或引号内。

是否有 ci 命令的变体会在下一次出现的文本对象中发生变化,而不是在当前出现的文本对象中发生变化?我想有点像 f( 后跟 ci( 的快捷方式,或者这只是最有效的做事方式?

最佳答案

没有内置的方法来执行此操作。但是,您可以使用一些 vimscript 来做到这一点。

onoremap an :<c-u>call <SID>NextTextObject('a')<cr>
xnoremap an :<c-u>call <SID>NextTextObject('a')<cr>
onoremap in :<c-u>call <SID>NextTextObject('i')<cr>
xnoremap in :<c-u>call <SID>NextTextObject('i')<cr>

function! s:NextTextObject(motion)
echo
let c = nr2char(getchar())
exe "normal! f".c."v".a:motion.c
endfunction

以下是您将如何使用它:

(bar) (foo) (baz)
^

键入 din(。这是你的文本在之后的样子:

(bar) (foo) ()

将此视为删除内部下一个 ()。这非常有用!

关于 "change inside next occurance of ..."的 Vim 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37356331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com