正常模式
切换
到插入模式
i(insert) 停留在光标所在字符之前I在光标所在行行首停留a(append) 定留在光标所在字符之后A在光标所在行行尾停留o(open a line) 在光标所在行下面创建一个空行,并停留在下一行O在光标所在行上面创建一个空行,并停留在上一行s删除光标所在字符S删除光标所在行
到命令行模式
:
到可视化模式
v选择光标经过的字符V选择光标经过的行Ctrl + v选择块
操作
motion
↑ ↓ ← →移动一个单位n→向右移动n个单位wword 移动到下一个单词bback word 移动到上一个单词0^移动到行首$移动到行尾ffind 向右查找f<char>从光标所在位置向右移动到第一个指定字符(光标所在行范围内有效)
F向左查找gg移动到第一行nG移动到第n行G移动到最后一行
operation
ddelete 剪切y复制ppaste 粘贴cchange 删除并进入编辑模式
operation + motion
d→删除光标定位的字符d←删除光标左边的第一个字符dn→删除光标右边n个字符(包括光标所在字符)dn←删除光标左边n个字符(不包括光标所在字符)df<char>删除 从光标开始到右边的第一个指定字符(包括该字符)dF<char>删除 从光标开始到左边的第一个指定字符(包括该字符)dgg删除上面所有的行(包括光标所在行)dG删除下面所有的行(包括光标所在行)dnG删除光标所在行到第n行di)删除括号内的内容 (光标要在括号中)diw删除光标所在的单词dd删除光标所在行
search
/<string><CR>查找字符串n移动到下一个查到的元素N移动到上一个找到的元素zz让光标所在行位于屏幕中央nzz移动到下一处并使其处于屏幕中央
插入模式
- 切换到正常模式
Esc
命令行模式
- 切换到正常模式
Esc
- 操作
:split|:sp上下分屏:vsplit|:vs左右分屏<Ctrl> + w + w按顺序切换分屏<Ctrl> + w + (h|l|j|k)向左|向右|向下|向上 切换分屏<Ctrl> + w + =扩大分屏<Ctrl> + w + -缩小分屏:edit .|:e .显示当前目录
可视化模式 (Visual Mode)
- 可视化模式下可以选择一块编辑区域,然后对选中的文件内容执行插入、删除、替换、改变大小写等操作
配置文件
- 路径
~/.vim/vimrc没有则创建
功能配置
1 | syntax on # 语法高亮 |
键盘映射
语法
map action1 action2当触发action1时 会被映射为action2map对应模式- 不带
nore的map可以被再次映射 mapnoremap正常模式 可视化模式 运算符模式nmapnnoremap正常模式vmapvnoremap可视化模式omaponoremap运算符模式map!noremap!插入模式 命令行模式imapinoremap插入模式cmapcnoremap命令行模式
- 不带
操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24让leader键(前缀键)为空格 默认是\
let mapleader = " "
将 s S 映射为 无效操作
map s <nop>
map S <nop>
将 W 映射为 保存
map W :w<CR>
将 Q 映射为 保存并退出
map Q :wq<CR>
将 R 映射为 加载配置文件
$MYVIMRC需要配置环境变量 $export MYVIMRC = ~/.vim/vimrc
map R :source $MYVIMRC<CR>
查找下一项并保持在屏幕中央
map = nzz
查找上一项并保持在屏幕中央
map - Nzz
让 空格+回车 关闭搜索高亮显示
map <leader><CR> :nohlsearch<CR>
插件
1 | curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ |
1 | 指定插件下载路径 |
1 | 配置完后重新加载配置文件 |
1 | 安装完成后配置文件添加 |

