Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4611760
  • 博文数量: 385
  • 博客积分: 21208
  • 博客等级: 上将
  • 技术积分: 4393
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-30 13:40
文章分类

全部博文(385)

文章存档

2015年(1)

2014年(3)

2012年(16)

2011年(42)

2010年(1)

2009年(2)

2008年(34)

2007年(188)

2006年(110)

分类: LINUX

2006-12-26 13:18:39

/str1/,/str2/d 删除从字符串 str1 到 str2 的所有行

恢复文件
vi 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 . 开头,并以 .swp 结尾。vi 在
正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令:
:recover 恢复文件
也可以在启动 vi 时利用 -r 选项。

1.5 选项设置

为控制不同的编辑功能,vi 提供了很多内部选项。利用 :set 命令可以设置选项。基本语法为:
:set option 设置选项 option
常见的功能选项包括:
autoindent 设置该选项,则正文自动缩进
ignorecase 设置该选项,则忽略规则表达式中大小写字母的区别
number 设置该选项,则显示正文行号
ruler 设置该选项,则在屏幕底部显示光标所在行、列的位置
tabstop 设置按 Tab 键跳过的空格数。例如 :set tabstop=n,n 默认值为 8
mk 将选项保存在当前目录的 .exrc 文件中

ctrl +o  退回原处
ctrl+T   回到上一个访问的函数处

gd  转到当前光标所指的局部变量的定义处。

* 转到当前光标所指的单词的下一次出现的地方
#转到当前光标所指的单词的上一次出现的地方

多窗口操作:
Ctrl+w     +    [s/w/t/b/c/q/r/i/]
q:退出窗口
r 循环窗口

t  顶部窗口
b  底部窗口
w   下一个窗口,用于在窗口之间进行切换
c  关闭窗口
s   再分屏


vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑



 下我们常常要进行字符串的查找替换,有在vim编辑器里面进行的,也有在shell下进行的,这样的事情常遇到,但是每次都会感到有些概念模糊,尤其对类似awk、sed、grep、find等命令的具体参数使用问题上老是糊涂,下面收集几个常用的方法,实在不能理解就死记算了!

1、在vi中使用的查找替换方法
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

2、在shell中使用find结合grep进行文件的替换
# find ./ -exec grep str1 ‘{}’ \; -exec sed -i.bak s/str1/str2/g ‘{}’ \;
上面命令可以在当前目录下(包括子目录)查找包含str1的文件,自动替换成str2,并且生成源文件的bak文件

更多方法正在不断收集更新中。。。


命令模式进入可视模式 按v或是ctrl-v键 注意v和ctrl-v是不同的 一个是普通的行选择 一个是块选择


更进一步的编辑 剪切复制和粘贴还有redo undo(取消和重做)

在windows下 你可以像其它编辑器那样使用ctrl-c ctrl-v ctrl-x,并且一样可以使用鼠标选择

在linux下 如果运行了gpm 那一样可以使用鼠标选中一块文字
然后在vim下把输入的光标停在要插入的地方(注意在普通模式下 才能插入 )
点右键 (如果是在x下 那是点中键 )进行粘贴
同时这可以从其它地方选择 而不一定是在vim内


如果要选择的文字很长 或是滚轮不好 总选不中
那你可以用可视模式

可视模式就是按v键进入

进入了后 移动光标 或者按    j h k  l 方向键,选完要复制或是要剪切的内容 然后
如果是想复制 那按y
如果是想剪切 那按x

当按下这些键后 自动回到命令模式
这时移动光标到你想粘贴的位置 按p

注意 如果你按了x 但是没有粘贴 然后复制了一行 那前一行就会自动清掉
也就是 删除的话也是按x


redo和undo
undo(取消操作) 在命令模式下按u
redo(取消刚才的取消 ) 在命令模式下按ctrl-R

命令总结

在命令或是可视模式下:
x 剪切/删除
y 复制

命令模式下:
p 粘贴
u 取消(可以无穷次 当然关闭了编辑器再打开时就不能了)
ctrl-r 重做(也可以无穷次)
:w 保存文件 可以指定文件名 如:w test.txt表示另存为test.txt 如果文件只读 那使用
:w! 强制覆盖



阅读(4214) | 评论(0) | 转发(0) |
0

上一篇:使用xargs

下一篇:Linux中的tty与pts

给主人留下些什么吧!~~