@nemos
        
        2017-05-06T03:19:14.000000Z
        字数 1814
        阅读 1114
    tools
配置文件在~/.vimrc无则创建 
插件在~/.vim/bundles中
# 安装 Vundlegit clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
拷贝配置文件
filetype offset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()Plugin 'VundleVim/Vundle.vim'"""Plugin '你的插件'"""call vundle#end()filetype plugin indent on
:PluginInstall 安装插件
指令速查 

游标移动 

游标移动
H # 移动到屏幕顶部M # 移动到屏幕中部L # 移动到屏幕底部w # 向右至字首W # 向右至字首 (可含標點)e # 向右至字尾E # 向右至字尾 (可含標點)b # 向左至字尾B # 向左至字尾 (可含標點)0 # 行首$ # 行尾^ # 行內第一個非空白字符g_ # 行內最後一個非空白字符gg # 文件第一行G # 文件最後一行5G # 跳至第 5 行fx # 跳至字元 x 下次出現的位置tx # 跳至字元 x 下次出現位置的上一個字符} # 跳至下一段{ # 跳至上一段Ctrl + b # 向上捲動一個視窗Ctrl + f # 向下捲動一個視窗Ctrl + d # 向下捲動半個視窗Ctrl + u # 向上捲動半個視窗
插入模式
i # 游标前a # 游标后I # 行首A # 行尾o # 下一行O # 上一行ea # 单词词尾Esc # 退出插入模式
编辑
| 指令 | 意义 | 
|---|---|
i | 
 进入插入模式 | 
x | 
 删除光标所在的一个字符 | 
:wq | 
 保存+退出 | 
dd | 
 删除当前行,并将删除的行保存到剪贴板中 | 
hjkl | 
 光标移动 | 
:help | 
 显示帮助 | 
各种插入模式
| 指令 | 意义 | 
|---|---|
a | 
 光标后插入 | 
o | 
 下面插入一个新行 | 
O | 
 上面插入一个新行 | 
cw | 
 替换光标所在的单词 | 
简单光标移动
| 指令 | 意义 | 
|---|---|
0 | 
 移动到行头 | 
^ | 
 到本行第一个非空字符处 | 
$ | 
 到行尾 | 
g_ | 
 到本行最后一个非空字符处 | 
/patten | 
 正则匹配,n到下一个 | 
简单编辑命令
| 指令 | 意义 | 
|---|---|
p/P | 
 在当前位置之后/之前粘贴 | 
yy | 
 拷贝当前行相当于ddP | 
u | 
 撤销 | 
<C-r> | 
 重做 | 
:e <file> | 
 打开文件 | 
:w | 
 保存 | 
:saveas <filename> | 
 保存为 | 
:x, ZZ, :wq | 
 保存并退出 | 
q! | 
 退出不保存,!qa退出不保存所有当前正在编辑的文件 | 
:bn, :bq | 
 下上切换打开的文件 | 
命令的重复
| 指令 | 意义 | 
|---|---|
. | 
 重复上一次的命令 | 
N<command> | 
 重复某个命令N次 | 
2dd | 
 删除两行 | 
3p | 
 粘贴三次 | 
100idesu[ESC] | 
 会写下一百次desu | 
光标移动
| 指令 | 意义 | 
|---|---|
NG | 
 到第N行或者:N到第N行 | 
gg | 
 到第一行 | 
G | 
 到最后一行 | 
w | 
 下一个单词的开头 | 
e | 
 下一个单词的结尾 | 
W | 
 语句开头 | 
E | 
 语句结尾 | 
% | 
 在括号头尾进行移动 | 
*, # | 
 匹配光标所在单词并进行下上移动 | 
命令组合
| 指令 | 意义 | 
|---|---|
<start><command><end> | 
 命令组合 | 
0y$ | 
 先到行头,拷贝,到本行最后一个字符 | 
当行
| 指令 | 意义 | 
|---|---|
0 | 
 行头 | 
^ | 
 本行第一个非空 | 
$ | 
 行尾 | 
g_ | 
 最后一个非空 | 
fa | 
 找到下一个为a的字符处 | 
ta | 
 找到下一个为a的字符前 | 
3fa | 
 重复三次 | 
F, T | 
 反向 | 
dt" | 
 删除所有内容知道遇到" | 
区域选择 
基本格式: <action>a,i<object> 
- action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。 
- object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。 
示例代码: (map (+) ("foo")) 
![区块选择][10]
| 指令 | 选择区域 | 
|---|---|
vi" | 
 foo | 
va" | 
 "foo" | 
vi( | 
 "foo" | 
va( | 
 ("foo") | 
v2i) | 
 map (+) ("foo") | 
v2a) | 
 (map (+) ("foo")) | 
块操作 
基本操作: 0, <C-v>, <C-d>, I--, [ESC]
| 指令 | 意义 | 
|---|---|
0 | 
 到行头 | 
<C-v> | 
 开始块操作 | 
<C-d> | 
 向下移动 | 
I-- | 
 I是插入,插入“--” | 
[ESC] | 
 为每一行生效 | 
自动补全 
<C-n>,  <C-p> 
宏录制 
录制一个删除第一行字符的宏
| 指令 | 意义 | 
|---|---|
qa | 
 q开始录制,a指定寄存器名称 | 
0 | 
 回到行首 | 
x | 
 删除一个字符 | 
j | 
 到下一行 | 
q | 
 停止录制 | 
@a | 
 使用寄存在a中的宏 | 
10@a | 
 重复宏十次 | 
@@|使用最新录制的宏| 
块选择
| 指令 | 意义 | 
|---|---|
v, V, <c-v> | 
 开始选择块 | 
J | 
 将每一行连接 | 
<> | 
 左右缩进 | 
= | 
 自动缩进 | 
分屏
| 指令 | 意义 | 
|---|---|
:split | 
 创建分屏 | 
:vsplit | 
 垂直分屏 | 
<C-w>+dir | 
 切换分屏 | 
| `_, | ` | 
<C-w>+, - | 
 增加尺寸 | 
给想学习VIM的超级小白的文章 
简明 Vim 练级攻略 
A Great Vim Cheat Sheet