通常,例如當我編寫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