问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vi编辑器使用技巧

发布网友 发布时间:2023-10-12 02:24

我来回答

1个回答

热心网友 时间:2024-06-14 01:14

'vi是类Unix操作系统中使用极为广泛的文本编辑器之一。无论是Unix、Solaris或Linux都默认提供这个工具。可以说只要熟悉了vi,在任何一种类Unix的操作系统平台上都可以自如地进行文本编辑。关于vi的基本用法的资料有很多,本文的目的不是重复这些基本的用法,而是想给初步掌握vi基本用法的人提供一些实用技巧,使之能更快捷、高效地利用vi编辑文件。

vi有命令模式和插入模式之分。vi启动后就处于命令模式。在命令模式下,可以随意移动光标、进行复制和粘贴文本等操作。利用“a”、“i”、“c”、“C”、“O”和“o”等命令可以从命令模式切换到插入模式。在插入模式下,可以输入文本,按Esc键切换回命令模式。为了区别不同模式下的命令,本文在介绍时会注明是何种模式下的操作。

另外,本文的所有操作都是在Red Hat 9.0所带的vim中进行。本文介绍的各种技巧多数在各种vi版本中也都是可行的。

加密和解密

加密和解密文件

在命令模式输入“:X”命令,接着输入密码、确认输入密码,最后输入“:wq”命令保存退出。文件就已经被加密了。

经过上面方法加密后的文件变成密文文件。要阅读原来的明文,则在打开文件后,会提示用户输入密码。如果密码输入正确,就能看到原来的明文。另外可以看到,在最后的状态行上有此文件已被加密的提示。

取消加密

取消加密的方法很简单。在命令模式输入“:X”命令,首先会提示输入密码,这时直接敲回车键。接下来在提示重复输入密码时也直接敲回车键,最后输入“:wq”命令保存退出。这样文件的加密就被取消了。

注意,以上加密方法是运行在Red Hat Linux 9.0上的vim中。在其它平台可能略有差异,请以实际平台或版本的帮助为准。

替换操作

经常用到的一些简单替换命令有:

◆ s 将当前字符替换为一个或多个字符,例如5 s 表示将从当前字符开始的5个字符替换为一个或多个字符;

◆ S 将当前行替换为一个或多个字符;

◆ r 单个字符替换。

文本格式转换

将DOS格式文本转成Unix格式文本,命令如下:

:1,$s/^M//g

其中^M是同时Ctrl+V+M按出来的,表示回车。

在行首尾添加字符串

用下列命令在文本每行的行首添加字符串“NewString”,请注意空格的存在。

:g/^/s//NewString/g :%s/^/NewString/g

用下列命令在每行的行尾添加字符串“NewString”:

:g/$/s//NewString/g :%s/$/NewString/g

从文本的第3行至最后一行的行首全部插入字符串“NewString”:

:3,$s/^/NewString/

在整个文件中替换

在整个文件中替换特定字符串,所用的命令如下:

:%s/old_string/new_string/g

如果仅将文件中的第3行到第7行中的“old_string”替换成“new_string”,那么使用下列命令:

:3,7s/old_string/new_string/

注意,其中“s”为表示替换动作,“%”表示所有行,“g”表示全文,“^”表示行首,“$”表示行尾。

助力编程

语法加亮

在vi中编写程序,如果为了方便想开启语法加亮功能,只需在命令模式下输入“:syntax on”即可。同理可知,如果想关闭语法加亮功能,就在命令模式下输入“:syntax off”。

快速查看函数帮助

在用vi阅读和编写程序(主要是指C或C++程序)时,如果需要了解某个函数的具体功能,可以将光标移到该函数上,然后在命令模式下输入“K”,就可以调动“Linux Programmer's Manual”中对此函数的man帮助。

标记定位

在阅读和编写大的程序文件时,利用标记(书签)功能定位是十分有帮助的。建议大家多多使用。下面举个简单的例子进行说明。

首先打开一个源代码文件,将光标移到想做标记的位置。假如做一个名为“debug1”的标记,那么用户可在命令模式下输入做标记的命令“mdebug1”,然后敲入回车键,一个名为“debug1”的标记就做好了。

