[关闭]
@Beeder 2017-12-23T16:30:57.000000Z 字数 1520 阅读 540

Linux vi编辑器

Linux


vi的基本概念

基本上vi可分为三种操作状态,命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode)

各模式的功能区分如下:

  1. 1 Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode
  2. 2 Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode
  3. 3 Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。

vi的基本操作

进入vi

  1. $ vi testfile

进入vi后默认是处于“Command mode”下

命令模式(Command mode)

切换至插入模式(Insert mode)

  1. i: 插入,从目前光标所在之处插入所输入的文字。
  2. a: 增加,目前光标所在的下一个字开始输入文字。
  3. o: 插入新的一行,从行首开始输入文字。

切换至底线命令模式(Last line mode)

  1. 切换`底线命令模式(Last line mode)` ':''/''?'

常用指令

光标移动
  1. hjkl 光标左、下、上、右移一格
  2. gg 移动文章的开头
  3. G 移动到文章的最后
  4. w 光标跳到下个word的开头
  5. e 光标跳到下个word的字尾
  6. b 光标回到上个word的开头
  7. $ 移到光标所在行的行尾
  8. ^ 移到该行第一个非空白的字符
  9. 0 移到该行的开头位置
翻页
  1. Ctrl+B 屏幕往后移动一页
  2. Ctrl+F 屏幕往前移动一页
  3. Ctrl+U 屏幕往后移动半页
  4. Ctrl+D 屏幕往前移动半页
删除文字
  1. x 删除光标所在位置的后面一个字符
  2. #x: 删除光标所在位置的后面#个字符
  3. X 删除光标所在位置的前面一个字符
  4. #X: 删除光标所在位置的前面#个字符
  5. dd 删除光标所在行
  6. #dd: 删除从光标所在的该行往下数#行之文字
复制
  1. yw 将光标所在处到字尾的字符复制到缓冲区中
  2. yy 将光标所在行复制到缓冲区中
  3. #yy 从光标所在的该行往下数#行都复制到缓冲区中
  4. p 将缓冲区内的字符粘贴到光标所在位置(必须与'yw''yy'搭配使用)
取代
  1. r 取代光标所在处的字符
  2. R 取代字符直到按Esc为止
复原
  1. u 回复到上一个操作
  2. .(点) 重复执行上一次的指令。
更改
  1. cw 更改光标所在处的字到字尾$处。
  2. c#w 更改#个字符
跳至指定行
  1. #G 移动光标至文章的第#行行首

插入模式(Insert mode)

    可以输入内容

切换至命令模式(Command mode)

  1. 切换`命令模式Command mode` 'Esc'

底线命令模式(Last line mode)

常用指令

列出行号
  1. set nu 在文章的每一行前面列出行号
跳到文章的某一行
  1. :# 跳转至#行
寻找字符串
  1. :/String || ?字符串 寻找String字符串
  2. n 向下继续寻找String字符串
  3. N 向上继续寻找String字符串
取代字符串
  1. s/p1/p2/g 将当前行中所有p1均用p2替代
  2. n1,n2s/p1/p2/g 将第n1n2行中所有p1均用p2替代
  3. g/p1/s//p2/g 将文件中所有p1均用p2替换

离开vi及存文件

  1. :w filename 保存并存入指定的文件名filename
  2. :wq 保存并退出
  3. :q! 强制退出并放弃编辑
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注