交换两个减法值

时间:2015-03-23 14:51:38

标签: vim vi

我经常在Vim做的事情需要去做。我会做一个减法

var a = b - c;

运行它并意识到它应该是

var a = c - b;

在vim中围绕减号旋转两个值的最有效方法是什么?

3 个答案:

答案 0 :(得分:1)

找到它(有点)

noremap <F2> :s/\([^ -]*\)\([ ]*\)-[ ]*\([^;]*\);/\3 - \1;/<CR>:nohl<CR>

被盗

http://vim.wikia.com/wiki/Swap_LHS_and_RHS_of_an_Assignment_statement

继续前进,没有什么可看的。

答案 1 :(得分:1)

您可以尝试SwapText plugin

当与基于替换命令(:s//)的解决方案进行比较时,它具有适用于任何类型的文本交换的优点,不仅适用于数学表达式,而且它可以应用于跨越多个的表达式线。它也可以纠正任何值,即它不限于表达式的第一个减号。

在您的示例中,您可以使用任何常规命令删除b,例如dwx,然后移过c并输入<leader>(其中通常为\),后跟x和动作(例如:lw)。

答案 2 :(得分:1)

这是一个关于这个主题的精彩Vimcasts集:Swapping two regions of text with exchange.vim。截屏报道讨论了如何使用Tom McDonald的exchange.vim来选择要交换的两个区域。

您的示例将通过以下方式完成:

fbcxlfccxl

Exchange.vim使用cx{motion}标记要交换的文本。在上面的示例中,使用动作l来同时选择bc。然而,您可以使用适合需要的任何动作。您也可以使用视觉选择。