layout: "post"
title: "vim2"
date: "2019-03-15 11:15"

<h4 id="title-0">常规操作</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">x
</td>
<td style="text-align: left;">删除光标下的字符
</td>
</tr>
<tr>
<td style="text-align: left;">X
</td>
<td style="text-align: left;">删除光标左边的字符
</td>
</tr>
<tr>
<td style="text-align: left;">s
</td>
<td style="text-align: left;">修改一个字符(与r的区别,修改后直接进入Insert模式)
</td>
</tr>
<tr>
<td style="text-align: left;">i
</td>
<td style="text-align: left;">光标前插入字符
</td>
</tr>
<tr>
<td style="text-align: left;">a
</td>
<td style="text-align: left;">光标后插入字符
</td>
</tr>
<tr>
<td style="text-align: left;">A
</td>
<td style="text-align: left;">行尾插入字符
</td>
</tr>
<tr>
<td style="text-align: left;">o
</td>
<td style="text-align: left;">光标下方新建一行并进入Insert模式
</td>
</tr>
<tr>
<td style="text-align: left;">O (字母)
</td>
<td style="text-align: left;">光标上方新建一行并进入Insert模式
</td>
</tr>
<tr>
<td style="text-align: left;">r
</td>
<td style="text-align: left;">替换字符(单个)
</td>
</tr>
<tr>
<td style="text-align: left;">R
</td>
<td style="text-align: left;">替换字符(多个)
</td>
</tr>
<tr>
<td style="text-align: left;">cw
</td>
<td style="text-align: left;">替换文本直到单词末尾(ce也可)
</td>
</tr>
<tr>
<td style="text-align: left;">c$
</td>
<td style="text-align: left;">替换文本直到行尾
</td>
</tr>
<tr>
<td style="text-align: left;">dw
</td>
<td style="text-align: left;">删除单词 (de, d2w)
</td>
</tr>
<tr>
<td style="text-align: left;">d$
</td>
<td style="text-align: left;">删除到行尾
</td>
</tr>
<tr>
<td style="text-align: left;">D
</td>
<td style="text-align: left;">删除到行尾
</td>
</tr>
<tr>
<td style="text-align: left;">S
</td>
<td style="text-align: left;">删除到行为,并进入Insert模式
</td>
</tr>
<tr>
<td style="text-align: left;">dd
</td>
<td style="text-align: left;">删除整行
</td>
</tr>
<tr>
<td style="text-align: left;">y
</td>
<td style="text-align: left;">复制
</td>
</tr>
<tr>
<td style="text-align: left;">yy
</td>
<td style="text-align: left;">复制整行 (yw, ye)
</td>
</tr>
<tr>
<td style="text-align: left;">p
</td>
<td style="text-align: left;">粘贴到光标之后
</td>
</tr>
<tr>
<td style="text-align: left;">P
</td>
<td style="text-align: left;">粘贴到光标之前
</td>
</tr>
<tr>
<td style="text-align: left;">u
</td>
<td style="text-align: left;">撤销
</td>
</tr>
<tr>
<td style="text-align: left;">.
</td>
<td style="text-align: left;">重复上一次操作</td>
</tr>
<tr>
<td style="text-align: left;">:!
</td>
<td style="text-align: left;">执行外部名 (:!dir/:ls)
</td>
</tr>
<tr>
<td style="text-align: left;">%
</td>
<td style="text-align: left;">查找配对的括号 ), }, ]
</td>
</tr>
<tr>
<td style="text-align: left;">v motion :w
</td>
<td style="text-align: left;">选择性保存
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + D
</td>
<td style="text-align: left;">查看可能的补全
</td>
</tr>
</tbody></table>

<h4 id="title-0">光标移动</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>

<tr>
<td style="text-align: left;">h
</td>
<td style="text-align: left;">左
</td>
</tr>
<tr>
<td style="text-align: left;">l
</td>
<td style="text-align: left;">右
</td>
</tr>
<tr>
<td style="text-align: left;">k
</td>
<td style="text-align: left;">上
</td>
</tr>
<tr>
<td style="text-align: left;">j
</td>
<td style="text-align: left;">下
</td>
</tr>
<tr>
<td style="text-align: left;">0 (数字)
</td>
<td style="text-align: left;">行首
</td>
</tr>
<tr>
<td style="text-align: left;">$
</td>
<td style="text-align: left;">行尾
</td>
</tr>
<tr>
<td style="text-align: left;">w
</td>
<td style="text-align: left;">下一个单词起始处
</td>
</tr>
<tr>
<td style="text-align: left;">nw (2w)
</td>
<td style="text-align: left;">n可为数字,表示移动两个单词
</td>
</tr>
<tr>
<td style="text-align: left;">e
</td>
<td style="text-align: left;">单词末尾(与w的区别)
</td>
</tr>
<tr>
<td style="text-align: left;">gg
</td>
<td style="text-align: left;">文件起始处
</td>
</tr>
<tr>
<td style="text-align: left;">G
</td>
<td style="text-align: left;">文件末尾处
</td>
</tr>
</tbody></table>

