很开心看到 @kidneyball童鞋一口气在上一篇文章中提了三个建议,而且都很有建设性,当然还要谢谢@isensen等童鞋,又在催我了。这下动力又有了,今天继续写,不过我的写的时候呢,没有太多的章法,想到哪里就写哪里,学Vim是个技巧活,需要不断实践,练得好就有如身披一把AK47。
今天要讲的是整行移动和拷贝,涉及的命令是::m
和t
。这两个命令其实是move
和copy
的简写形式。 其实整行的拷贝相信你能用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.
拷贝当前行到光标的一下行,相当于Yp
和yyp
:t$
拷贝当前行到最后一行
:'<,'>t0
拷贝所选区域到文本的开头处,这里的操作步骤是:现在visual 模式下选中文本,然后输入:
,接着t0
。
move:move的操作完全和copy是一样的,它的简写格式有mo
和m
。可以对照上面的例子重复操作一遍。更多帮助可以查看:h :move
和:h copy
。
转载请注明出处,谢谢合作!作者---zhijun