@nemos
2017-05-06T03:19:14.000000Z
字数 1814
阅读 1062
tools
配置文件在~/.vimrc
无则创建
插件在~/.vim/bundles
中
# 安装 Vundle
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
拷贝配置文件
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call 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