VIM

插件

syntastic

语法检查

flake8

Python语法检查插件

sudo apt-get install python-flake8

NerdTree

VIM中浏览文件的插件

常用命令

查找

按下/键,输入想要查询的内容,回车即可;

n:跳到下一个匹配的内容; N:跳到上一个匹配的内容。

全局查找

:vimgrep 搜索文本 搜索路径/**  
用上面命令搜索后,用下面命令进一步查找。
:cn[ext]      跳到下一个匹配文本
:cp[revious]  跳到上一个匹配文本
:cnf[ile]     跳到下一个文件
:cpf[ile]     跳到上一个文件
:cr[ewind]    跳到开始位置
:cla[st]      跳到结束位置

替换

”s”代表替换,part1代表查找的内容,part2代表替换的内容,”%”代表所有行,”g”代表替换整行里所有的内容(如果不加”/g”则只替换每行第一个匹配part1的地方)

:s/part1/part2         # 用part2替换当前行中第1个part1
:s/part1 /part2/g      # 用part2替换当前行中所有的part1
:%s/part1/part2        # 用part2替换所有行中每行第1个part1
:%s/part1/part2/g      # 用part2替换所有行中所有的part1
:2,50s/part1 /part2    # 用part2替换第2行到第50行中每行第1个part1
:2,50s/part1/part2/g   # 用part2替换第2行到第50行中所有的part1
:.,+3s/part1/part2     # 用part2替换当前行以及当前行后面的三行中每行第1个part1
:.,+3s/part1/part2/g   # 用part2替换当前行以及当前行后面的三行中所有的part1

复制/粘贴

y表示拷贝, d表示删除, p表示粘贴。

yw     表示拷贝从当前光标到光标所在单词结尾的内容.
dw     表示删除/剪切从当前光标到光标所在单词结尾的内容.
y0     表示拷贝从当前光标到光标所在行首的内容.
d0     表示删除/剪切从当前光标到光标所在行首的内容.
y$     表示拷贝从当前光标到光标所在行尾的内容.
d$     表示删除/剪切从当前光标到光标所在行尾的内容.
yfa    表示拷贝从当前光标到光标后面的第一个a字符之间的内容.
dfa    表示删除/剪切从当前光标到光标后面的第一个a字符之间的内容.
yy     表示拷贝光标所在行.
dd     表示删除/剪切光标所在行.
D      表示删除/剪切从当前光标到光标所在行尾的内容.

缩进

在不同的模式中调整缩进的方法不同,

插入模式:Ctrl+T增加缩进,Ctrl+D减小缩进。

命令模式:» 右缩进,« 左缩进,注意n« 或 n»是缩进多行,如4»

可视模式:< 、 > 用于左右缩进, n< 、 n> 可做多节缩进,如 2> 。

多行注释

  1. Ctrl+V 进入列模式,向下或向上移动光标,把需要注释的行的开头标记起来;然后按大写的I,再插入注释符(比如#);再按Esc,就会全部注释。

  2. 使用替换方式进行多行注释

:s/^/#              # 用"#"注释当前行
:2,50s/^/#          # 在2~50行首添加"#"注释
:.,+3s/^/#          # 用"#"注释当前行和当前行后面的三行
:%s/^/#             # 用"#"注释所有行

字符映射

输入mail会变成邮箱

:ab mail example@gmail.com

快速移动光标

w(e)      移动光标到下一个单词.
b         移动光标到上一个单词.
0         移动光标到本行最开头.
^         移动光标到本行最开头的字符处.
$         移动光标到本行结尾处.
H         移动光标到屏幕的首行.
M         移动光标到屏幕的中间一行.
L         移动光标到屏幕的尾行.
gg        移动光标到文档首行.
G         移动光标到文档尾行.
c-f       (即ctrl 键与f 键一同按下) 本命令即page down.
c-b       (即ctrl 键与b 键一同按下, 后同) 本命令即page up.
''        此命令相当有用, 它移动光标到上一个标记处, 比如用gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置.
'.        此命令相当好使, 它移动光标到上一次的修改行