<h4 id="title-0">退出</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>

<tr>
<td style="text-align: left;">:wq
</td>
<td style="text-align: left;">保存并退出
</td>
</tr>
<tr>
<td style="text-align: left;">ZZ
</td>
<td style="text-align: left;">保存并退出
</td>
</tr>
<tr>
<td style="text-align: left;">:q!
</td>
<td style="text-align: left;">丢弃修改并退出 (q退出,有修改的话q不能退出)
</td>
</tr>
<tr>
<td style="text-align: left;">:e!
</td>
<td style="text-align: left;">丢弃修改并打开原文件
</td>
</tr>
</tbody></table>

<h4 id="title-0">查找并替换</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>

<tr>
<td style="text-align: left;">:s/old/new/g
</td>
<td style="text-align: left;">查找old并替换为new,g代表整行匹配
</td>
</tr>
<tr>
<td style="text-align: left;">:#, #s/old/new
</td>
<td style="text-align: left;">#, #代表首尾行号
</td>
</tr>
<tr>
<td style="text-align: left;">:%s/old/new/g
</td>
<td style="text-align: left;">全文匹配替换
</td>
</tr>
<tr>
<td style="text-align: left;">:%s/old/new/gc
</td>
<td style="text-align: left;">全文匹配替换,并每次替换会弹出确认提示
</td>
</tr>
</tbody></table>

<h4 id="title-0">翻页</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>

<tr>
<td style="text-align: left;">Ctrl + e
</td>
<td style="text-align: left;">向下滚动一行
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + y
</td>
<td style="text-align: left;">向上滚动一行
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + f
</td>
<td style="text-align: left;">向下翻一页
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + b
</td>
<td style="text-align: left;">向上翻一页
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + u
</td>
<td style="text-align: left;">向上翻半页
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + d
</td>
<td style="text-align: left;">向下翻半页
</td>
</tr>
</tbody></table>

<h4 id="title-0">文件操作</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">:e + filename
</td>
<td style="text-align: left;">打开新文件
</td>
</tr>
<tr>
<td style="text-align: left;">:r + filename
</td>
<td style="text-align: left;">读取文件并插入到当前文件
</td>
</tr>
</tbody></table>

<h4 id="title-0">选项设置</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>

<tr>
<td style="text-align: left;">:set ic
</td>
<td style="text-align: left;">忽略大小写
</td>
</tr>
<tr>
<td style="text-align: left;">:set is
</td>
<td style="text-align: left;">部分匹配(like)
</td>
</tr>
<tr>
<td style="text-align: left;">:set hls
</td>
<td style="text-align: left;">高亮匹配
</td>
</tr>
<tr>
<td style="text-align: left;">:set nu
</td>
<td style="text-align: left;">显示行号
</td>
</tr>
</tbody></table>

<h4 id="title-0">分屏启动vim</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>

<tr>
<td style="text-align: left;">vim -on file1 file2...
</td>
<td style="text-align: left;">水平分屏
</td>
</tr>
<tr>
<td style="text-align: left;">vim -On file1 file2...
</td>
<td style="text-align: left;">垂直分屏
</td>
</tr>
</tbody></table>

<h4 id="title-0">关闭分屏</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">Ctrl + w  c
</td>
<td style="text-align: left;">关闭当前窗口(如果是最后一个,无法关闭)
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + w q
</td>
<td style="text-align: left;">关闭当前窗口(如果是最后一个,则退出vim)
</td>
</tr>
</tbody></table>

<h4 id="title-0">分屏</h4>

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">Ctrl + w s
</td>
<td style="text-align: left;">上下分屏
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + w v
</td>
<td style="text-align: left;">左右分屏
</td>
</tr>
<tr>
<td style="text-align: left;">:sp filename
</td>
<td style="text-align: left;">左右分屏,且打开一个新的文件
</td>
</tr>
<tr>
<td style="text-align: left;">:vsp filename
</td>
<td style="text-align: left;">上下分屏,且打开一个新的文件
</td>
</tr>
</tbody></table>

<h4 id="title-0">切换分屏</h4>标切换)**

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">Ctrl + w l
</td>
<td style="text-align: left;">右边
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + w h
</td>
<td style="text-align: left;">左边
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + w j
</td>
<td style="text-align: left;">上边
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + w k
</td>
<td style="text-align: left;">下边
</td>
</tr>
</tbody></table>

<h4 id="title-0">分屏尺寸调整</h4>

  • TIPS: (上下分屏生效)

<table>
<thead>
<tr>
<th style="text-align: left;">命令</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">Ctrl + w =
</td>
<td style="text-align: left;">所有屏一样高度
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + w +
</td>
<td style="text-align: left;">增加高度
</td>
</tr>
<tr>
<td style="text-align: left;">Ctrl + w -
</td>
<td style="text-align: left;">减少高度
</td>
</tr>
</tbody></table>