VIM常用

来源:互联网 发布:ysbn免费网络 编辑:程序博客网 时间:2024/05/16 09:32
1 光标移动
fx :前行向后移动光标到x字母(按f键后按要查找的字符x),光标到x处,用;重复上一个f命令
tx :光标到x前
Fx/Tx :与小写的相同使用,方向相反

w :光标移到下一个单词
b :光标移到上一个单词

) :光标移到下一个句子
( :光标移到上一个句子

ctrl + f : 向下翻页
ctrl + b :向上翻页
ctrl + d :向下翻半页
ctrl + u :向上翻半页

H :光标移动到屏幕上面
M :光标移动到屏幕中间
L :光标移动到屏幕最下面

m[a-z] :在当前光标的位置标记一个书签,名字为a,书签名只能是小写字母
`书签名 :光标移到书签名处
`. :光标移动到上次编辑的地方

% :光标跳到匹配的括号内({}、[]、())

[[ :向前跳到顶格的第一个{
[] :向前跳到顶格的第一个}
][ :向后跳到顶格的第一个{
]] :向后跳到顶格的第一个}
[{ :跳到本代码块(由{}界定)的开头
[} :跳到本代码块的结尾

2 替换
:s/SEARCH/REPLACE :替换
:%s/SEARCH/REPLACE : 全文替换
:1,3 s/man/woman : 1到3行进行替换
:g/^\s*$/,/\S/-j|s/.*// :g命令定位空行或仅包含空格的行,j命令进行合并

3 合并行
J :在某行上输入J,将下一行与改行合并为一行

4 查找:
#/g# :从光标向后查找整个关键字
*/g* :从光标向前查找整个关键字
/\$[0-9]*\.[0-9][0-9] :匹配$XXXX...XX.XX有且只有2位小数。
. :代替一个字符;
* :表示一个或多个字符的重复
\<和\> :制定单词边界。eg:/\<d[a-z]*an\>以d开头an结尾中间含有任意多小写字母

5 宏
q[a-z] :开始记录操作,记录到寄存器[a-z]中
q :停止记录
@[a-z] :执行寄存器中得操作
@@ :执行最近寄存器中记录的操作
eg:文件中有两行:
sys/type.h
stdio.h
要改写为——>
#include <sys/type.h>
#include <stdio.h>
在第一行一次进行:qa^i、#include <、esc$a、>、esc、q——加粗为命令
光标移到第二行:@a

6 删除
dd :删除一行,其实质为剪切到寄存器。
ddp :交换当前行与下一行位置(剪切当前行,在下一行粘贴)
cc/S :删除一行后进入insert模式
dw :删除一个单词
cw :删除一个单词进入insert
x/dl :删除一个字符
xp :交换两个字符
s/cl :删除一个字符并进入insert
ctrl+r :重做
. :重复上一次修改

7 可视模式
ctrl+v :进入基于块的可视模式
v :进入基于字符的可视模式
V :进入基于行的可视模式
c :删除选定的块
I{String}esc :选定块后按I,输入字符串,在esc,在快内的每一行插入相同string

8 寄存器
:reg :列出已经使用的寄存器及其中内容
"kyy :复制一行到寄存器k
"kp :将寄存器中得内容粘贴出来

9 代码编写
插入模式中使用ctrl+n 或 ctrl+p 联想之前输入过的字符串
]p :粘贴功能的基础上增加缩进
> :缩进选中行
< :反缩进
gd :到达光标所在处的函数或变量的定义处
K :在main中查找光标所在处的单词
0 0
原创粉丝点击