Fork me on GitHub

我常用的Vi命令

  Vi对于linux的重要性和受欢迎的程度在此一律不表。此刻互联网上不少介绍vi的文章和博客,相信写得比我好的也不在少数。然而为什么我依然写这样一篇文章呢?我对linux知识和了解也都来自于互联网,很难想象在没有互联网的情况下我能不能学会这些最基本的操作。其实用linux也有些年头了,但基本也就停留在小白的阶段。常常抱着够用就行的心态,因而学懂那几行常用的命令后也就再没有深入地了解了。常听人说起,写和讲是为了更好地学。由于各种原因,也有段时间没用vi了。当用起的时候常常会有个印象但又不确定,因而常常GG也就少不了了。与其GG,不如自己记录起来偶尔翻翻。与其说是一篇文章倒不如说是我的私人笔记,文章全然凭自己的理解,写得不明白或者有误的地方也请指出。在我对Vi没有彻底熟烂于心之前,这都是一篇尚未完成的文章。

vi 创建并编辑文件

vi test.txt
  •  i 、a 、o 命令

按i、a或者o进入编辑模式

然后输入

this is a test file!

  • esc 退出编辑模式

按键盘又上角的“esc”键退出编辑模式

  •  yy 复制和p粘贴

现在复制上面的行并粘贴,输入“yy”复制,然后输入“p”完成粘贴

this is a test file!
this is a test file!
this is a test file!
this is a test file!

  • set:number(set:num)显示行号和set:nonumber(set:nonum)取消行号:

1 this is a test file!
2 this is a test file!
3 this is a test file!
4 this is a test file!

  • :number,

将光标移到指定行号

  • 【 /需要查找的内容】 查找字符串,首次查找后输入“n”即可循环查找字符串

输入“/test”即可查找test这个字符串了,按“n”即可查找下一个想匹配的字符串

  •  x 删除光标后的字符,X 删除光标前的字符(与 x 的用法一致), dd 删除行

x可删除光标后面的字符,5x表示删除光标后的5个字符。同理dd可删除光标所在行,5dd则是删除光标后的5行(包含光标所在行)

  • r 替换光标处的字符,R替换光标所到指出的字符,直到按下ESC键为止
  •  u 撤销上一次编辑的内容

undo上一次改变。

  •  U 撤销当前行编辑的内容

undo当前行所有的改变。

  •  Ctrl + R  恢复撤销的内容

redo被undo了的改变。

  •  ^ 将光标移到行首和 $ 将光标移到行尾
  •  gg 回到文档开始的地方
  • Ctrl+f

向前翻屏

  • Ctrl+b

向后翻屏

  • Ctrl+d

向前翻半屏

  • Ctrl+u

向后翻半屏

  • 保存退出: :x 或 :wq 保存并退出,输入: :q! 不保存退出,:w filename 指定filename保存并退出。
  • 查看文件的十六进制: :%!xxd,与 od  -t x1 filename 的效果一致

批量替换内容

  :%s/原有内容/新内容/g

posted @ 2015-05-14 11:08  秋楓  阅读(329)  评论(0编辑  收藏  举报