正常模式
切换
到插入模式
i
(insert) 停留在光标所在字符之前I
在光标所在行行首停留a
(append) 定留在光标所在字符之后A
在光标所在行行尾停留o
(open a line) 在光标所在行下面创建一个空行,并停留在下一行O
在光标所在行上面创建一个空行,并停留在上一行s
删除光标所在字符S
删除光标所在行
到命令行模式
:
到可视化模式
v
选择光标经过的字符V
选择光标经过的行Ctrl + v
选择块
操作
motion
↑ ↓ ← →
移动一个单位n→
向右移动n个单位w
word 移动到下一个单词b
back word 移动到上一个单词0
^
移动到行首$
移动到行尾f
find 向右查找f<char>
从光标所在位置向右移动到第一个指定字符(光标所在行范围内有效)
F
向左查找gg
移动到第一行nG
移动到第n行G
移动到最后一行
operation
d
delete 剪切y
复制p
paste 粘贴c
change 删除并进入编辑模式
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
时 会被映射为action2
map
对应模式- 不带
nore
的map
可以被再次映射 map
noremap
正常模式 可视化模式 运算符模式nmap
nnoremap
正常模式vmap
vnoremap
可视化模式omap
onoremap
运算符模式map!
noremap!
插入模式 命令行模式imap
inoremap
插入模式cmap
cnoremap
命令行模式
- 不带
操作
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 | 安装完成后配置文件添加 |