# vim [options] [/path/to/somefile]



默认模式:命令模式,编辑模式

输入模式:

末行模式:


模式转换:

编辑模式 --> 输入模式:

i: insert, 实现在当前光标所在处字符前面转换为输入模式;

a: append, 实现在当前光标所在处字符后面转换为输入模式;

o: 实现在当前光标所在行的下方新建一个空白行并转换为输入模式;

I: 在当前光标所在行的行首转为输入模式;

A: 在当前光标所在行的行尾转为输入模式;

O: 在当前光标所在行的上方新建一行,并转为输入模式;


输入模式 --> 编辑模式:

按下Esc键;


编辑模式 --> 末行模式:

键入:


末行模式 --> 编辑模式:

Esc, Esc


光标跳转:

字符间跳转:

h: 左

l: 右

j: 下

k: 上


#h: 向左侧跳#个字符;


单词间跳转:

w: 后一个单词的词首

e: 跳至当前或下一个单词启尾;

b: 跳至当前或前一个单词启首;


句子间跳转:

): 下一句;

(: 前一句;


段落间跳转:

}: 下一段;

{: 前一段;


行间跳转:

1G, gg:

G:

#G:


行内跳转:

^: 行首的第一个非空白字符

$: 绝对行尾

0: 绝对行首


关闭文件:

在末行模式下:

:w 保存

:q 退出

:! 强制

:wq

: q!

: x

在编辑模式下:

ZZ:保存退出;


qall


打开文件:

vim [options] /path/to/file


vim +# /path/to/file


打开多个文件:

next 下一个;

last 最后一个;

first 第一个;

prev 前一个


-O: 垂直分割窗口

-o:水平分割窗口



编辑命令:

x: 删除单个字符

#x:


d: 删除命令

dw:

db:

de:

d^

d$



dd: 删除光标所在行;

#dd: 删除光标所在行及向下#行;


   在末行模式下使用d命令

末行模式地址定界:

起始地址,结束地址

$: 最后一行;

.: 当前光标所在行;

%: 全文


1,7d

%: 全文

1,$:

1,+6

1,$-2

.,+3


编辑操作可撤消:

u: vim默认会最近50次的操作,u命令可逐一撤消此前的编辑操作;


撤消此前的撤消:Ctrl+r:


粘贴操作:p

paste, put

p


删除的是整行:

p: 在当前光标所在行的下方粘贴;

P:在当前光标所在行的上方粘贴


   删除的不是整行:

p: 在当前光标所在处字符的后方粘贴;

P:在当前光标所在处字符的前方粘贴;


复制:y, yank

yy

#yy 复制#行

y$  从当前行到最后一行复制

y^  从当前行到第一行复制


复制的是整行:

p: 在当前光标所在行的下方粘贴;

P:在当前光标所在行的上方粘贴


   复制的不是整行:

p: 在当前光标所在处字符的后方粘贴;

P:在当前光标所在处字符的前方粘贴;



翻屏:

Ctrl+f: 向文件尾部翻一屏;

Ctrl+b: 向文件首部翻一屏;


Ctrl+d: 向文件尾部翻半屏;

Ctrl+u:向文件首部翻半屏;


文本搜索:

/keyword: 从当前光标所在处向文件尾部查找

?keyword:从当前光标所在处向文件首部查找

n: 下一个,跟查找命令相同的方向

N:前一个,跟查找命令相反的方向


模式

/\

基本表达式:

.

[]

[^]

*

\?

\{m,n\}

\{m\}

^

$

\<

\>

\(\), \1,\2


扩展的正则表达式元字符:

.

[]

[^]

*

?

+

{m,n}

{m}

^

$

\<

\>

a|b|c

()


编辑命令

c:编辑,转换至输入模式

cc

#cc

c


vim可视化模式

visual模式

v: 选中光标划过的字符

V:选中光标划过的行,整行选取


Esc, Esc:回到编辑模式


同一文档窗口分割:

Ctrl+w,s: 水平分割

Ctrl+w,v: 垂直分割


Ctrl+w, 箭头


窗口属性定义:

显示行号:

set number, set nu

set nonumber, set nonu


自动缩进

set autoindent, set ai

set noai


不区分字符大小写

set ignorecase, set ic

set noic


获取帮助:

set


显示匹配的括号:

set showmatch, set sm

set nosm


语法着色:

syntax on

syntax off


搜索高亮显示

set hlsearch

set nohlserach


vim的配置文件:

全局:/etc/vimrc

个人:~/.vimrc



查找替换:

:地址定界s/查找模式/替换成的内容/gi

:地址定界s@查找模式@替换成的内容@gi

global

ignorecase