`
guanhuaing
  • 浏览: 1199799 次
文章分类
社区版块
存档分类
最新评论

vi编辑器的学习使用(九)

 
阅读更多
现代的Vim编辑器是基于一个古老的名为vi的编辑器设计而成的,而vi基于一个更古老的基于命令行方式的ex编辑器设计而成的。ex编辑器是在屏幕产生以前相当流行的一个编辑,他是为那时古老的标准打印而设计的。
仅管ex是基于命令行方式的,然而他也是真正意义上的一个强大而高效的编辑器。即使是在今天他也是发挥着作用。仅管现在的Vim编辑器有一套的命令系统,可是有些事情还是要用ex的命令方式才可以更好的来完成。因而现在的Vim编辑器设计了与ex编辑器的接口,我们可以在Vim中使用ex方式的命令。而那些以冒号开头的命令就是一个ex方式的命令。
如果你想执行单一的命令行方式的命令,那么你只输入:然后输入命令就可以了。例如我们在前面讨论的:set number.事实上他就是一个命令模式的命令。在执行完这个命令以后,Vim编辑器又回到了他原来的状态。我们可以通过命令:ex选择进入命令行模式。Q命令也有同样的作用。如果要选择回到正常模式(normal mode)也就是可视化模式(Visual mode),我们可以使用命令:visual.
命令:print(简写为:p)可以打印出选定的行。如果没有传递参数,他仅是打印当前的行。打印完成以后回到打印行的开头。我们也可以指定要打印的行的范围。例如命令:1,5 print就是要打印1到5行。严格来说你不必须在数5和print之间输入空格,但是如果这样做后我们就会现这个命令看起来会更好。如果你仅仅是想打印第5行,你可以用这样的命令::5 print.当然了我们也可以使用一些特殊的数字标记,例如字符$是指最后一行,因而如果我们想要打印全文的时候我们可以用这样的命令::1,$ print.而字符%是指整篇文章(1,$),因而我们也可用这样的命令来打印整篇文章::% print,而.则是指当前行,我们要打印当前可以用:print命令而不带任何参数,也可以用这样的命令:.print。我们还可以用指定句子中内容来打印选定的行。例如在我们的文章中我们可以用这样的命令来打印含有字符ex的行::/ex/ print。这样就会打印出含用ex的行,并会高亮显示出ex。同样命令:?ex? print也会达到同样的作用,而命令:?ex? print也正是打印含有ex字符的命令格式。
在前面的学习中我们曾学过标记命令m,例如我们可以在任何地方用命令ma做上标记,然后在其他的地方可以用命令‘a回到做了标记的地方。这个命令也可以与print命令组合。例如我们可以在一个地方用命令ma做上标记,然后在其他的地方用命令mb做上另外的标记,然后我们就可以执行下面的命令来打印这两个标记之间的内容了::'a,'b print
我们也可以在可视化的模式下来选定要打印的内容。例如我们用命令V进入可视化模式并选定一段内容,这时我们输入:就会在Vim的底部显示<,>两个字符,这两个字符分别指我们的选定内容的开头和结束部分。
命令:substitute可以使我们将指定的字符换成其他的字符。这个命令的格式是这样的:
:range substitute /from/to flags
在这个命令中range是指定了范围,也就说是在哪些行里做替换。而后是说将字符串from替换成字符串to。在默认的情况下,这个替换命令仅是将一行中第一个出的的字符替换成给定的字符。而如果我们想将所有出现的字符都替换成给定的字符我们就用g这个标记命令。例如::% substitute /from/to/g.这个命令就达到将所有出现from的地方全部替换成to。其他的标记(flags)包括:p(print),这个命令是告诉substitute打印所做的改动。c(confirm),这个命令是告诉substitute命令在做出这样的改动以前要询问是否要做这样的改动例如如果我们执行下面的命令::1,$ substitute /Professor/Teacher/c.在Vim就会显示我们将要做改动的文本,并显示下面的内容:
Prfessor:You mean it's not supposed to do that?
replace with Teacher(y/n/a/q/^E/^Y)?
这时你可以做出以下这样的回答:
y执行这个替换
n跳过这个替换
a执行所有的替换不要做询问
q退出,不做任何改动
CTRL─E 向上翻滚一行
CTRL-Y向下翻滚一行
在Vim的命令还有一些命令可以帮助我们很好的完成我的工作:例如命令:read filename可读进一个文件并将读进和内容插在当前行的后面。而命令:write是将文件写入。这是一个保存我们工作的方法。我们也可以用命令:write newfile将当前的文件内容写入一个新的文件。一般情况下:write命令并不会覆盖已经存在的文件。我们可以用强制操作(!)选项来完成我们所需要的操作并覆盖当前已经存在的文件。而这个命令对于我们要将一个大的文件分拆为小的文件时显得更有用。我们可以用可视化模式选定一个范围然后将这个选定的范围写入新的文件,从而实现了分拆的目的。
我们还可以Vim中不需要退出而执行Shell命令。命令:shell可以使们进入命令终端执行我们需要的命令。当我们要退出终端回到Vim中时可以执行exit命令。我想这对于程序人员来说真是一个巨大的帮助。:)
分享到:
评论

相关推荐

    vi编辑器学习笔记vi编辑器学习笔记

    vi学习笔记,是我在学习中总结的一些常用的命令

    Linux vi编辑器

    全面介绍VI,有实例做练习,快速学习Linux经典的VI编辑器

    VI编辑器的使用方法.txt

    VI编辑器的使用方法.txt 一步一步教你学习linux下的VI编辑器的用法 ,让你轻松走进linux。

    vi及vim编辑器使用进阶

    vi编辑器是所有Unix及Linux系统下标准的编辑器,美国加州大学伯克利分校的Bill Joy所创立[1] ,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何...

    vi编辑器的使用(一)笔记

    vi编辑器的使用(一)笔记

    unix vi 编辑器完全使用手册

    本文是针对初学Unix Vi编辑器的网友的,而文后所付的详尽的命令表也可作为已经熟练使用vi的网友的参考之用, 因此你最好下载本文或打印本文然后对照实践学习。 编辑器是使用计算机的重要工具之一,在各种操作系统...

    学习使用vi编辑器

    教你如何使用Linux的VI编辑器。

    学习vi和vim编辑器_第7版_中文+英文_PDF

    《学习vi和Vim编辑器(中文版第7版)》将说明使用这两种程序编辑文档的基础技巧,并讨论高级工具,例如交互式宏与扩展编辑器的脚本——我们的内容编写成容易遵循步骤操作的风格,成就本书的经典地位。读者将学到: ·...

    vi编辑器的使用

    学习linux的朋友,看看我的VI的编辑器的使用文档定会有所收获!

    学习vi和vim编辑器

    《学习vi和vim编辑器(第7版)》将说明使用这两种程序编辑文档的基础技巧,并讨论高级工具,例如交互式宏与扩展编辑器的脚本——我们的内容编写成容易遵循步骤操作的风格,成就本书的经典地位。读者将学到:  ·快速...

    Linux的VI编辑器学习副本

    文本编辑器有很多,比如图形模式的gedit、kwrite...vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理中,永远不是图形界面的编辑器能比的。

    学习VI和VIM编辑器第7版中文

    《学习vi和Vim编辑器(中文版第7版)》将说明使用这两种程序编辑文档的基础技巧,并讨论高级工具,例如交互式宏与扩展编辑器的脚本——我们的内容编写成容易遵循步骤操作的风格,成就本书的经典地位。读者将学到: ...

    vi编辑器命令

    linux系统vi编辑器的使用及所有命令。学习linux必须掌握vi编辑器的使用。

    vi编辑器的学习使用

    vi编辑器是Unix的世界中一个相当强大的可视化编辑器,有人曾这样的说过在世界上有三种人:一种是使用Vi的,另一种是使用是Emacs的,剩下的是第三种人。

    学习vi编辑器(第六版)

    Learning.the.VI.Editor.6th 英文版 涵盖的主题有:  ◆ 编辑基础  ◆ 快速移动  ◆ 基本编辑命令的扩展  ◆ ex的更强大功能 ... ◆ nvi、elvis、vim和vile编辑器  ◆ vi和 ex命令总结  ◆ vi和Internet

    学习vi和vim编辑器 第7版

    学习vi和vim编辑器 第7版 学习Vi 和 Vim的绝好教材。值得推荐……

    学习vi和vim编辑器_第7版_中文

    《学习vi和Vim编辑器(中文版第7版)》将说明使用这两种程序编辑文档的基础技巧,并讨论高级工具,例如交互式宏与扩展编辑器的脚本——我们的内容编写成容易遵循步骤操作的风格,成就本书的经典地位。读者将学到: ...

    VI编辑器的使用

    详细讲解了vi编辑器的使用,让您更好的学习linux

    学习vi和vim编辑器.pdf_vim实用_vi_vim_

    vi和vim编辑器的使用和进阶说明,非常实用

Global site tag (gtag.js) - Google Analytics