天天看点

Vim 编辑器快捷键及配置指南

文章目录

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

1.Vim 常见工作模式

Vim 编辑器快捷键及配置指南
  1. 正常模式 :Vim 打开文件默认处于正常模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
  2. 输入模式(插入模式,编辑模式) :输入模式 Vim 可以对文件执行写操作。
  3. 命令模式 :命令模式用于对文件中的指定内容执行保存、查找或替换等操作。

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,他的配置文件语法中使用 " 来注释

基础配置语法示例:

Vim 编辑器快捷键及配置指南

第 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。