文章目录
-
-
- 1.Vim 常见工作模式
- 2.Vim 的模式转换
-
- 正常模式转输入模式
- 3.Vim 高频快捷键
-
- 插入文本 ( 正常模式下输入 )
- 行间跳转 ( 正常模式下输入)
- 文本处理 ( 正常模式下输入)
- 文件操作 ( 命令模式下输入)
- 批量处理 ( 输入模式下输入 )
- 4.Vim 配置文件配置指南
-
1.Vim 常见工作模式

- 正常模式 :Vim 打开文件默认处于正常模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
- 输入模式(插入模式,编辑模式) :输入模式 Vim 可以对文件执行写操作。
- 命令模式 :命令模式用于对文件中的指定内容执行保存、查找或替换等操作。
2.Vim 的模式转换
正常模式转输入模式
快捷键 | 功能 |
---|---|
i | 在光标所在位置前输入文本,进入输入模式 |
I | 在行首插入文本,进入输入模式 |
a | 在光标所在位置后输入文本,进入输入模式 |
A | 在行末尾插入文本,进入输入模式 |
o | 在当前行的下一行插入空行,进入输入模式 |
O | 在当前行的上一行插入空行,进入输入模式 |
正常模式 转 命令模式只需要按下 :,然后在命令模式下进行操作,最常见的就是操作就是 使用 " / "查找文本的关键字,比如在正常模式下搜索文本出现的include单词
vim test.c
:/include 回车
3.Vim 高频快捷键
插入文本 ( 正常模式下输入 )
快捷键 | 功能 |
---|---|
i | 在光标所在位置前输入文本 |
I | 在行首插入文本 |
a | 在光标所在位置后输入文本 |
A | 在行末尾插入文本 |
o | 在当前行的下一行插入空行 |
O | 在当前行的上一行插入空行 |
行间跳转 ( 正常模式下输入)
快捷键 | 功能 |
---|---|
h | 光标向左移动 |
l | 光标向右移动 |
j | 光标向下移动一行 |
k | 光标向上移动一行 |
w | 光标跳到上一个单词 |
b | 光标跳到下一个单词 |
使用技巧:
使用命令前可以加上数字,代表执行的次数,比如 :5 j 便是光标向下移动五行,其他命令依次类推
文本处理 ( 正常模式下输入)
快捷键 | 功能 |
---|---|
dd | 删除当前行 |
num+dd | 向下删除num行 |
p | 将剪切板的内容复制到此处 |
x | 删除当前光标的字符 |
u | 撤销上次操作 |
ctrl+r | 取消撤销上次操作 |
r | 替换成将要输入的字符 |
ctrl+d | 向下翻半页 |
ctrl+u | 向上翻半页 |
文件操作 ( 命令模式下输入)
正常模式使用:进入命令模式
快捷键 | 功能 |
---|---|
:w | 将文本内容保存 |
:q | 退出当前文本 |
:wq! | 强制保存并退出文本 |
:vs+文件名 | 竖直分屏打开文本 |
:sp+文件名 | 水平分屏打开文本 |
num+dd | 向下删除num行 |
打开分屏之后,想要切换窗口使用 ctrl + w + h / j / k / l
批量处理 ( 输入模式下输入 )
批量替换
:%s/源字符串/目的字符串/g
批量注释
:起始行号,结束行号s/^/注释符/g
批量取消注释
:起始行号,结束行号s/^注释符//g
4.Vim 配置文件配置指南
Vim 通过一个配置文件叫做 vimrc 来提供使用者自定义配置 Vim 属性,通常叫做 .vimrc ,所以是一个隐藏文件,使用 ls -a 才能看到,在etc目录中有一个全局的 .vimrc 文件,自己的家目录下也有一个 .vimrc 文件,强烈推荐配置用户家目录下的配置文件,也就是 ~/.vimrc,他的配置文件语法中使用 " 来注释
基础配置语法示例:
第 1 行到 12 行为基础配置,直接用即可,16行意思是在插入模式下输入 j j 来映射 Esc 按键,也就是进入了默认模式,( Esc 键有点远,没办法 😂),18 行意思是普通模式下ctrl w h 映射 ctrl h,目的就是在分屏切换的时候少按了一个键,方便一些。没错inoremap 表示 插入模式下映射,noremap 表示默认模式下映射,可以根据自己的喜好随意配置。
"零碎配置
set number "显示行号
syntax on "语法高亮
set hlsearch
set autoindent
set smartindent
set scrolloff=5 "垂直滚动时,光标距离顶部/底部的位置(单位:行)
set noswapfile "不创建交换文件
set tabstop=4
set shiftwidth=4
set showmatch
set fileencodings=ucs-bom,utf-8,chinese,cp936
"按键映射
inoremap jj <Esc>
inoremap <Tab> <Esc>la
noremap <C-h> <C-w>h
noremap <C-j> <C-w>j
noremap <C-k> <C-w>k
noremap <C-l> <C-w>l
noremap <space> viw
提示 : Vim 很多命令前后可以加上一个数字,表示命令执行次数,使用过程中需要举一反三才能更好地利用 Vim。