NiceLeeのBlog 用爱发电 bilibili~

知识库 Linux vi编辑器

2018-12-09
nIceLee

阅读:


vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。

基本概念

基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  1. 命令行模式(command mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段等。
  2. 插入模式(Insert mode)
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
  3. 底行模式(last line mode)
    将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

基本操作

  • 打开文件
vi example.log
  • 编辑内容
    • 「command mode」下, 按 i 键进入「Last line mode」, 进行内容编辑
  • 保存文件
    • 「command mode」下, 按: 键进入「Last line mode」;
    • 「Last line mode」下, 输入w保存;
  • 退出文件
    「Last line mode」下,
    • 输入q退出;
    • 输入wq保存修改并退出;
    • 输入q!不保存修改并退出;
  • 移动光标
    • 「ctrl」+「b」/「f」:屏幕往“后”/“前”移动一页。
    • 「ctrl」+「u」/「d」:屏幕往“后”/“前”移动半页。
    • 「0」/「G」:移到文章的开头/最后。
    • 「$」/「^」:移动到光标所在行的“行尾”/“行首”。
    • 「#l」:光标移到该行的第#个位置,如:5l,56l
  • 恢复/撤消/还原上一次操作
    • 「u」:如果误执行一个命令,按下「u」,撤消上一个操作。按多次“u”可以执行多次撤消。
  • 跳至指定的行
    • 「ctrl」+「g」列出光标所在行的行号。
    • 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
    • 「n」<Enter> n 为数字。光标向下移动 n 行(常用)

其它操作

先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。

  • 列出行号
    「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
  • 跳到文件中的某一行
    「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
  • 查找字符
    「/关键字」:向光标之下寻找字符串,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
    「?关键字」:向光标之上寻找字符串,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。
  • 搜索替换
    • 「n1,n2s/word1/word2/g」
      • n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2
        举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:

        :100,200s/vbird/VBIRD/g

    • 「1,$s/word1/word2/g」
      • 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
    • 「1,$s/word1/word2/gc」
      • 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)

内容
隐藏