Linux操作系统基础——vi篇

来源:互联网 发布:手机间谍软件官方网站 编辑:程序博客网 时间:2024/06/06 06:30

vi编辑器

vi基本概念

vi编辑器简介,被誉为神的编辑器

  • vi编辑器是所有Unix及Linux系统下的编辑器,它的强大不逊色于任何最新的文本编辑器。这里只是简单介绍一小部分指令,会使用的话会大大提高编码效率。Vi也是Linux中最基本的文本编辑器。

vi的基本概念

  • 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(Lastline mode),各模式的功能如下
    1. 命令模式(command mode)
      • 控制光标的移动,字符、字或行的拷贝与删除,进入底行模式或者插入模式
    2. 插入模式(Insert mode)
      • 只有在Insert模式下,才可以进行文字的输入,按【ESC】键可回到命令模式。
    3. 底行模式(lastline mode)
      • 将文件保存或退出vi,也可以设置内部环境,如寻找字符串、列出行号等。

vi基本操作

  1. 进入vi
    • 在终端输入vi及文件名称后,就会进入vi,如果文件名不存在,保存时将会创建该文件。默认状态为命令模式,切换到插入模式才可进行文字的输入。
  2. 切换至插入模式编辑文件
    • 在命令行模式按下字母【i】(insert)即可进入插入模式,此时可编辑文字。
  3. 退出vi及保存文件
    • 在插入模式下,按【ESC】键转到命令模式按一下【:】冒号键进入底行模式
:w      #filename被编辑的文件以filename名字另存。:wq     #保存并退出:x      #等同于wq:q!     #退出不保存

vi命令模式

移动光标

  • 可以使用键盘上的上下左右来移动光标,或者使用vi的移动光标快捷键
h,j,k,l    #对应左下上右space      #光标右移Backspace  #光标左移Ctrl + p   #光标上移Ctrl + n   #光标下移Enter      #光标下移w或W       #光标右移一个字/词至词首b或B       #光标左移一个字/词至词首e或E       #光标右移一个字/词至词尾(          #光标移至句首)          #光标移至句尾{          #光标移至段落开头}          #光标移至段落结尾nG         #光标移至第n行行首n+         #光标下移n行n-         #光标上移n行n$         #光标移至第n行行尾H          #光标移至屏幕顶行M          #光标移至屏幕中间行L          #光标移至屏幕最后行0          #光标移至当前行行首$          #光标移至当前行行尾G          #光标移至文件最后一行

字符操作

i  #在光标前插入I  #在当前行首插入a  #在光标后插入A  #在当前行尾插入o  #在当前行之下新开一行插入O  #在当前行之上新开一行插入x  #向后删除一个字符X  #向前删除一个字符u  #撤销一步U  #撤销所有更改c  #剪切y  #选中p  #粘贴

行操作

vi 拥有强大的命令组合,所以将命令组合起来之后会有更加强大的效果

^    #行首$    #行尾dd   #删除一行d^   #删除至行首d$   #删除至行尾ndd  #删除n行yy   #复制一行y^   #复制至行首y$   #复制至行尾nyy  #复制n行p    #将复制行粘贴在光标所在行下方P    #将复制行粘贴在光标所在行上方

搜索和替换操作

/keyword           #从光标开始处向文件尾搜索keyword?keyword           #从光标开始处向文件首搜索keywordn                  #在同一方向重复上一次搜索命令N                  #在反方向上重复上一次搜索命令:s/p1/p2/g         #将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g    #将第n1至n2行中所有p1均用p2替代:%s/p1/p2/g        #将文件中所有p1均用p2替换

vi底行模式

:n1,n2 co n3     #将n1行到n2行之间的内容拷贝到第n3行下:n1,n2 m n3      #将n1行到n2行之间的内容移动到第n3行下:n1,n2 d         #将n1行到n2行之间的内容删除:w               #保存当前文件:e filename      #打开文件filename进行编辑:x               #保存当前文件并退出:q               #退出vi:q!              #不保存文件并退出vi:!command        #执行shell命令command:n1,n2 !command  #将command的输出作为n1到n2行的内容覆盖原内容