Linux中vi/vim详细使用

igxiaoshan Lv5

vi/vim的使用

vi/vim的三种模式

  • 命令模式(Commad mode)

  • 插入模式(Insert mode)

  • 尾行模式(Last Line mode)

当使用vi hello.txt命令时候,如果hello.txt不存在则会创建一个新的hello.txt文件,并进入文件中;此时使用的就是命令模式

输入i,a,o,I,A,O,都可以切换到插入模式

不同的是

  • i: 是在光标的前进行插入
  • a:是在光标后进行插入
  • o:自动切换下一行进行插入
  • O:自动切换上一行进行插入
  • I:是在当前行的行首进行插入
  • A:是在当前行的行末进行插入

输入:可以切换到行尾模式

使用ESC都可以退出插入模式行尾模式命令模式

H/J/K/L控制上下左右

  • H 向左
  • J 向下
  • K 向上
  • L 向右
  • 也可以使用方向键 上/下/左/右控制光标移动

复制/粘贴/删除

  • yy 复制内容
  • p 粘贴内容
  • dd 删除内容

也可以使用数字表示复制的行数,粘贴的行数和删除的行数

比如: 2yy就是复制光标起始的两行数据

5p 就是复制的数据粘贴两行

2dd 就是删除光标所在的起始行和下一行

查看行号

使用:set number/set nu开启行号展示

使用:set nonumer/set nonu取消行号展示

切换行首和行尾

  • ^ 切换到行首
  • $ 切换到行尾

向前翻页和向后翻页

  • Ctrl+f(forward) 向前翻页
  • Ctrl+b(backward) 向后翻页

向上翻半页/向下翻半页

  • Ctrl+u(up) 向上翻半页
  • Ctrl+d(down) 向下翻半页

G/gg

G表示跳到文件的最后一行

gg表示跳到文件的第一行

[number]gg表示跳到第[number]行

也可以使用尾行模式,跳到指定的行数;比如:50跳到50行

查找/替换

查找

使用/或者?来进行查找

比如:

在[命令模式]下使用/[operate]表示从光标往下查找

在[命令模式]下使用?[operate]表示从光标往上查找

使用n/N(next)对查找的内容进行查看

n表示向下查找;N表示向上查找

使用/或者?进行查找的时候,默认是区分大小写的;如果想忽略大小写,使用\c

也可以在[尾行模式]使用:set ic(ignore case)设置全局忽略大小写

替换

:n1,n2s/old/new/g

:表示 尾行模式

n1:表示 开始行数

n2表示 结束行数

s表示 替换的意思

old表示 要替换的数据

new表示 替换的数据

g表示 全局的意思

如果表示当前行可以省略n1n2直接使用 s/old/new

如果想从某一行开始一直到结尾可以使用n1,$s/old/new/g其中$表示行末

撤销

u(undo)表示撤销;

相当于windows中的 ctrl + z

vi/vim的配置文件

.vimrc文件就是vi/vim的配置文件

可以将字体颜色,是否显示行号,是否忽略大小写的配置写入其中,这样在使用中也会更加便捷和高效.