(注意:我的第一篇文章)
在Vim文件中,如何在一个移动中交换第15行和第33行(例如)?
答案 0 :(得分:8)
最快的方法是移动线路:
:33m 15|15m 33
将第33行移到第15行下方,然后将第15行移到第33行以下。
最好首先将'高数字低于低数字',否则你必须调整偏移量:
:15m 33|32m 14
答案 1 :(得分:4)
我能想到的两种方式。使用Vim可能还有更多!
:33 | delete | 15 | put | 15 | delete | 32 | put
...或...
13ggdd15ggPjdd33ggP
...写下来的键击次数较少,但写下来时可以理解得少一些!
答案 2 :(得分:3)
如果我在文件中,我发现这个命令是最快的方法:
:15mo33
答案 3 :(得分:1)
我经常使用以下内容:
" Tip #470 : Piet Delport & Anthony (ad_scriven)
vnoremap <silent> g" <esc>:call <sid>SwapVisualWithCut()<cr>
function! s:SwapVisualWithCut()
normal! `.``
if line(".")==line("'.") && col(".") < col("'.")
let c = col('.')
normal! gvp```]
let c = col('.') - c
normal! ``
:silent call cursor(line("."),col(".")+c)
normal! P
else
normal! gvp``P
endif
endfunction
想法是删除任何地方的内容,然后在其他地方选择字符,然后点击g"
将删除字符与新选择的字符交换。