vi使用

来源:互联网 发布:计算机编程专业 编辑:程序博客网 时间:2024/05/21 09:31
 
    立志在linux有所建树,就必须要熟悉linux文字编辑利器vi
   
    基本上 vi 共分为三种模式,分别是『一般模式』、『编辑模式』与『指令列命令模式』三种!
  · 一般模式:以 vi 处理一个档案的时后,一进入该档案就是一般模式了。在这个模式中,你可以使用『上下左右』按键来移动光标,您可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理您的文件资料。
  · 编辑模式:在一般模式中可以处理删除、复制、贴上等等的动作,但是却无法编辑的!要等到您按下『i, I, o, O, a, A, r, R』等字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下上述的字母时,在画面的左下方会出现『 Insert 或 Replace 』的字样,才可以输入任何字来输入到您的档案中!!而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式。
  · 指令列命令模式:在一般模式当中,输入『 : 或 / 』就可以将光标移动到最底下那一行,在这个模式当中,可以提供您『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号 等等的动作则是在此模式中达成的!
     
        一般模式: 移动光标
h 或 向左方向键 光标向左移动一个字符
j 或 向下方向键 光标向下移动一个字符
k 或 向上方向键 光标向上移动一个字符
l 或 向右方向键 光标向右移动一个字符
[Ctrl] + [f] 屏幕『向前』移动一页(常用)
[Ctrl] + [b] 屏幕『向后』移动一页(常用)
[Ctrl] + [d] 屏幕『向前』移动半页
[Ctrl] + [u] 屏幕『向后』移动半页
+ 光标移动到非空格符的下一列
- 光标
/word 向光标之后寻找一个字符串名称为 word 的字符串。(常用)
?word 向光标之前寻找一个字符串名称为 word 的字符串。
:n1,n2s/word1/word2/g 在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字串取代为 word2 !(常用)
:1,$s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字串取代为 word2 !且在取代前显示提示字符给使用者确认(conform)是否需要取代!(常用)
       一般模式: 删除、复制与贴上
x, X x 为向后删除一个字符, X 为向前删除一个字符(常用)
nx 向后删除 n 个字符
dd 删除光标所在的那一整列(常用)
ndd 删除光标所在的向下 n 列,例如 20dd 则是删除 20 列(常用)
d1G 删除光标所在到第一行的所有资料
dG 删除光标所在到最后一行的所有资料
yy 复制光标所在的那一行(常用)
nyy 复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
y1G 复制光标所在列到第一列的所有资料
yG 复制光标所在列到最后一列的所有资料
p, P p 为复制的数据在光标下一行贴上,P 则为贴在光标上一行!(常用)
J 将光标所在列与下一列的资料结合成同一列
c 重复删除多个资料,例如向下删除 10 行,[ 10cj ]
u 复原前一个动作。(常用)
     进入编辑模式 
i, I 插入:在目前的光标所在处插入输入之文字,已存在的文字会向后退;(常用)
a, A 增加:由目前光标所在的下一个字开始输入,已存在的文字会向后

退:(常用)
o, O 插入新的一行:从光标所在的下一行枝行首开始输入文字;(常用) r, R 取代:r 会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
Esc 退出编辑模式,回到一般模式中(常用)
            指令列命令模式 
:w 将编辑的资料写入硬盘档案中(常用)
:w! 若档案属性为『只读』时,强制写入该档案
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:wq 储存后离开,若为 :wq! 则为强制储存后离开(常用)
:e! 将档案还原到最原始的状态!
ZZ 若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开!
:w [filename] 将编辑的资料储存成另一个档案(类似另存新档)
:r [filename] 在编辑的资料中,读入另一个档案的资料。亦即将 『filename』这个档案内容加到光标所在行后面
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与 set nu 相反,为取消行号!
n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例
如[ :! ls /home ]
OK!会这些指令就已经很厉害了,因为常用到的指令也只有不到一半!通

常 vi 的指令除了上面 VBird 注明的常用的几个外,其它是不用背的,

