免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 998 | 回复: 0
打印 上一主题 下一主题

程式编辑器 Vim [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-25 20:21 |只看该作者 |倒序浏览
程式编辑器 Vim



基本上 vi 共分为三种模式,分别是‘一般模式’、‘编辑模式’与‘指令列命令模式’。 这三种模式的作用分别是:
一般模式:以 vi 打开一个档案就直接进入一般模式了(这是预设的模式)。在这个模式中, 你可以使用‘上下左右’按键来移动游标,你可以使用‘删除字元’或‘删除整行’来处理档案内容, 也可以使用‘复制、贴上’来处理你的文件资料。
编辑模式:在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下‘i, I, o, O, a, A, r, R’等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现‘ INSERT 或 REPLACE ’的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下‘Esc’这个按键即可退出编辑模式。
指令列命令模式:在一般模式当中,输入‘ : / ? ’三个中的任何一个按钮,就可以将游标移动到最底下那一行。在这个模式当中, 可以提供你‘搜寻资料’的动作,而读取、存档、大量取代字元、离开 vi 、显示行号等等的动作则是在此模式中达成的!
简易执行范例
如果你想要使用 vi 来建立一个名为 test.txt 的档案时,你可以这样做:
使用 vi 进入一般模式;
[root@www ~]# vi test.txt
直接输入‘ vi 档名’就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加档名,不管该档名存在与否! 整个画面主要分为两部份,上半部与最底下一行两者可以视为独立的。如下图 2.1.1 所示,图中那个虚线是不存在的, 鸟哥用来说明而已啦!上半部显示的是档案的实际内容,最底下一行则是状态显示列(如下图的[New File]资讯), 或者是命令下达列喔!


如果你开启的档案是旧档(已经存在的档案),则可能会出现如下的资讯:


箭头所指的那个‘"/etc/man.config" 141L, 4617C’代表的是‘档名为 /etc/man.conf, 档案内有 141 行 以及具有 4617 个字元’的意思! 那一行的内容并不是在档案内,而是 vi 显示一些资讯的地方喔!此时是在一般模式的环境下啦。 接下来开始来输入吧!
按下 i 或 Insert 按键 进入编辑模式,开始编辑文字
在一般模式之中,只要按下 i, o, a 等字元就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态列中会出现 –INSERT- 的字样,那就是可以输入任意字元的提示啰!这个时候,键盘上除了 [Esc] 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑啰!

Tips: 在 vi 里面, [tab] 这个按钮所得到的结果与空白字元所得到的结果是不一样的,特别强调一下!
按下 [ESC] 按钮回到一般模式
好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 [Esc] 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!
在一般模式中按下 :wq 储存后离开 vi OK,我们要存档了,存档并离开的指令很简单,输入‘:wq’即可存档离开! (注意了,按下 : 该游标就会移动到最底下一行去!) 这时你在提示字元后面输入‘ ls -l ’即可看到我们刚刚建立的 test.txt 档案啦!整个图示有点像底下这样:


如此一来,你的档案 test.txt 就已经建立起来啰!需要注意的是,如果你的档案权限不对,例如为 -r--r--r-- 时,那么可能会无法写入,此时可以使用‘强制写入’的方式吗?可以!使用‘ :wq! ’ 多加一个惊叹号即可!不过,需要特别注意呦!那个是在‘你的权限可以改变’的情况下才能成立的! 关于权限的概念,请自行回去翻一下前面的内容吧!
一般模式切换到指令列模式的可用的按钮说明
指令列的储存、离开等指令
:w 将编辑的资料写入硬碟档案中(常用)
:w! 若档案属性为‘唯读’时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有‘强制’的意思~
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename] 将编辑的资料储存成另一个档案(类似另存新档)
:r [filename] 在编辑的资料中,读入另一个档案的资料。亦即将 ‘filename’ 这个档案内容加到游标所在行后面
:n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如
‘:! ls /home’即可在 vi 当中察看 /home 底下以 ls 输出的档案资讯!
vim 环境的变更
:set nu 显示行号,设定之后,会在每一行的字首显示该行的行号
:set nonu 与 set nu 相反,为取消行号!
特别注意,在 vi 中,‘数字’是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。举例来说,要删除 50 行,则是用 ‘50dd’ 对吧! 数字加在动作之前~那我要向下移动 20 行呢?那就是‘20j’或者是‘20↓’即可。 指令除了上面常用的几个外,其他是不用背的,你可以做一张简单的指令表在你的荧幕墙上, 一有疑问可以马上的查询呦




本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/108545/showart_2131004.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP