颜色设置
1、修改颜色
# 在~目录新建文件: vi .vimrcset nucolorscheme desertset tabstop=2#每一级缩进的长度为2个空格set shiftwidth=2
2、移动多行:
# 剪切 n+dd# 粘贴 p
3、多行缩进: :m,n > (右缩)
跳转与缩进
| w/W | 正向移动一个单词 |
|---|---|
| e/E | 正向移动到下一个单词的词尾 |
| b/B | 反向移动一个单词 |
| ge | 反向(同b/B) |
| gg | 文本首行 |
|---|---|
| 12gg | 移动到12行 |
| G | 文本末尾 |
| 《数字》gg | 跳转到指定行 |
| >> | 右缩进 |
|---|---|
| << | 左缩进 |
| :m,n> 例如 :1,5> | m到n行右缩进 |
| :m,n< 例如 :1,5< | m到n行左缩进 |
| :m>n 例如 :3>3 | 从第三行开始右缩进3行 |
删除、复制、粘贴
| delete | 剪切 |
|---|---|
| yank | 复制 |
| put | 粘贴 |
| u | 撤销 |
| ctrl+r | 恢复 |
| yw | 复制当前光标单词 |
| p/P | 粘贴到光标前/光标后 |
| yy | 复制一整行 |
| dd | 删除一整行 |
| ndd | 删除n行 |
| xp | 调换字符位置 |
| dw | 删除当前光标单词 |
| 5dw | 删除正向单词5次 |
| d$ | 删除到行末尾 |
| d^ | 删除到行首 |
| d{hjkl} |
寄存器
查看寄存器里的存储值: :reg
| 默认寄存器 | “” |
|---|---|
| 复制寄存器 | “0 |
| 剪切寄存器 | “1 |
| 有名寄存器 | “a “b “c |
| 黑洞寄存器 | “_ |
修改、查找与替换
| ~ | 单个字符大小写转换 |
|---|---|
| g~w | 单词大小写转换 |
| . | 对上一个动作重复 |
| g~$ 或者 g~~ | 对整行大小写转换 |
| gUw 或者 guw | 对单词大小 对单词小写 (常用) |
| f/F | 正向/反向查找 字符 |
|---|---|
| df+字符 | 删除光标到查找字符间的 字符 |
| /单词 | 通过n向下查找,N向上查找 |
| :s/old/new/g 替换:substitutions | 替换整行 |
| :%s/old/new/g | 全局替换 |
| cw 修改:change | 修改单词 |
缓冲区
用于临时存放vim打开过的文件
缓冲区列表
:files :buffers :ls
1: 缓冲区序列号 %a——指示状态 mysql.conf: 文件名 1:光标位置

| :bn[ext] buffer next | 切换到下一个缓冲区 |
|---|---|
| :bp[revios] | 切换到上一个缓冲区 |
| :bf[irst] | 切换到第一个缓冲区 |
| :bl[ast] | 切换到最后一个缓冲区 |
| :ball | 编辑所有缓冲区 |
| qall! | 退出所有缓冲区 |
| wall! | 写入全部缓冲区 |
| badd 文件名 | 新增缓冲区 |
| bd 文件名 | 删除缓冲区 |
总结: 核心是 :ls :bn :bp
多窗口操作
分屏
| vim -O/on 打开:open | 垂直(左右)/水平(上下) n:数字 |
|---|---|
| ctrl+w c/q | 关闭当前窗口 / 最后一个窗口时退出 |
| ctrl+w s | 上下分割当前打开的文件 |
| ctrl+w v | 左右分割当前打开的文件 |
| :sp 新文件名 | 上下分割,打开新文件 |
| :vsp 新文件名 | 左右(垂直)分割,打开新文件名 |
| ctrl+w hjkl | 上下左右移动 |
| ctrl+w +- | 增加/减少高度 |
| ctrl+w = | 让所有屏的高度一致 |
文本对象和宏
| viw | |
|---|---|
| vaw | |
| vis | |
| vas | |
| va{ | |
| va} | |
| vi{ | |
| vi} | |
宏
用宏来注释
步骤:
- 定位到第一个字母,qa开启宏录制
- i进入插入模式,输入#
- esc退出编辑模式
- j向下一行
- q退出宏录制
- 10@a——执行10次宏操作(即注释
可视化模式
| v | 面向字符 |
|---|---|
| V | 面向行 |
| Ctrl+v | 面向列块 |
| gv | 选中上一次的块 |
| r+字符 | 替换 |
| c ——change | |
| ctrl+v 3j $ A end esc | 选择块->向下选择3行->选择到块尾->A进入插入模式 |
示例
删除包含特定关键字的所有行: :g/keyword/d
查找替换: :%s/find/replace/g
去掉行首空格: :%s/^\s*//g
行首添加: :%s/^/word//g
行尾添加: :%s/$/word/g
查找多个单词并删除: :%s/private\|String\|Boolean//g | 要转义
去掉所有空格: :%s/\s*//g
^代表行首
\s代表空格和tab
+代表匹配一个或多个
$匹配行尾
两个文件按列合并
paste one.txt twxo.txt 
常用快捷键:
U: 撤销
Ctrl+R: 前进
行首: shift+^
行尾: shift+$
