0%

vi基本操作

vi 是 Linux 常用的编辑器,本文记录了 vi 的基本操作。

三种模式

  1. 命令模式
    用 vi 打开一个文件即进入命令模式

  2. 输入模式
    a i o 进入输入模式

  • a 光标后输入
  • i 光标前输入
  • o 光标下一行输入
  • A 光标所在行的行尾输入
  • O 光标所在行的上一行新建一行
  • esc退回到命令模式
  1. 末行模式
  • : 进入末行模式
  • esc返回命令模式

光标移动

  1. 行内跳转
    home 或者 $ 跳转行首
    end 或者 ^ 跳转行尾

  2. 行间跳转
    末行模式输入 set nu 显示行数

    • 命令模式
      #gg 跳转到#行,#代表数字
      G 跳转到行尾
      gg 跳转到行首

    • 末行模式
      :# 跳转到#行,#代表数字

复制

  • 命令模式
    #yy 从光标所在行开始,往下复制#行
  • 末行模式
    :#y 复制第#行
    :m,ny 复制从第m行到第n行

粘贴

  • p 光标后粘贴
  • P 光标前粘贴

删除

  • 命令模式
    x或者del 删除光标所在字符
    #dd 删除从光标所在行开始,往下数#行

  • 末行模式
    :#d 删除第#行
    :m,nd 删除从第m行到第n行

剪切

删除 + 粘贴

查找

命令模式
/word 从上往下查找word,小写n,查找下一个匹配的
?word 从下往上查找word,大写N,查找上一个匹配的

替换

末行模式
:s/old/new 将光标所在行,满足的第一个old替换成new
:s#old#new

:s/old/new/g 光标所在行的所有old替换成new
:s#old#new#g

:m,ns/old/new 第m行到第n行,每行第一个满足的old替换成new

:%s/old/new/g 全文替换
:%s#old#new#g

写入文件

末行模式
:r /root/test.txt 在光标下一行写入文件/root/test.txt

保存退出

  • 末行模式
    :wq
    :x
  • 命令模式
    ZZ

其他退出

  • 强制退出
    :q!
  • 强制保存退出
    :wq!
  • 正常退出
    :q