admin 管理员组

文章数量: 887032

VIM的命令挺多,网上一搜也有很多总结,一下子看那么多也记不住,还是要在实战中去学习,以下是自己平常用到的一些命令,记录一下。
vim下记录屏幕显示的工具
script myfile_name //一些操作
exit
此时所有的操作都记录在myfile_name文件中
/ 后面输入字符进行搜索 * 向后搜索光标所在位置的单词
# 向前搜索光标所在位置的单词
n和N可以继续向后或向前搜索匹配的字符串
:set hlsearch 高亮所有匹配字符串
:nohlsearch 临时关闭,他的缩写形式是::noh
:set nohlsearch 彻底关闭,只有重新:set hlsearch才可以高亮搜索
:set ignorecase  - 查找内容忽略大小写
:set noignorecase - 返回精确匹配
:set nu   设定资料的行号。
:set nonu  取消行号设定。
:set ai   自动内缩。
:set noai   取消自动内缩。
:set tabstop=4 设置tab键等于4个空格

"/was$"只匹配位于一行末尾的单词was,所以"/^was"只匹配位于一行开始的单词was。
用"/the"来查找Vim也会匹配到"there"。要查找作为独立单词的"the"使用如下命令:"/the\>"
"\>"是一个特殊的记法,它只匹配一个word的结束处。近似地,"\<"匹配到一个word的开始处。
/pattern 从光标开始向文件尾搜索pattern
?pattern 从光标开始向文件首搜索pattern
:s/p1/p2/g 将当前行中所有 p1 均用 p2 替代
:n1,n2s/p1/p2/g 将第 n1 至 n2 行中所有 p1 均用 p2 替代
:g/p1/s//p2/g 将文件中中所有 p1 均用 p2 替代


yw : 从光标处开始往后复制一个单词
y3w : 从光标处开始往后复制3个单词
yy : 复制一行
3yy : 复制3行 yw 复制一个word
y^ 复制当前到行头
y$ 复制当前到行尾
yG 复制到档尾
d命令同上
p :粘贴
x 删除当前光标下的字符("dl"的快捷命令)
X 删除当前光标之前的字符("dh"的快捷命令)
D 删除自当前光标至行尾的内容("d$"的快捷命令)
dw 删除自当前光标至下一个word的开头
db 删除自当前光标至前一个word的开始
diw 删除当前光标所在的word(不包括空白字符)
daw 删除当前光标所在的word(包括空白字符)
dG 删除当前行至文件尾的内容
dgg 删除当前行至文件头的内容

D: 删除光标至行末
w(W): 下一个单词 e(E): 单词词尾
J:合并光标所在行 和 其下一行
s: 删除字符并插入,相当于:先x,后i
S:删除当前行并插入,相当于:先dd,回车,后i
r:替换字符
R:替换模式,类似于按了insert,你输入的替换后面的
p: 在后面粘贴
P:在前面粘贴   
u : 撤销一次操作
U :撤销对一行的全部操作
v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。
V   从光标当前行开始,光标经过的行都会被选中,再按一下V结束。
Ctrl + v  从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束
h : 向左移动
j :向下移动
k :向上移动
l :向右移动
H:光标移至屏幕顶行
M:光标移至屏幕中间
L:光标移至屏幕最后行
0:(数字零)光标移至当前行行首
$:光标移至当前行行尾 % :跳转到与当前光标下的括号相匹配的那一个括号上去

ZZ (x) :保存当前文件并退出Vim

在vim模式下希望浏览目录和多个文件
:E  
Ctrl + ^ : 两个文件间快速切换

附一张vim操作图


以下部分是转载的,总结的比较全面,重要的是可读性很好,所以搬到这里来,随时学习, check here。

###光标移动(Cursor Movement)

命令作用(解释)
h,j,k,lh表示往左,j表示往下,k表示往右,l表示往上
Ctrl+f上一页
Ctrl+b下一页
w, e, W, E跳到单词的后面,小写包括标点
b, B以单词为单位往前跳动光标,小写包含标点
O开启新的一行
^一行的开始
$一行的结尾
gg文档的第一行
[N]G文档的第N行或者最后一行

###插入模式(Insert Mode)

命令作用(解释)
i插入到光标前面
I插入到行的开始位置
a插入到光标的后面
A插入到行的最后位置
o, O新开一行
Esc关闭插入模式

###编辑(Editing)

命令作用(解释)
r在插入模式替换光标所在的一个字符
J合并下一行到上一行
s删除光标所在的一个字符, 光标还在当行
S删除光标所在的一行,光标还在当行,不同于dd
u撤销上一步操作
ctrl+r恢复上一步操作
.重复最后一个命令
~变换为大写
[N]>>一行或N行往右移动一个tab
[N]<<一行或N行往左移动一个tab

###关闭(Exiting)

命令作用(解释)
:w保存
:wq, :x保存并关闭
:q关闭(已保存)
:q!强制关闭

###搜索(Search)

命令作用(解释)
/pattern搜索(非插入模式)
?pattern往后搜索
n光标到达搜索结果的前一个目标
N光标到达搜索结果的后一个目标

###视觉模式(Visual Mode)

命令作用(解释)
v选中一个或多个字符
V选中一行

###剪切和复制(Cut and Paste)

命令作用(解释)
dd删除一行
dw删除一个单词
x删除后一个字符
X删除前一个字符
D删除一行最后一个字符
[N]yy复制一行或者N行
yw复制一个单词
p粘贴

###窗口操作

命令作用(解释)
:split水平方向分割出一个窗口
:vsplit垂直方向分割出一个窗口
:close关闭窗口
Ctrl+W切换窗口, h到左边窗口,j到下方窗口,k到上方窗口,l到右边窗口


本文标签: 命令 vim