通常,例如当我编写Latex代码时,我遇到了重新排列由逗号分隔的列表项的任务。如果两个项目都不在列表的开始或结束处,这可以很快完成。但是,如果他们处于边缘,则必须格外小心分隔逗号。用逗号分隔列表交换项目
例如,考虑
\cite{GirR84, Tar00, Tem77}.
有vim的一种智能的方式说,例如,在最后一个项目的前面或中间位置?
通常,例如当我编写Latex代码时,我遇到了重新排列由逗号分隔的列表项的任务。如果两个项目都不在列表的开始或结束处,这可以很快完成。但是,如果他们处于边缘,则必须格外小心分隔逗号。用逗号分隔列表交换项目
例如,考虑
\cite{GirR84, Tar00, Tem77}.
有vim的一种智能的方式说,例如,在最后一个项目的前面或中间位置?
我在.vimrc
以下映射,我觉得我有他们this tip on wikia:
nnoremap <silent> gl "_yiw:s/\(\%#\w\+\)\(\_W\+\)\(\w\+\)/\3\2\1/<CR><c-o>/\w\+\_W\+<CR><c-l>
nnoremap <silent> gh "_yiw?\w\+\_W\+\%#<CR>:s/\(\%#\w\+\)\(\_W\+\)\(\w\+\)/\3\2\1/<CR><c-o><c-l>
gh
将交换光标左边和gl
向右下的单词。
从Vim Tips Wiki交换任意事物的另一种有趣的方式:
:vnoremap <C-X> <Esc>`.``gvP``P
我现在正在使用它,它运作良好。任何人都可以解释使用的命令吗? – ziggystar
我曾作过一个插件来对付所谓argumentative.vim类似的情况。 (很抱歉的插头。)
Argumentative.vim提供以下映射:
[,
和],
运动,这将去到前一个或下一个参数<,
和>,
到移位参数向左或righti,
and a,
参数文本对象。例如da,
,ci,
或yi,
所以用这个插件,你移动到有问题的论证,然后根据需要做<,
或>,
多次。它也可以计算例如2>,
。
如果您有Tim Pope的优秀repeat.vim插件安装<,
和>,
变得可重复使用.
命令。
你可以试试vim插件vim-swap,功能相当强大!
说有一行'\ foo {1,2,3,4,5,6,7,8}'你想干什么?按什么样的关键?或通过命令?像Swap(8,3)获得1,2,8,4,5,6,7,3? – Kent
可能不太具体。就像移动光标到一个项目,剪切它,移动到一个不同的项目,并在之前或之后粘贴... – Jan