unix使用经验交流—vi(转)

王朝system·作者佚名  2006-01-08
宽屏版  字体: |||超大  

unix使用经验交流—vi(转)

网易虚拟社区 http://club.netease.com null

返回〗〖转发〗

unix使用经验交流

鉴于当前unix方面的书籍很多仅是翻译甚或抄袭,质量不高,而价格不菲,现根据使用经验,写出以下内容以供交流。欢迎大家任意转载使用。如果大家能有什么收获,我就很高兴了。如果有什么错误之处,或需要讨论的问题,欢迎大家来信。Mail:zhms@netease.com 。本人用过SGI IRIX,SUN OS,HP-UX及SCO UNIX,认为各种版本UNIX的工具基本上还是一致的,以下以SCO UNIX作为对象(因为现手边只有SCO UNIX)。

unix使用经验交流—vi(1)

对软件开发来说,工具并非关键的问题,但工具的使用对提高效率的作用是无可置疑的。

1. vi的常用设置:(编辑${HOME}目录下文件.exrc)

set ai 设置自动缩进

set sw=4 设置移动宽度

set ts=4 设置制表位置

2. vi的光标移动

h j k l 右下上左移动一个位置

w b e W B E 按单词移动

( ) { } 按句、段移动

$ ^ 0 行首、行尾

H M L 顶、中间、末尾

G | 给定行、列

Ctrl-U/F/D/B 滚动(半)屏

3. 文本的修改和删除

cw,c[n]w 字修改

c0,c$,cc,[n]cc 行修改

c{,c} 段修改

dw,d[n]w 字剪切

d0,d$,[n]dd 行剪切

d{,d} 段剪切

4. 移位

>>, [n]>> 一行和n行移位

5. 查找和替换

f[x],F[x],t[x],T[x],,,; 在行上查找字符

/[string],?[string] 全文查找字符串

r,R,s,S 替换字符,行

: [LineNum],[LineNums]/[old string]/[new string]/g

: [LineNum],[LineNums]?[old string]?[new string]?g

6. 移动和拷贝

: [LineNum,LineNum]m[LineNum] 移动

: [LineNum,LineNum]t[LineNum] 拷贝

yw, y[n]w 字拷贝

y(, y[n]c 句拷贝

yy,y[n]y 行拷贝

y{,y} 段拷贝

p,P 粘贴

7. 文件间拷贝

“[x](,”[x]),”[x]y{,”[x]y} 拷贝

“[x]p,”[x]P 粘贴

8. 其他

^v 输入控制字符

: r ![command] 读入

: w ![command] 写出

: [LineNum,LineNum] ![command] 过滤

总结:其实unix中的重要概念中有两个,正则表达式和管道组合对命令使用相当重要。关于正则表达式以后另讲。运用之妙,存乎一心。请大家多读手册页,本人就已多次通读vi的man了。

举例:对man重定向输出的处理

man ls >man_ls

vi man_ls

:%s/.^v^h//g

:x

可获得能阅读的文本。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有