Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1438176
  • 博文数量: 704
  • 博客积分: 10140
  • 博客等级: 上将
  • 技术积分: 6230
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-15 20:41
文章分类

全部博文(704)

文章存档

2013年(1)

2012年(16)

2011年(536)

2010年(151)

分类: C/C++

2011-04-02 11:54:56

文本格式转换
============
将DOS格式文本转成Unix格式文本,命令如下: 
:1,$s/^M//g 
其中^M是同时Ctrl+V+M按出来的,表示回车。 
或者:set ff=unix
 
在行首尾添加字符串
=================
用下列命令在文本每行的行首添加字符串“NewString”,请注意空格的存在。 
:g/^/s//NewString/g 
:%s/^/NewString/g
用下列命令在每行的行尾添加字符串“NewString”: 
:g/$/s//NewString/g 
:%s/$/NewString/g
从文本的第3行至最后一行的行首全部插入字符串“NewString”: 
:3,$s/^/NewString/
在整个文件中替换特定字符串,所用的命令如下: 
:%s/old_string/new_string/g
如果仅将文件中的第3行到第7行中的“old_string”替换成“new_string”,那么使用下列命令: 
:3,7s/old_string/new_string/
 
注意,其中“s”为表示替换动作,“%”表示所有行,“g”表示全文,“^”表示行首,“$”表示行
尾。 


vim --version 查看vim版本及其可用模块
 
* 正向搜索光标所在单词
# 反向搜索光标所在单词

:nohl 取消搜索高亮
d0: 删至行首
d$: 删至行尾
gf 在新窗口中打开光标所在文件
:vsplit file.c来竖直分割当前屏幕编辑file.c文件。类似的有edit,split
:make 编译文件,事先需编写makefile文件
:copen 可以打开一个调试窗口,显示出错信息
:line_number 跳到某行
:!cmd 执行某个cmd命令,例如shell中的ls,或者编译产生的可执行文件./bin_file

进入vi的命令
============
vi filename: 打开或新建文件,并将光标置于第一行首
vi +n filename: 打开文件,并将光标置于第n行首
vi + filename: 打开文件,并将光标置于最后一行首
vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename: 在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename: 打开多个文件,依次进行编辑
n+: 光标下移n行
n-: 光标上移n行
H: 光标移至屏幕顶行
M: 光标移至屏幕中间行
L: 光标移至屏幕最后行
0: 光标移至当前行首
$: 光标移至当前行尾
 
屏幕翻滚类命令
==============
Ctrl+u: 向文件首翻半屏
Ctrl+d: 向文件尾翻半屏
Ctrl+f: 向文件尾翻一屏
Ctrl+b: 向文件首翻一屏
nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。输入后按Enter键。
 
搜索及替换命令
==============
/pattern: 从光标开始处向文件尾搜索pattern
?pattern: 从光标开始处向文件首搜索pattern
n: 在同一方向重复上一次搜索命令
N: 在反方向上重复上一次搜索命令
:s/p1/p2/g: 将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g: 将文件中所有p1均用p2替换
 
最后行方式命令
==============
:n1,n2 co n3: 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d: 将 n1行到n2行之间的内容删除
:!command: 执行shell命令command
:n1,n2 w!command: 将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表
示将整个文件内容作为command的输入
:r!command: 将命令command的输出结果放到当前行
 
寄存器操作
==========
"?nyy: 将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw: 将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl: 将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p: 取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd: 将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中


阅读(511) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~