本文共 1770 字,大约阅读时间需要 5 分钟。
1. vi 的基本概念
vi 可以分为三种操作状态:命令模式(Command mode)、插入模式(Insert mode) 和 底线命令模式(Last line mode)。每种模式有不同的功能,理解它们的区别对使用 vi 是非常重要的。
(1) Command mode
在 Command mode 下,您可以控制屏幕光标的移动,字符或光标的删除,移动复制某段文本及进入 Insert mode,或者切换到 Last line mode。
(2) Insert mode
在 Insert mode 下,您可以输入文字数据。要切换到 Insert mode,只需在 Command mode 下按下 i、a 或 o 键。
- i:插入,从光标所在位置开始输入文字。
- a:插入,光标所在位置的下一行开始输入文字。
- o:插入,光标所在位置的新行开始输入文字。
(3) Last line mode
在 Last line mode 下,您可以执行文件操作,如存储文件、离开编辑器或设置编辑环境(如寻找字符串、列出行号等)。
2. vi 的基本操作
(1) 如何进入 vi?
在终端或 shell 提示符下输入以下命令即可进入 vi:
vi testfile
进入 vi 后,默认处于 Command mode。如果想输入文字,需切换至 Insert mode。
(2) 如何切换至 Insert mode 编辑文件?
在 Command mode 下,按下以下任一键即可进入 Insert mode:
- i:插入从光标所在位置开始输入文字。
- a:插入,光标所在位置的下一行开始输入文字。
- o:插入,光标所在位置的新行开始输入文字。
(3) 如何离开 vi 及存文件?
在 Command mode 下,执行以下命令即可离开 vi:
- :w filename:将文章存入指定文件。
- :wq:存入文件后离开 vi。
- :q!:强制离开 vi,放弃编辑。
3. Command mode 功能键列表
(1) 常用移动光标键
- h, j, k, l:左、下、上、右移动一格。
- Ctrl+B/Ctrl+F:屏幕往后/前移动一页。
- Ctrl+U/Ctrl+D:屏幕往后/前移动半页。
- 0:移到当前行开头。
- G:移到当前文件末尾。
- w:移到下一个单词开头。
- e:移到下一个单词结尾。
- b:移到上一个单词开头。
- $:移到当前行末尾。
- ^:移到当前行第一个非空字符。
- #:移到特定列位置(如 #51 表示第 51 列)。
(2) 删除文字
- x:删除光标后一个字符。
- #x:按次数删除后续字符(如 6x 删除 6 个字符)。
- X:删除光标前一个字符。
- #X:按次数删除前面字符(如 20X 删除 20 个字符)。
- dd:删除当前行。
- #dd:按次数删除行(如 6dd 删除 6 行)。
(3) 复制
- yw:将光标处到末尾复制到缓冲区。
- p:将缓冲区内容粘贴到光标位置。
- yy:复制当前行。
- #yy:按次数复制行(如 6yy 复制 6 行)。
- ap:将缓冲区内容粘贴。
(4) 取代
(5) 复原
(6) 更改
- cw:更改光标处的字符到末尾。
- c#w:按次数更改字符(如 c3w 更改 3 个字符)。
(7) 跳至指定行
- Ctrl+G:显示光标所在行的行号。
- #G:跳至指定行(如 15G 跳至第 15 行)。
4. Last line mode 下指令简介
在 Last line mode 下,输入以下命令:
(1) 列出行号
(2) 跳至指定行
(3) 寻找字符串
- /关键字:按 / 输入要寻找的字符串,按 n 往下寻找。
- ?关键字:按 ? 输入要寻找的字符串,按 n 往上寻找。
(4) 取代字符串
- $s/原字符串/替换字符串/g:按次数替换字符串。
- %s/原字符串/替换字符串/c:替换时需确认。
(5) 存文件
- w:存入当前文件。
- #w filename:存入指定文件(如 #30w 存入第 30 行到 filename)。
(6) 离开
- q:离开 vi。
- qw:离开时存入文件。
- q!:强制离开 vi。
转载地址:http://djwh.baihongyu.com/