对话 UNIX 新改进的 Vim 编辑器.docx

上传人:b****8 文档编号:9232713 上传时间:2023-02-03 格式:DOCX 页数:13 大小:525.59KB
下载 相关 举报
对话 UNIX 新改进的 Vim 编辑器.docx_第1页
第1页 / 共13页
对话 UNIX 新改进的 Vim 编辑器.docx_第2页
第2页 / 共13页
对话 UNIX 新改进的 Vim 编辑器.docx_第3页
第3页 / 共13页
对话 UNIX 新改进的 Vim 编辑器.docx_第4页
第4页 / 共13页
对话 UNIX 新改进的 Vim 编辑器.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

对话 UNIX 新改进的 Vim 编辑器.docx

《对话 UNIX 新改进的 Vim 编辑器.docx》由会员分享,可在线阅读,更多相关《对话 UNIX 新改进的 Vim 编辑器.docx(13页珍藏版)》请在冰豆网上搜索。

对话 UNIX 新改进的 Vim 编辑器.docx

对话UNIX新改进的Vim编辑器

可以在任何平台上编辑代码

如果您曾和IBM®AIX®(UNIX®的一个版本)或Linux®打过交道,使用的很可能是vi编辑器。

自1976年提出vi的概念开始,它已经成为编辑文件的主要工具。

您可能会问:

“有比vi功能更强大的编辑工具吗?

”当然有,那就是Vim,本文将详细介绍Vim增强功能,这些增强功能使Vim成为UNIX和Linux领域中广泛使用的编辑器。

vi程序是一个功能强大的文本编辑器。

SunMicrosystems的共同创始人WilliamJoy最初在1976年编写了针对BerkeleySoftwareDistribution(BSD)UNIX早期版本的vi编辑器。

据说Bill一个周末就编写了vi,不过他说这纯属谣言。

该程序以UNIX扩展行编辑器中的 visual 命令命名—简称为 ex。

vi编辑器是一个功能很强的编辑器,它有几个许多人都没有发觉的功能。

Vi是一个模型编辑器,因此不同的设置会产生不同的结果。

vi中有三种不同的模式:

命令、插入(或 输入)和行。

在插入模式下操作时,文本被写入临时编辑文件;在一般模式下,相同的键击会触发嵌入在编辑器中的命令。

要进入插入模式,按I键即可;要退出命令模式,按Escape(我将在本文后面更详细地介绍行模式)。

例如,在插入模式中,如果输入字符串 10dd,该字符串会写入临时文件,如图1所示。

图1.在插入模式下输入dd

但是,如果处于命令模式,字符串 10dd 将从临时文件的当前光标所在位置开始删除10行,如图2所示。

图2.在命令模式下输入dd

另一个例子是光标移动。

在命令模式下,键H、J、K和L分别将光标向左、下、上和右移动,如图3所示。

而在插入模式下,则显示这些字母。

图3.vi中的光标移动

通常,UNIX用户使用vi,或称为EditorMacros(Emacs)的编辑器,它由RichardStallman在1976年编写。

但是许多人选择vi,因为它是轻量级的,启动更快,占用的内存也更少。

Vim是什么?

Vim,即改进的Vi,是由BramMoolenaar在1991年编写的vi的扩展版本。

该版本最初是为Amiga计算机设计的,但1992年时在UNIX中迅速传播开来。

与vi一样,Vim基于命令模式和插入模式,它是一个文本用户界面(TUI)—如图4所示。

图4.VimTUI

但是它提供了一种命名为 gVim 的图形用户界面(GUI)—如图5所示。

图5.VimGUI

Vim命令

Vim中的内部命令与vi编辑器中的内部命令类似。

表1提供了Vim中的光标移动命令。

表1.用于移动光标的Vim命令

命令

动作

h

将光标向左移动

j、加号(+)、Enter或Return

将光标向下移动

k、减号(-)

将光标向上移动

l

将光标向右移动

}

将光标移动到当前段落的末尾

