vi/vim
所有的 Unix Like 系统都会内建 vi 文书编辑器, 但是目前主要使用的是 vim.
vim 是一款在 Linux 系统中非常流行的文本编辑器. 它具有强大的功能和灵活的配置选项, 可以用于编辑各种类型的文件.
vim 是从 vi 编辑器发展而来的, 具有 vi 的所有功能, 并且新增了许多扩展功能
vim 具有模式切换 (输入模式、命令模式、底线命令模式、可视化模式)、命令行操作、多窗口编辑等特性, 使得编辑更加高效.
Install
- 在大多数
Linux发行版中,vim已经预装了, 可以直接使用. 如果没有预装, 可以通过包管理器进行安装, 例如:- Ubuntu:
sudo apt-get install vim - CentOS:
sudo yum install vim - Arch Linux:
sudo pacman -S vim - macOS: 已内置
- Ubuntu:
基本命令:
基本操作:
- 打开文件:
vim文件名. - 保存文件: 在 命令模式 下按下
:w, 然后按回车键. - 保存并退出: 在 命令模式 下按下
:wq, 然后按回车键, 或直接按下ZZ. - 另存为其他文件: 在 命令模式 下按下
:w 文件名, 然后按回车键. - 退出
vim: 在 命令模式 下按下:q, 然后按回车键. - 强制退出
vim: 在 命令模式 下按下:q!, 然后按回车键. - 进入 输入模式: 按下
i. - 退出 输入模式: 按下
Esc.
- 打开文件:
光标移动:
- 上移: 按下
k. - 下移: 按下
j. - 左移: 按下
h. - 右移: 按下
l. - 移动到行首: 按下
0. - 移动到行尾: 按下
$. - 移动到下一个单词的开头: 按下
w. - 移动到上一个单词的开头: 按下
b. - 移动到单词的结尾: 按下
e. - 移动到下一段的开头: 按下
}. - 移动到上一段的开头: 按下
{. - 跳转到文件的第一行: 按下
gg. - 跳转到文件的最后一行: 按下
G. - 跳转到文件的第 N 行: 按下
Ngg或NG. - 向下翻页: 按下
Ctrl + f. - 向上翻页: 按下
Ctrl + b. - 跳转到匹配的括号 (如
(与)): 按下%.
- 上移: 按下
复制、粘贴、删除:
- 复制当前行: 在 命令模式 下按下
yy. - 复制 N 行: 在 命令模式 下按下
Nyy. - 粘贴到光标之后: 在 命令模式 下按下
p. - 粘贴到光标之前: 在 命令模式 下按下
P. - 删除当前行: 在 命令模式 下按下
dd. - 删除 N 行: 在 命令模式 下按下
Ndd. - 删除光标所在位置的字符: 按下
x. - 删除光标前一个字符: 按下
X. - 删除光标所在位置的单词: 按下
dw.
- 复制当前行: 在 命令模式 下按下
搜索:
- 向前搜索: 在 命令模式 下按下
/, 然后输入要搜索的内容, 按下回车键. - 向后搜索: 在 命令模式 下按下
?, 然后输入要搜索的内容, 按下回车键. - 搜索下一个匹配项: 在 命令模式 下按下
n. - 搜索上一个匹配项: 在 命令模式 下按下
N.
- 向前搜索: 在 命令模式 下按下
查找与替换:
- 替换当前行的第一个匹配项:
:s/旧内容/新内容, 然后按回车键. - 替换当前行的所有匹配项:
:s/旧内容/新内容/g, 然后按回车键. - 替换全文的所有匹配项:
:%s/旧内容/新内容/g, 然后按回车键. - 替换全文的所有匹配项并逐个确认:
:%s/旧内容/新内容/gc, 然后按回车键. - 取消搜索结果的高亮显示:
:noh, 然后按回车键.
- 替换当前行的第一个匹配项:
其他常用操作:
- 撤销上一次操作: 按下
u. - 重做上一次撤销的操作: 按下
Ctrl + r. - 重复执行上一次操作: 按下
.. - 删除光标所在位置到行尾的内容: 按下
d$. - 删除光标所在位置到行首的内容: 按下
d0. - 删除整行并进入 输入模式: 按下
cc. - 复制当前光标所在位置的单词: 按下
yw. - 替换光标所在位置的单个字符: 按下
r, 然后输入要替换的字符. - 进入连续替换模式: 按下
R, 之后输入的内容会逐个覆盖原有字符, 按下Esc退出. - 切换光标所在字符的大小写: 按下
~. - 合并下一行到当前行: 按下
J. - 向右缩进当前行: 按下
>>. - 向左缩进当前行: 按下
<<. - 自动缩进当前行: 按下
==. - 显示行号:
:set nu, 然后按回车键. - 取消显示行号:
:set nonu, 然后按回车键. - 在当前行的末尾添加新行并进入 输入模式: 按下
o. - 在当前行的上方添加新行并进入 输入模式: 按下
O.
- 撤销上一次操作: 按下
多文件与多窗口:
- 打开另一个文件:
:e 文件名, 然后按回车键. - 水平分割窗口:
:split, 然后按回车键. - 垂直分割窗口:
:vsplit, 然后按回车键. - 在窗口之间切换: 按下
Ctrl + w, 然后按方向键, 或连续按下两次Ctrl + w. - 关闭当前窗口:
:close, 然后按回车键.
- 打开另一个文件:
模式

输入模式 (
Insert Mode):- 在输入模式下, 你可以像在普通文本编辑器中一样输入和编辑文本.
- 进入输入模式的方式:
- 在命令模式下按下
i键: 光标会进入到当前位置, 你可以在光标后插入文本. - 在命令模式下按下
a键: 光标会进入到当前位置的下一个位置, 你可以在光标后插入文本. - 在命令模式下按下
o键: 会在当前行的下方插入新行, 并将光标移动到新行的起始位置, 你可以在新行中输入文本. - 在命令模式下按下
O键: 会在当前行的上方插入新行, 并将光标移动到新行的起始位置, 你可以在新行中输入文本.
- 在命令模式下按下
命令模式 (
Normal Mode):- 在命令模式下, 你可以执行各种编辑和移动光标的命令.
- 进入命令模式的方式:
- 在输入模式 (或底线命令模式) 下按下
Esc键, 即可返回到命令模式.
- 在输入模式 (或底线命令模式) 下按下
- 在命令模式下, 可以使用各种快捷键和命令来编辑文本、移动光标、复制粘贴等.
底线命令模式 (
Command-Line Mode):- 在底线命令模式下, 你可以执行一些底线命令, 如保存文件、退出
vim等. - 进入底线命令模式的方式:
- 在命令模式下按下
:键: 屏幕底部会出现一个冒号, 表示进入底线命令模式.
- 在命令模式下按下
- 在底线命令模式下, 可以输入各种命令来执行不同的操作, 如保存文件 (
:w)、退出vim(:q)、显示行号 (:set nu) 等.
- 在底线命令模式下, 你可以执行一些底线命令, 如保存文件、退出
可视化模式 (
Visual Mode):- 在可视化模式下, 可以选中一段文本, 然后对选中的区域统一进行操作 (复制、删除、缩进等).
- 进入可视化模式的方式:
- 在命令模式下按下
v键: 进入字符可视化模式, 以字符为单位选中. - 在命令模式下按下
V键: 进入行可视化模式, 以整行为单位选中. - 在命令模式下按下
Ctrl + v键: 进入块可视化模式, 可以选中一个矩形区域.
- 在命令模式下按下
- 选中文本后, 可以按下
y复制、d删除、~切换大小写, 或按下>/<缩进.
总结:
- 输入模式用于编辑文本, 光标可以在文本中移动并输入内容.
- 命令模式用于执行各种编辑和移动光标的命令.
- 底线命令模式用于执行一些底线命令, 如保存文件、退出
vim等. - 可视化模式用于选中文本区域, 便于对多行文本进行批量操作.