VI的使用

最近写过一次awk脚本,发现vi的使用居然忘了,又重新温习了一遍,现在把之前的整理基本用法记录下来。

Vi是Linux/unix系统默认的编辑器,就像是windows下的notepad一样。但是vi编辑器如果熟练使用,效率不知道比notepad快多少倍!

vi有三种工作模式,分别是命令行模式、插入模式、末行模式,我们经常是在插入模式下编辑文字的。三种模式的转换方式如下:

 

 我们每次启动vi都是以命令模式开始,在vi编辑器下是区分大小写的。如果不确定是处在什么模式下,则连续按两次ESC就可以处在命令行模式下了。下面讲述vi的基本使用:

一、光标移动

在非插入模式下,k,j,h,l四键分别代表光标的向左、向下、向上、向右移动,下面说明其他键的使用:

  ^ 将游标放在该行的开始处

$ 将游标放在改行的结尾处

w 将游标移动到下一个单词的开始

b 将游标移动到上一个单词的开始 

将游标移动到当前句子的开始处

将游标移动到当前句子的结尾处 

ctrl+F 将游标向前滚动一屏

ctrl+B 将游标向后滚动一屏

G 将游标移动到最后一行

:x(x为数字) 将游标移动到第x行 

二、编辑

我们需要键入i/a/o/I/A/O 将命令行模式转换为插入模式,

i 在当前光标前插入

I 在当前行的最开始处插入

a 在当前光标后插入

A 在当前行的行尾插入

o 在当前行下面创建新行

O 在当前行的上面创建新行插入

cc 删除整个一行,该行变为空行,变为插入模式

cw 删除整个单词,直到下个单词,变为插入模式

r 替换光标所在的字符

R 覆盖光标所在的字符,按ESC停止覆盖

s 删除光标所在的字符,变为插入模式

S 删除光标所在的行,该行变为空行,变为插入模式

x 删除光标所在位置的字符

X 删除光标所在位置前的字符

dw 从当前字符开始删除,直到下一个单词开始

D 从当前字符开始删除,直到行结束

dd  删除整个行的内容,光标移动到下一行的开头 

J 将当前行与下面的行合并到一起

可将d与光标移动的字符结果使用,删除相应位置的文字。 

三、复制粘贴

  yy 复制当前行的内容

yw 复制光标所在的单词

p 将复制的内容,粘贴在光标的后面

P 将复制的内容,粘贴在光标的前面 

四、查找替换

vi采用 / 和 ?,进行查找,如/love向下查找love,按n进行下一个查找,使用?进行向上查找。

采用s来进行替换,如 :s /misspelled  /spelled correctly  /g

/g 是进行全局替换, $表示最后一行,%表示要替换每一行的第一个目标,c代表需要确认,#表示出现/不作为分隔符

:1,$ s/doyouloveme? /i love you /gc     全局替换,从第1行到最后一行,带确认替换doyouloveme?为 i love you。

:%s /you /me  把每一行的you替换为me

:s#spring/#Spring/# 将当前行的spring/替换为Spring/

五、保存退出

  vi使用w表示保存,q表示退出,!表示强制,如果在命令行中输入:e filename ,会在当前的编辑窗口编辑新文件,使用crtl + ^ 来切换文件,使用 n也可转换文件。

六、定制

  vi编辑器还可以定制特征, 如显示行号,自动缩进,设置字符编码等。常见的有:

syntax on   设置语法高亮

set linespace =0 设置字符间插入的像素行数目

  set noerrorbells 不让vim发出讨厌的滴滴声

set ignorecase 在搜索的时候忽略大小写
  set autoindent 继承前一行的缩进方式,特别适用于多行注释

set tabstop=4  制表符为4

等等,vi还可以使用ctag ,方便程序猿。

 

 

posted on 2013-01-24 17:15  糊涂先生  阅读(259)  评论(0编辑  收藏  举报