Skip to content

Latest commit

 

History

History
315 lines (245 loc) · 7.99 KB

File metadata and controls

315 lines (245 loc) · 7.99 KB

Vim 编辑器使用整理

说明:

  • vi 通常是传统编辑器,vimvi improved,功能更完整,日常更推荐使用 vim
  • 在很多 Linux 系统中可以直接用 vi 启动 vim,但也有系统只安装了最基础的 vi
  • Vim 是典型的“模式化编辑器”,先理解模式,再记命令,会更容易上手。

一、安装与打开文件

安装 Vim

sudo apt update
sudo apt install vim

常见打开方式

vim file.txt          # 打开文件
vim +10 file.txt      # 打开文件并跳到第 10 行
vim +/main file.c     # 打开文件并搜索 main
vim .vimrc            # 编辑配置文件

二、Vim 的 3 种常用模式

模式 作用 进入方式
普通模式 移动光标、删除、复制、粘贴、搜索、切换窗口 打开 Vim 后默认进入
插入模式 输入和修改文本 iao
命令行模式 保存、退出、查找替换、设置选项 在普通模式按 :/?

模式切换规律

  • Esc 可以从插入模式、可视模式等回到普通模式。
  • 普通模式下输入 : 进入命令行模式。
  • 普通模式下输入 / 为向下搜索,输入 ? 为向上搜索。

三、插入模式命令

命令 作用
i 在当前光标前进入插入模式
I 在当前行行首进入插入模式
a 在当前光标后进入插入模式
A 在当前行行尾进入插入模式
o 在当前行下方新建一行并进入插入模式
O 在当前行上方新建一行并进入插入模式
s 删除当前字符并进入插入模式
S 删除整行并进入插入模式
cw 修改当前单词并进入插入模式
cc 修改整行内容并进入插入模式
r 替换当前一个字符,不会持续进入插入模式

四、光标移动命令

基础移动

命令 作用
h j k l 左下上右移动
0 移到行首
^ 移到本行第一个非空字符
$ 移到行尾
w 跳到下一个单词开头
b 跳到上一个单词开头
e 跳到当前或下一个单词结尾

行与文件范围移动

命令 作用
gg 跳到文件首行
G 跳到文件末行
nG 跳到第 n
:n 跳到第 n
% 在括号、花括号、方括号配对间跳转

翻页与滚动

命令 作用
Ctrl+f 向下翻一页
Ctrl+b 向上翻一页
Ctrl+d 向下翻半页
Ctrl+u 向上翻半页
zz 让当前行滚动到屏幕中间
zt 让当前行滚动到屏幕顶部
zb 让当前行滚动到屏幕底部

五、删除、复制、粘贴与修改

删除命令

命令 作用
x 删除当前字符
X 删除光标前一个字符
dd 删除当前行
ndd 向下删除 n
dw 删除到下一个单词开头
de 删除到单词结尾
d$ 删除到行尾
d0 删除到行首
diw 删除当前单词

复制与粘贴

命令 作用
yy 复制当前行
nyy 复制当前行及向下 n
yw 复制一个单词
p 在光标后粘贴
P 在光标前粘贴

修改命令

命令 作用
cw 修改当前单词
ciw 修改当前单词内容
C 修改到行尾
J 将下一行合并到当前行

六、撤销、重做与重复操作

命令 作用
u 撤销上一步操作
Ctrl+r 重做被撤销的操作
. 重复上一次修改命令

. 非常实用,例如先执行一次 cwxxx,后续移动到别处后按 . 可重复同样的修改动作。

七、搜索与替换

搜索

命令 作用
/text 向下搜索 text
?text 向上搜索 text
n 跳到下一个匹配项
N 跳到上一个匹配项
* 向下搜索当前光标所在单词
# 向上搜索当前光标所在单词
:noh 取消搜索高亮

替换

:s/old/new/          " 替换当前行第一个 old
:s/old/new/g         " 替换当前行所有 old
:%s/old/new/g        " 替换全文所有 old
:%s/old/new/gc       " 替换全文并逐个确认
:10,20s/old/new/g    " 只替换第 10 到 20 行

八、可视模式

可视模式适合“先选中,再操作”。

命令 作用
v 字符可视模式
V 行可视模式
Ctrl+v 块可视模式
y 复制选中内容
d 删除选中内容
p 用寄存器内容替换选中内容
> 整体右缩进
< 整体左缩进

常见用途

Vj          选中当前行和下一行
Ctrl+v      块选中一列内容
>           将选中的代码整体右移

九、保存与退出

命令行模式常用命令

命令 作用
:w 保存文件
:w filename 另存为新文件
:q 退出
:q! 强制退出,不保存
:wq 保存并退出
:x 文件有修改则保存并退出
ZZ 在普通模式下保存并退出

注意事项

  • 在终端里按 Ctrl+s 往往不是保存,而是暂停终端输出。
  • 如果误按了 Ctrl+s,可以按 Ctrl+q 恢复终端。

十、多文件、分屏与标签页

多文件切换

:e file2.txt     " 打开另一个文件
:bn              " 下一个缓冲区
:bp              " 上一个缓冲区
:ls              " 查看当前缓冲区列表
:b 2             " 切换到编号为 2 的缓冲区

分屏

:split file.txt   " 水平分屏
:vsplit file.txt  " 垂直分屏
Ctrl+w w          " 在窗口之间切换
Ctrl+w h/j/k/l    " 切换到左//上/右窗口
Ctrl+w q          " 关闭当前窗口

标签页

:tabnew file.txt  " 新建标签页并打开文件
:tabnext          " 下一个标签页
:tabprev          " 上一个标签页
gt                " 下一个标签页
gT                " 上一个标签页

十一、缩进与格式整理

命令 作用
>> 当前行右缩进
<< 当前行左缩进
n>> 连续 n 行右缩进
== 自动整理当前行缩进
gg=G 自动整理全文缩进

十二、实用设置命令

下面这些命令可以在 Vim 中临时生效:

:set nu           " 显示行号
:set nonu         " 关闭行号
:set hlsearch     " 搜索结果高亮
:set ignorecase   " 搜索忽略大小写
:set paste        " 粘贴模式,适合粘贴代码
:set nopaste      " 关闭粘贴模式
:syntax on        " 打开语法高亮

如果希望长期生效,可以写入 ~/.vimrc

set nu
set hlsearch
set ignorecase
syntax on

十三、常见高频组合

快速编辑

gg          跳到文件开头
G           跳到文件结尾
yy          复制当前行
p           粘贴
dd          删除当前行
u           撤销
Ctrl+r      重做

快速查找替换

/main       搜索 main
n           跳到下一个结果
:%s/old/new/gc
            全文替换并逐个确认

快速整理代码

gg=G        全文自动缩进
Vjj>        选中 3 行并整体右缩进

十四、学习 Vim 时的几个关键理解

  • Vim 最重要的不是死记命令,而是先记住“普通模式负责操作,插入模式负责输入”。
  • 很多命令都支持数字前缀,例如 3dd5yy10G
  • Vim 常见操作可以理解为“操作符 + 对象”,例如 dwd$ciw
  • 先按 Esc 回到普通模式,再执行命令,是减少误操作的好习惯。

十五、一个最小上手流程

vim test.txt
  1. 进入文件后按 i 开始输入内容。
  2. 输入完成后按 Esc 回到普通模式。
  3. 输入 :w 保存文件。
  4. 输入 :q 退出 Vim。
  5. 也可以直接输入 :wq 一次完成保存并退出。