Sky's blog

我和我追逐的梦

常用链接

统计

其他链接

友情链接

最新评论

vi常用命令

用了vi两年,因为不用vi写代码作开发,只是简单的修改配置文件而已,因此,呵呵,两年了还是一点不熟悉。最近因为公司要求需要学习在linux/unix上开发c/c++,只好努力学一下vi/vim了。

找了一本书,O'Reilly的Learning The VI Editor,chm的电子版本,认真地学了一遍,总结了一下常用命令:

文件操作
vi +n file 打开文件并移动到第n行
vi +  file 打开文件并移动到最后一行
vi R file / view file  只读打开文件
:w  保存
:w!  覆盖已存在的文件文件
:w newfile 保存为新文件
:wq  保存并退出
ZZ  保存并退出=:wq
:q  退出
:q!  退出不保存修改
:e!  退回到上一次保存的状态
:1,10w newfile 将第一行到第10行保存为新文件
:.,$w >> file 将当前位置到结尾的内容添加到别的文件
:r file  读取file文件的内容

移动
Numeric + h|j|k|l 执行n次操作
h  向左移动(一个字符)
j  向下移动一行
k  向上移动一行
l  向右移动(一个字符) 
e/E  移动到单词的末尾
(/)  移动到当前(一下)句的开始
{/}  移动到当前(一下)段的开始
[[/]]  移动到当前(一下)部分的开始
0  移动到行首
$  移动到行末
w  向后移动一个文本块
W  向后移动一个文本块(忽略标点)
b  向前移动一个文本块
B  向前移动一个文本块(忽略标点)
^  移动到当前行的第一个非空白字符
回车/+  移动到下一行的开头的第一个字符
-  移动到上一行的开头的第一个字符
CTRL-F  下翻一屏
CTRL-B  上翻一屏
CTRL-D  下翻半屏
CTRL-U  下翻半屏
z + 回车 将当前行移到屏幕顶部
z.  将当前行移到屏幕中间
z-  将当前行移到屏幕底部
CTRL-L/CTRL-R 重新刷新屏幕 
H  移到屏幕的第一行
nH  移到屏幕的第n行
M  移到屏幕的中间
L  移到屏幕的最后一行
nL  移到屏幕的最后一行前的n行
CTRL-L  显示行信息
G  移动到文件的最后一行
nG  移动到文件的第n行
``  移动到上一个位置

编辑
i  在当前位置前插入
I  在行首插入
a  在当前位置后添加
A  在行末添加
o  在当前行下方新建一个空行开始插入
O  在当前行上方新建一个空行开始插入
s  删除当前字符然后进入插入状态
S  删除当前行然后进入插入状态
cw  修改当前词语(删除然后进入插入状态)
 c2b 删除前面两个词语 
 c$ 删除本行当前位置后所有的内容
 c0 删除本行当前位置前所有的内容
cc  修改当前行(删除然后进入插入状态)
r  替换当前字符(还保持命令状态)
R  连续替换(进入替换状态)
~  修改当前字符的大小写
J  连接两行

标记
mx  将当前位置标记为x
'x  移动到标记为x的行
`x  移动到标记为x的位置
``/''  在两次位置间切换

删除
dw  删除一个单词
d2w  删除两个单词
dd  删除当前行
d3d  删除3行
d0  删除当前行中在光标前的所有内容
d$/D  删除当前行中在光标后的所有内容
db  删除前一个单词
x  删除一个字符
3x  删除3个字符

移动
p  粘贴
xp  相当于交换两个字符的位置
yw  复制一个单词

.  重复上一个操作
.  取消上一个操作

 

搜索
/pattern 从前往后搜
?pattern 从后往前搜
n/N  和上一词搜索方向相同(相反)再搜
fx/Fx  在同一行中查找下(上)一个x字符并移动光标

替换
:s/old/new 替换当前行的第一个匹配
:s/old/new/g 替换当前行的全部匹配
:1,100s/old/new/g 替换1-100行的全部匹配
:1,$s/old/new/g 替换全部匹配=:%s/old/new/g
:g/pattern/s/old/new/g 查找满足pattern条件的行并进行替换


命令组合:
Change Delete Copy from Cursor to ...
cH dH yH top of screen
cL dL yL bottom of screen
c+ d+ y+ next line
c5| d5| y5| column 5 of current line
2c) 2d) 2y) second sentence following
c{ d{ y{ previous paragraph
c/pattern d/pattern y/pattern pattern
cn dn yn next pattern
cG dG yG end of file
c13G d13G y13G line number 13
(这里还是看书里面的原文吧。)

posted on 2006-09-05 10:55 sky ao 阅读(1224) 评论(0)  编辑  收藏 所属分类: linux


只有注册用户登录后才能发表评论。


网站导航: