@nemos
2017-05-06T03:19:14.000000Z
字数 1814
阅读 1124
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