例如,如果我有一些代码,如:
foo = bar("abc", "def", true, callback);
是否有一个很好的命令可以将 true 移动到第 1 个或第 2 个位置而保持逗号完好无损?
P.S 作为奖励,我的 friend 想知道这是否也适用于 Emacs。
最佳答案
在 Vim 中,如果将光标放在第一个单词的开头并执行 dWWP
那么就会有想要的效果。这是一个分割:
dW delete the current word, including the comma and the following whitespace
W move to the start of the next word
P insert the deleted text before the cursor
如果在要交换的对之后还有更多参数,这将起作用 - 如果只有两个参数或您想交换最后两个参数,则需要修改它,因为它将在右括号后粘贴文本。
或者,您可以使用正则表达式替换:
:%s/(\([^,]\+\),\s*\([^,)]\+\)/(\2, \1/
这将找到左括号后的前两个参数并交换它们。
更新 :
搜索 vim.org 找到了 swap parameters插件,它应该完全符合您的要求,并且可以处理上述任何一种方法都无法处理的情况。
关于vim - 是否有一个好的 Vi(m) 命令用于在函数调用中转置参数? Emacs 的奖励积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3490897/