你可以做一张简单的指令表在你的屏幕墙上,一有疑问可以马上的查询呦

一个案例练习
来来来!测试一下您是否已经熟悉 vi 这个指令呢?请依照底下的需求进
行您的指令动作( 请注意,该档案为 Mandrake 9.0 所附上的档案内容,
如果是其它的 distribution ,可能结果会不太一样! ),然后看一下结
果在屏幕前面显示什么?
请在 /root 这个目录下建立一个名为 vitest 的目录;
进入 vitest 这个目录当中;
将 /etc/man.config 拷贝到本目录底下;
使用 vi 开启本目录下的 man.config 这个档案;
在 vi 中设定一下行号;
移动到第62 行,向右移动 40 个字符,请问您看到的双引号内是什么目
录?
移动到第一行,并且向下搜寻一下『 teTeX 』这个字符串,请问他在第几行?
接着下来,我要将 50 到 100 行之间的 man 改为 MAN ,并且一个一个
挑选是否需要修改,如何下达指令?
修改完之后,突然反悔了,要全部复原,有哪些方法?
我要复制 51 到 60 行这十行的内容,并且贴到最后一行之后;
删除 11 到 30 行之间的 20 行;
将这个档案另存成一个 man.test.config 的檔名;
去到第 29 行,并且删除 15 个字符;
请问目前的档案有多少行与多少字符?
储存后离开吧!
整个的步骤可以如下所示:
mkdir /root/vitest
cd /root/vitest
cp /etc/man.config .
vi man.config
: set nu
先按下 62G ,再按下 40 + 向右键,会看到『/dir/bin/foo』
先按下 1G ,然后按下 /teTeX 搜寻,会看到他在第 51 行!
:50,100s/man/MAN/gc
(1)简单的方法可以一直按 u 回复到原始状态,(2)使用不储存离开 :q!
之后,再重新读取一次该档案
51G 然后在 10yy 之后按下 G 到最后一行,再给他 p 贴上十行!
11G 之后,再给他 20dd 即可删除 20 行了;
:w man.test.config
29G 之后,再给他 15x 即可删除 15 个字符;
135行,共 3903 个字符 :wq!
如果您的结果都可以查的到,那么 vi 的使用上面应该没有太大的问题啦
!剩下的问题会是在…..打字练习….

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕妇吐完胸口疼怎么办 孕25周胸口堵怎么办呢 孕期没做过产检怎么办 宝宝的泪囊堵塞怎么办 瑜伽球塞子丢了怎么办 瑜伽球塞子没了怎么办 练阴瑜伽是想睡怎么办 肠道引流拨断了怎么办 瑜伽动作做不到位怎么办 胃肠吸收不好一直长不胖怎么办 小孩把泡泡糖吞进肚子怎么办 练习瑜伽又?带硬怎么办 天气太热没有空调怎么办 腹股沟岔气怎么办才能快点好 瑜伽馆不给退卡怎么办 膝盖总是凉凉的怎么办 练阴瑜伽腿麻怎么办 瑜伽垫在地板滑怎么办 艾灸后后背发凉怎么办 床上老是有小蜈蚣怎么办 早晚出去胳膊脚觉得凉怎么办 腿凉感觉冒凉气怎么办 冬天腿被冻夏天发酸发凉怎么办 宿舍一楼虫子多怎么办 有虫子在咬床板怎么办 床板上的虫咬了怎么办 住的房间有臭虫怎么办 租的房子有臭虫怎么办 瑜伽垫放地上脏怎么办 瑜伽垫和地面滑怎么办 练瑜伽时瑜伽垫全是汗水怎么办 车钥匙放洗衣机洗了怎么办 瑜伽垫边上掉渣怎么办 晚上睡地上后背不舒服怎么办 小孩子天天晚上看电视不睡觉怎么办 宝宝天天晚上不睡觉怎么办 老公天天晚上不睡觉怎么办 小孩天天晚上不睡觉怎么办 摸了貔貅的眼睛怎么办 买的爬行垫滑怎么办 买了爬行垫有毒怎么办