vi 三种工作模式切换
终端命令行下,使用 " vi 文件名 ",进入vi 编辑器。
vi 编辑器分为三种工作模式:一般指令模式、编辑模式、命令行模式。
(要点:无论处于那种工作模式,按 Esc键 都可进入一般指令模式。编辑模式和命令行模式的切换,必须要经过一般指令模式)
- 一般指令模式:刚进入vi 时的默认模式。这个模式下能够进行:移动光标、整行的复制粘贴、整行删除 等基本操作。
- 编辑模式:在一般指令模式下,按 "a" "i" "o" 均可进入编辑模式。此模式下能够进行:文本的输入、删除。
- 命令行模式(末行模式):在一般指令模式下,按 ":" "/" "?" 均可进入命令行模式。由于此模式的输入会显示在窗口的最后一行,也叫末行模式。此模式下能够进行:搜索、保存、离开 等操作。
vi 常用命令操作
从一般指令模式,进入编辑模式:
- i 光标前插入。
- a 光标后插入
- o 光标下一行插入。
从任何模式退出:先按 Esc键,之后输入:
- :q 退出 vi。
- :q! 强制退出,不保存文件。
- :wq 保存文件并退出。
移动光标(一般指令模式)
- gg 光标移动到文档头部
- G 光标移动到文档尾部
- ngg 光标移动到第 n 行头部
- n+ 光标向下移动 n 行
- n- 光标向上移动 n 行
- 0 光标移动到当前行行首
- $ 光标移动到当前行行尾
- w 光标移动到下一个字的开头
- b 光标移动到上一个字的开头
- fx 光标移动到 当前行下一个字母x的位置
- h 光标向左移动一个字符。等于方向键 "←"。
- j 光标向下移动一个字符。等于方向键 "↓"。
- k 光标向上移动一个字符。等于方向键 "↑"。
- l 光标向右移动一个字符。等于方向键 "→"。
复制粘贴(一般指令模式)
- yy 复制当前行
- nyy 复制当前行及下面的 n-1 行
- p 粘贴
删除(一般指令模式)
- x 删除光标后一个字符
- X 删除光标前一个字符
- nx 删除光标后 n 个字符
- nX 删除光标前 n 个字符
- d0 从光标处删到行首
- d$ 从光标处删到行尾
- dd 删除光标所在行
- ndd 删除光标所在行及其后 n-1 行
撤销(一般指令模式)
- u 撤销上一步操作
搜索查找(命令行模式)
- /str 从光标处向文件尾部搜索,查找 "str" 字符串,n N 查看下/上一个位置。
- ?str 从光标处向文件首部搜索,查找 "str" 字符串,n N 查看下/上一个位置。
替换(命令行模式)
- :s/str1/str2/g 将当前行中所有的 "str1",均用 "str2" 替换。
- :s/str1/str2/gc 将当前行中所有的 "str1",均用 "str2" 替换。替换时需要确认。
- :%s/str1/str2/g 将文件中所有的 "str1",均用 "str2" 替换。
- :%s/str1/str2/gc 将文件中所有的 "str1",均用 "str2" 替换。替换时需要确认。