gpt4 book ai didi

vim fu,交换方法调用的参数

转载 作者:行者123 更新时间:2023-12-01 22:54:37 25 4
gpt4 key购买 nike

在 Vim 中交换方法调用的两个参数的最有效方法是什么?

例如我要更改:

call "hello mister 123", 2343

至:

call 2343, "hello mister 123" 

(假设光标位于行首。)

理想情况下,这个技巧适用于诸如

之类的东西
call "hello, world" , "goodbye, world"

最佳答案

这个正则表达式将为您的示例执行此操作:

:s/\vcall ("[^"]+"|[^,]+)\s*,\s*("[^"]+"|[^,]+)/call \2, \1/

如果您在参数之一中转义了引号和此类内容,则此正则表达式将需要变得越来越令人讨厌。

实际上,我只需突出显示一个参数(在可视模式下),点击 d,突出显示另一个参数,然后点击 p; Vim 会很好地粘贴寄存器中的内容,覆盖您突出显示的内容,并将删除的文本交换到寄存器中。然后移动光标并再次点击p。高亮、d、高亮、p、移动光标、p是常见的组合,至少在我的 vimming 中是这样。

因此,将光标置于行首,第一个示例:

wva"dlvawpF,P

含义移过单词“call”(w),突出显示带引号的字符串(va"),删除它(d) ,向右移动一个空格 (l),突出显示单词 (vaw),粘贴 (p),向后移动到逗号 ( F,),粘贴在其前面 (P)。

第二个例子:

wva"dlva"p_f,P

一旦您习惯了移动命令,这并不难。

关于vim fu,交换方法调用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1270278/

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