{

将光标移动到当前段落的开头

将光标移动到当前句子的末尾

将光标移动到当前句子的开头

^

移动到当前行的第一个非空字符

$

移动到当前行末尾

0(zero)

移动到当前行开头

worW

移动到下一单词的开头

borB

移动到上一单词的开头

e

移动到下一单词的末尾

H

移动到屏幕的第一行

M

移动到屏幕的中间一行

L

移动到屏幕的最后一行

G

移动到文件末尾

gg

移动到文件开头

:

n

移动到行 n

表2显示了用于删除文本的Vim命令。

表2.用于删除文本的Vim命令

命令

动作

d

删除选中的区域

dd

删除整个当前行

10dd

删除从当前行开始的10行,

dw

从当前位置向前删除单词

db

从当前光标位置左边开始向后删除单词

dl

删除当前光标位置的字符

dh

删除当前光标位置左边的字符

d0(zero)

删除当前光标位置到行开头之间的单词

D|d$

删除从当前光标位置开始的整个行

x

删除光标当前位置的字符

X

删除光标当前位置之前的字符

表3提供了其他几个有用的Vim命令。

表3.常用Vim命令

命令

动作

ih

进入插入模式并在当前光标处插入

I

进入插入模式并在当前行的开始处插入

a

进入插入模式并追加到光标后面

A

进入插入模式并追加到当前行末尾

c

更改选中的区域

C

更改从光标当前位置开始的整个行

o

在光标当前所在行下方创建一个新空行,并将光标移动到这一新空行的开头

O

在光标当前所在行的上方创建一个新空行,并将光标移动到这一新空行的开头

r

替换光标当前位置的单个字符

R

替换从光标当前位置开始的多个字符,并在退出插入模式时结束

退出插入或可视模式

>or

向选中区域右边缩进

<

向选中区域左边缩进

v

启动时突出显示字符

V

启动时突出显示的整个行

yy

将当前行移动/复制到内存

10yy

将从当前行开始的10行移动/复制到内存

p

粘贴复制或剪切的文本;如果字符被复制(ywdw 或 D),就在光标当前位置之后粘贴这些字符。

如果复制的是行,就在光标当前所在的行下面粘贴这些行

P

作用和 p 一样,但是它在光标当前位置的前面粘贴字符,在光标当前所在行上面粘贴行

u

撤消最后的更改

R

重做

/

搜索已找到的下一个模式,并将光标放在已找到的模式的开头

?

搜索已找到的上一个模式,并将光标放在已找到的模式的开头

n

重复上一次的搜索

N

重复上一次的搜索,但搜索的方向相反

!

在Vim会话外执行 

行模式

尽管广泛使用的是命令和插入模式,但行模式同样重要,只是有时候没有被充分理解和使用。

行模式进入行编辑器,使您可以在一行或多行上处理命令。

考虑到vi以ex编辑器命名,所以它只适合进入ex编辑器的行模式。

要从命令模式进入行模式,输入冒号(:

)即可。

然后将光标移动到窗口左下角。

继续输入时,所有文本都会出现在窗口底部的冒号后面。

单击Enter,开始计算和执行行模式命令。

如果确定不执行在行模式下输入的行,则单击 Escape 返回到命令模式。

使用编辑器的行模式时,请记住两种命令样式。

首先,在输入命令时,vi或Vim按原样执行命令。

如果执行的命令与修改数据有关,当前行就是目标。

但是,使用第二种方法可以提供行数以处理指定的行。

要输入行,请在冒号后面输入要处理的行数或行范围,并用逗号(,)分隔开始和结束范围。

例如,如果只处理行23,那么命令以 :

23 开始。

如果要修改2319到3819之间的行,则输入 :

2319,3819。

要处理从行45开始到文件结尾之间的一个命令,需要将最后行的参数替换为美元符号($)—即 :

45,$。

以下命令只是可以在行模式下执行的最基本命令:

∙:

w

将文件写入磁盘。

如果提供一个参数,编辑器会试图将数据写入

注意:

如果提供一个参数,而且存在,编辑器不会覆盖现有文件的数据。

∙:

w!

将文件写入磁盘并覆盖文件中的所有数据。

∙:

,w

将从之间的行写入

∙:

q:

试图在不保存的情况下退出编辑器。

注意:

如果数据已修改,则需要先保存文件再退出编辑器,否则将导致文件未被保存。

∙:

q!

退出编辑器,不将文件写入磁盘。

∙:

n:

如果编辑多个文件,首先编辑编辑列表中的下一个文件。

∙:

e

编辑

∙:

e#:

如果编辑两个文件,则在两个文件之间切换。

∙:

s///:

用当前行中的替换第一次出现的

∙:

1,$s///g:

从行1开始,在整个文件中执行,用替换所有的

∙:

r

读入当前编辑器会话中。

∙:

,d:

删除从之间的行。

∙:

,y:

复制从之间的行。

回页首

vi与Vim之间的差异

尽管vi与Vim的外观相同,但它们确实存在区别。

以下只是这两个功能强大的文本编辑器之间的几点区别:

∙vimscript:

Vim使用内部脚本语言vimscript,允许复杂脚本将扩展功能添加到编辑器中。

除了vimscript,Vim还支持Perl、Python、Ruby、Tcl和其他语言。

∙vimdiff:

将一个称为 vimdiff 的有用命令与Vim包捆绑在一起。

使用 vimdiff 可以显示相互邻近的多个文件,类似于 sdiff,如图6所示。

图6.vimdiff示例

∙编辑压缩文件:

要保留系统上的空间,管理员通常会压缩日志文件或其它大型文件。

经常出现这样的情况:

在压缩了一个文件之后,总是会有人问:

“请问,可以看看该日志两个月之前的情况吗?

”以前需要解压文件,然后再使用vi编辑它。

现在使用Vim就可以编辑压缩文件。

Vim可以处理使用bzip2、gzip和zip压缩的文件。

∙编辑存档文件:

Vim还能编辑由 tar 压缩的文件。

编辑.tar文件时,Vim显示一个简洁屏幕,让您选择编辑存档中的哪个文件,如 图7 所示。

编辑完文件后,正常保存并退出文件(:

wq),然后Vim会返回到显示屏幕,允许您在存档中选择另一个要编辑的文件。

您也可以从选择窗口中退出(:

q)。

图7.使用Vim在存档文件中选择要编辑的文件

在图8所示的例子中,使用 tar 命令存档4个ASCII文本文件,然后使用Vim选择存档中的第二个文件进行编辑。

图8.在存档中通过Vim编辑文件

∙拆分窗口:

使用gVim,在编辑多个文件时无需在窗口之间来回切换,可以在现有文件中打开几个窗口,并动态创建一些新文件,如图9所示。

图9.在Vim中拆分窗口

∙语法要点:

调试别人的shell脚本或不是由同一个编辑器编写的代码是一项艰巨的任务。

幸运的是,Vim能减轻使用别人的代码带来的痛苦。

使用Vim,可以突出显示代码块,使得在shell脚本和其他编程语言中的调试更简单,如图10所示。

图10.语法要点

∙光标的最后位置:

编辑文件时,有时需要退出文件来执行其他任务。

但是当准备返回文件时,已经忘记了是在何处离开的!

不要担心,Vim会记住退出文件时光标的最后位置。

在修改有好几千行的文件时,这特别有用。

∙多个撤消/重做操作:

过去,vi只允许在编辑文件时撤消最后一次更改。

这是一个了不起的开始,但是需要改进。

有时,编辑脚本或其他代码时,看起来似乎很好的想法并不是处理问题的最佳方式,所以必须能够回溯到在文件中进行的最后10次更改。

Vim允许您这样做。

∙可视化模式:

Vim允许使用“可视化”模式选择某些文本块。

使用这种模式可以在编辑的文件中选择任意量的文本,然后使用一个命令更改突出显示的文本。

例如,如果必须删除文本中间一段,只需输入 v 进入可视化模式,用光标选中要修改的文本,然后输入 d 删除突出显示的文本即可。

如何获得Vim?

了解vi与Vim之间的一些增强与区别后,您可能会说:

“我需要Vim!

从哪里获得它呢?

”告诉您一个好消息:

Vim已经出现在几个不同的操作系统中。

以下是几个移植了Vim的平台:

∙Amiga

∙AIX

∙BSD

∙Cygwin

∙IBMOS/2®

∙Linux

∙AppleMacOS和MacOSX

∙Microsoft®MS-DOS®

∙MicrosoftWindows®95到WindowsVista®

∙MicrosoftWindowsCE

∙OpenVMS

回页首

Windows中的Vim

在上一小节,您已经知道可以在Windows使用Vim,您现在会说:

“我真的可以在Windows中使用Vim吗?

真是太好了!

”是的,确实可以!

只需下载最新版的Vim(当前版本是7.1),将它移植到Windows即可,下载地址是 VimWeb站点。

最简单的方法是下载自动安装的可执行文件并执行它,然后按步骤操作。

安装后,右键单击一个文件,单击 EditwithVim(如下面的图11所示),便可以在Windows的Vim中编辑文件了。

图11.在Windows中使用Vim编辑文件

在Windows计算机中安装Vim后,就可以享受Vim提供的好处了,同时可以考虑抛弃Windows中的其他文本编辑器了。

结束语

vi编辑器是UNIX中的文本编辑器的前身,Vim是它的延续。

阅读本文后,希望您能学到有关Vim编辑器的一些新知识,并通过它的功能使您的工作更轻松。

Vim作为一种简单的编辑器,已经成为一个稳定和健壮的应用程序,广泛用于UNIX以及大多数其他操作系统中。

如果您不经常使用Vim,在了解它的详细功能之后,您肯定会认为Vim是最好的编辑器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1