Skip to content

Latest commit

 

History

History
26 lines (18 loc) · 1.99 KB

25.md

File metadata and controls

26 lines (18 loc) · 1.99 KB

每日一Vim(25)行复制与移动

很开心看到 @kidneyball童鞋一口气在上一篇文章中提了三个建议,而且都很有建设性,当然还要谢谢@isensen等童鞋,又在催我了。这下动力又有了,今天继续写,不过我的写的时候呢,没有太多的章法,想到哪里就写哪里,学Vim是个技巧活,需要不断实践,练得好就有如身披一把AK47。

今天要讲的是整行移动和拷贝,涉及的命令是::mt。这两个命令其实是movecopy的简写形式。 其实整行的拷贝相信你能用yank解决,但是它有一个缺点就是必须把光标移到要拷贝的行才能执行该操作,然而:copy:move命令可以在任何地方拷贝或者移动任意一行或者多行。

copy命令格式::[range]copy{address},range表示拷贝范围,address表示目标地址。举例来说:把下面三行if语句块拷贝到main代码段中去,不管此时你的光标在何处,现在假设光标在main那行:

if choise=='n':newuser()
if choise=='e':olduser()
if choise=='q':done=True

if __name__=='__main__':

我们可以用:1copy.把第一行拷贝到光标的下一行(.代表当前行),如果三行全拷贝::1,3copy.,copy的另外两个写法:co或者:t。 常用命令:
:3t. 拷贝第三行到当前光标的下一行
:t3 拷贝当前行到第三行的下一行
:t. 拷贝当前行到光标的一下行,相当于Ypyyp
:t$ 拷贝当前行到最后一行
:'<,'>t0 拷贝所选区域到文本的开头处,这里的操作步骤是:现在visual 模式下选中文本,然后输入:,接着t0

move:move的操作完全和copy是一样的,它的简写格式有mom。可以对照上面的例子重复操作一遍。更多帮助可以查看:h :move:h copy

转载请注明出处,谢谢合作!作者---zhijun