vi基本操作——删除、跳转等

  • vi撤销命令:

   u 撤销上一步的操作
      Ctrl+r 恢复上一步被撤销的操作

  • vi删除命令:

  vi删除命令同时也是剪切命令,按p可将内容粘贴在光标所在处的下一行。

方法一:

单行删除,:1(待删除行)d

多行删除 ,:1,10d

方法二:

光标所在字符,x

光标之后单词剩余部分,dw

d$ 删除光标之后该行所有内容

光标所在行,dd

光标所在行以下的N行,Ndd

c,cc 类似d,dd区别在区删除后进入输入模式(insert mode)

删除所有内容, :.,$d

删除每行第一个字符, :%s/^.//g


常见问题及应用技巧
1) 在一个新文件中读/etc/passwd中的内容,取出用户名部分
vi file
:r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd
:%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分
:3r /etc/passwd 这是在指定的行号后面读入文件内容
另外一种方法删掉文件中所有的空行及以#开始的注释行
#cat squid.conf.default | grep -v '^$' | grep -v '^#

2) 用VI编辑一个文件,但需要删除大段大段的内容
vi file
Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G.
:23,1045d 假定两次行号为23和1045,则把这几间的内容全删除
也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除.

  • vi跳转命令:

  :$ 跳到文件最后一行
     :0或:1 跳到文件第一行;:n跳到文件第n行
  或另一种模式下:
  gg 跳到文件第一行;ngg跳到第n行
  Shift + g 跳到文件最后一行

 

  • vi 多行注释:

如果要给多行程序作注释,一个笨办法就是 插入 # ,然后用 j 跳到下一行用 . 命令,重复上个命令。

如果要注释几百行,这样的方法恐怕太愚蠢了。一个聪明的办法是:
:.,+499 s/^/#/g
若需全文的行首插入可用以下命令
:%s/^/#/g

 

posted on 2016-12-28 14:49  枪眼  阅读(853)  评论(0)    收藏  举报

导航