我经常在Vim做的事情需要去做。我会做一个减法
var a = b - c;
运行它并意识到它应该是
var a = c - b;
在vim中围绕减号旋转两个值的最有效方法是什么?
答案 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
,例如dw
或x
,然后移过c
并输入<leader>
(其中通常为\
),后跟x
和动作(例如:l
或w
)。
答案 2 :(得分:1)
这是一个关于这个主题的精彩Vimcasts集:Swapping two regions of text with exchange.vim。截屏报道讨论了如何使用Tom McDonald的exchange.vim来选择要交换的两个区域。
您的示例将通过以下方式完成:
fbcxlfccxl
Exchange.vim使用cx{motion}
标记要交换的文本。在上面的示例中,使用动作l
来同时选择b
和c
。然而,您可以使用适合需要的任何动作。您也可以使用视觉选择。