0x00简介

vi由比尔·乔伊(Bill Joy)撰写,所有UNIX like均默认安装此文本编辑器。vi很小,符合Unix哲学中的“只做一件事,并做好它”。vim(vi IMproved)是vi的升级版,现在大多数Linux系统都装了vim。

0x01三种模式

1、vi是一种模式文本编辑器,具备三种使用模式。

  • 一般模式:默认模式,用于移动光标、删除、复制、粘贴;
  • 编辑模式:用于插入或替换编辑文本;
  • 命令模式:用于查找、保存、替换大量文本、显示行号等。

2、三种模式的切换:

vi模式切换 1

0x02一般模式

1、进入vi

vi testvi.txt

如果该文件不存在,则保存退出后将新建该文件。

[root@localhost geek]# ls
1.txt  cprograms                  iftop-0.17.tar.gz  公共  视频  文档  音乐
2.txt  htop-1.0.2-6.1.x86_64.rpm  scripts            模板  图片  下载  桌面
[root@localhost geek]# vi testvi.txt

输入“:”进入命令模式,再输入“wq”保存并退出。
这里写图片描述

[root@localhost geek]# ls
1.txt      htop-1.0.2-6.1.x86_64.rpm  testvi.txt  视频  下载
2.txt      iftop-0.17.tar.gz          公共        图片  音乐
cprograms  scripts                    模板        文档  桌面

2、返回一般模式

不管是在编辑模式还是命令模式,返回一般模式只需要按【esc】键。特别注意:编辑模式和命令模式不可直接切换,要先切换到一般模式才可以。动动脑筋就知道这样设计的道理了。

3、退出vi

在一般模式下,输入“:”进入命令模式,再输入“wq”保存并退出。如果碰到权限问题,可以“wq!”强制写入然后退出。

4、移动光标

  1. 上下左右:左用h或←,上用k或↑,下用j或↓,右用l或→;
  2. 上下滚动:上滚用【Ctrl】+【b】(backward),下滚用【Ctrl】+【f】(foreword);
  3. 行首行尾:行首用“0”或【home】,行尾用“$”或【end】;
  4. 文首文尾:文首用“gg”或“1G”,文尾用“G”;

5、复制、粘贴、删除

  1. 复制:yy,复制光标所在一行;nyy,复制光标所在向下n行;
  2. 粘贴:p,粘贴在光标下一行;P,粘贴在光标上一行;
  3. 删除:x或【Del】,向后删除一个字符;X或【backspace】,向前删除一个字符;dd,删除光标所在一行;ndd,删除光标所在向下n行。

6、复原、重做和重复

  1. 复原:u;
  2. 重做:【Ctrl】+r;
  3. 重复上一操作:”.”。

0x03编辑模式

1、插入模式

  • i,I(insert)

从当前光标处插入

i

从当前行的第一个非空格符处开始插入

I

  • a,A(append)

从当前光标的下一个字符处开始插入

a

从当前行的最后一个字符处插入

A

  • o,O

当前行的下一行处插入新行

o

当前行的上一行处插入新行

O

2、替换模式

  • r,R(replace):

替换光标所在的字符一次

r

一直替换光标所在的文字

R

0x04命令模式

1、查找与替换

  1. 查找:

向下查找名称为word的字符串:

/word

向上查找名称为word的字符串:

?word

重复前一个查找:

n

反向重复前一个查找:

N

  1. 替换:

在n1和n2行之间查找word1,并将其替换为word2

:n1,n2s/word1/word2/g

全文查找word1,并将其替换为word2

:1,$s/word1/word2/g

全文查找word1,并提示用户确认(confirm)是否将其替换为word2

:1,$s/word1/word2/gc

2、行号的设置

显示行号(number):

:set nu

取消行号(no number):

:set nonu

3、保存和离开

保存:

:w

另存为:

:w [filename]

离开:

:q

保存并离开:

:wq或
:x

Logo

更多推荐