接下来用户可以随意将光标移到其它的位置,当在命令模式下输入“`debug1”后,就能快速回到“debug1”的标记所在行的行首。

“ctags”命令

在阅读和编写C或C++程序时,可用“ctags”命令对当前目录下的C源程序进行扫描。命令如下:

$ ctags *.c

上面一条命令将为当前目录下的.c文件生成tags文件,然后使用“ta 函数名”命令来快速打开相应函数所在文件,并将光标定位在对应函数的开头。

自动对齐

在命令模式下使用“:set ai”命令可以让程序中各行自动对齐。

显示匹配

在编程中{}、[]、()常常是成对出现的,而且常常有多层的嵌套,很容易遗漏和失误。所以下面的这个技巧非常有用。在命令模式下使用“:set sm”命令会在用户敲)、]、}时显示出对应匹配的{、[、(来。

缩写文本

在编程中常常要输入一些重复且很长的信息,比如较长的名词和公司信息等,这时可以用vi的缩写功能。它可以将一个很长的词用一个很短的缩写来代替。比如一个较长的URL,可以给它一个缩写,在命令模式下使用“:ab myurl http://www.mykms.org/kms/myproject/index.php?id=0023”,然后在插入模式下输入“myurl”后,“myurl”就会自动变成刚才定义的那个长的URL。另外,在插入模式下输入“:una myurl”,则是取消“myurl”这个缩写。

set选项

使用“:set”可以设置vi的环境变量。vi的环境变量有很多。使用“:set all”可以显示所有环境变量。使用“:set 变量名及参数”可以设置对应的环境变量。

下面的命令可显示行号:

:set number

下面的命令可将文件设为只读:

:set readonly

下面的命令使vi在“:n”和“:!”命令之前都自动保存文件:

:set autowrite

下面的命令显示用户处在什么模式下:

:set showmode

同理,“:set noshowmode”就是关闭此显示。

vi环境变量还有很多。了解它们,将给用户使用vi带来更多方便。用户可以通过vi的联机帮助查到对应的环境变量的详细作用。

使用宏

vi的宏提供了更强大的功能,用户可以根据自己的需要来定制自己的宏,然后通过宏来完成事先定义好的一整套操作。用“map”来定义一个宏,用“unmap”来删除。在熟悉了vi的基本命令后,将这些命令组合起来就能完成复杂的工作。如果再将这些命令的组合定义成宏的话,就可以方便用户经常性地调用了。这是一个非常强大的功能,建议大家多多使用。

总结

vi是类Unix操作系统上常用的缺省编辑器。了解了vi,用户就能利用它高效地编辑文件。但是学习vi的过程很长,因为它的功能很多。不过它确实是一个值得花时间来学习的工具。所谓“工欲善其事,必先利其器”,希望大家都能学好vi,善用这一文本编辑的利器。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么设置我想要的铃声为闹钟呢? 定时机器人功能列表 ...暗黑破坏神2重制版好玩吗_暗黑破坏神2重制版怎么玩 怎么用ATMA导入装备? 我下载的暗黑存档是rar文件,怎么办 知学云(北京)科技股份有限公司电话是多少? 仓央嘉措有哪些描写心情的诗? 沙面街道现状 龙之谷2手游学者课堂怎么玩 龙之谷2学者课堂答案是什么_学者课堂答案大全 我刚在苏宁易购买了一台西门子冰箱,但是发现有问题,请问有没有...9 施乐s1810如何清零24 富士施乐s1810复印机更换完墨粉筒为什么还显示准备备份墨粉...18 怎么解决win10系统中出现的无法切换输入法的问题 Win10系统的输入法无法切换如何解决 怎么解决win10系统不能切换输入法问题 一本练习册有A级基础练B级能力练C级拓展练,请问这本练习册叫...1 ...挽留73岁丈夫为他生下一个儿子,如今怎样了? 涿州创享城的房贷为啥办不下来 高层住宅的电梯机房,消防电梯和普通电梯之间应采用甲级防火门,...4 手工无矾粉皮的做法 粉皮的做法和配方31 你好!我想问一下柬埔寨房价是多少钱一平方米?10 我想问下小区里的雨水检查井多远合适?谢谢了。10 为什么我的电脑下载不了豆丁网的文档 一本练习册有A级基础练B级能力练C级拓展练,请问这本练习册叫...1 28岁女孩嫁给邻居73岁孤寡老人,当初被全家人反对,如今生活怎样?_百度... 丈夫突然做生意赚了很多钱,我好慌,我要怎么做? 用没加巢础的巢框放进蜂箱内有没有办法让蜜蜂有顺序的筑脾?6 蜂箱剿脾调换位置了怎么办? 无障碍电梯与普通电梯有什么不同?求解!!!!77 越冬蜂箱里的巢脾嫌多怎么办? 安卓系统(华为手机)图标提示 新语音邮件 是什么意思?怎么办...7 跪求高清 新编Excel在财务中的应用,百度网盘的链接有没有呀!想要!_百 ... XP系统鼠标有时候会失灵,是怎么回事啊3 好的台湾饭团加盟培训中心在哪里?首选上海炫多滋14 家里的led灯打开后自动变换颜色。每30秒左右变换一次,请问... 在广告工作中下面的这些广告术语都是什么意思?还有就是能帮我举... 怎么在蜜蜂箱里安装蜜蜂巢脾?谢谢,急急急!2 通知栏里总有个新语音邮件提示,怎么关掉,烦 新语音邮件 怎么取消36 新语音邮件 怎么取消36 华为p6电信版老是提示新语音邮件怎么回事?2 我1984年阳历12月28日子时生的女,看看我的一生运势 花椒籽怎么种才能发芽2 台湾饭团加盟哪个好2 34高层住宅电梯尺寸,应该满足什么要求?41 飞聊给不是飞信好友的移动用户发短信收不到,我试了一下,对话气泡旁有... 我想加入台湾饭团加盟店,要投资多少635 住宅楼里安装电梯,电梯都有何要求??16