vi 查看最顶部_vi 看代码技巧

/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! 强制覆盖

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值