掌握VI编辑器(三)

EXINIT环境变量和.exrc文件

有两种方式来个性化VI编辑器。如果你在主目录下生成了一个叫做.exrc的文件,当VI启动的时候,那里面所有的命令都会被读到。另外一种方法是设置一个叫做EXINIT的环境变量。该选项在你的shell的建立文件里被设置。如果你使用/bin/csh (C-Shell),命令如下(被放置在.cshrc文件里面):setenv EXINIT '...'。

如果你使用/bin/sh or /bin/ksh,命令如下(被放置在.profile文件中):export EXINIT EXINIT='...'。

就像例子中所说的,不要放在…。在这个空间中,放置你想要建立的命令。例如,如果你想自动缩进,行编号,以及wrap边界三个字符,setenv命令(对于C shell来说)像这样:setenv EXINIT 'set ai nuwm=3'。

如果你想在setenv EXINIT中放置不止一个命令,用竖线(|)将命令隔开。例如,在命令模式中,要将“g”命令映射到“G”字符,命令是:map g G,与上面的命令结合,可以得到:setenv EXINIT 'set ai nuwm=3|map g G'。

如果你想生成叫做.exrc的文件,你可以在文件中放置与EXINIT之后的引用一样的东西。

 

当终端出现问题的时候恢复你的工作

VI编辑器编辑你的文件的一个临时副本,当编辑结束之后,或者当你叫它保存的时候,它就将临时文件的内容放到原始文件中。如果在你编辑文件的时候发生了故障,VI编辑器会试图保存你正在做的任何工作,并且为了之后的恢复而存储它。(注意:如果在你编辑文件的时候VI死掉了,它会给你发一封邮件告诉你如何恢复它。-r选项代表恢复。如果你正在编辑文件vitalinfo,而你意外退出了,“vi”编辑器的-r选项可以帮你忙。该命令像这样:vi -r vitalinfo。在使用-r选项一次之后,你必须要将你恢复的内容保存到实际的文件中。-r选项只能在每一个失败的VI会话中使用一次。)

 

有关在工作台上使用VI的警告

当你使用工作台时,必须要知道两件事情:一次(连续)编辑相同的文件许多次,以及改变屏幕的大小。

因为VI编辑你的原始文件的一个副本,并且将那个副本的内容保存到原始文件中,如果你登录了好几次,并且使用VI编辑相同的文件好几次,如果你一次保存在一个窗口上,然后又保存到另外一个窗口上,第一次保存的对于文件的改变会被覆盖掉。确保对于每个文件,你只是运行一个副本。

如果你使用一个工作台的一个终端程序,你可以通过拖动窗口的边界来改变屏幕的大小。如果你对大小还不尽满意,输入以下命令:eval `resize`。如果这个命令无效,另外一个命令如下:eval `/usr/bin/X11/resize`。

如果大小是错误的,编辑器不会正常运行。如果你对于屏幕尺寸存在任何疑问,可以向计算机实验室的管理员求助,他会帮你设置正确的尺寸。

 

VI命令的总结

以下是按照功能分类的VI命令的一个总结列表。有可能还会有其它命令,可以查看VI的在线手册。为了方便,你可以以文本文件方式保存该文件,然后删除你认为自己不会用的一些命令,并打印出剩下的较短的文件。

 

剪切与粘贴/删除文字

":指定一个任何命令使用的缓存。在"之后输入一个字母或数字,它们会对应一个缓存。

D:从当前光标所在位置向后删除直到行尾。

P:在当前光标位置或行之前粘贴专门的缓存。如果没有指定缓存(使用"命名),“P”就使用通用缓存。

X:删除光标之前的字符。

Y:将当前行整形到指定的缓存。如果没有指定缓存,就使用通用缓存。

d:删除,直到where。“dd”删除当前行。一个数字就表示删除那么多行。被删除的内容放置在由"命令指定的缓存中。如果没有指定缓存,就使用通用缓存。

p:在当前光标位置或行之后粘贴专门的缓存。如果没有指定缓存(使用"命名),“p”就使用通用缓存。

x:删除光标之下的字符。输入一个数字表示要删除多少字符。被删除的字符位于光标之后。

y:整形,将结果放到一个缓存中。“yy”整形当前行。输入一个数字表示要整形的行数。可以用"命令来指定缓存。如果没有指定缓存,就使用通用缓存。

 

插入新的文字

A:在当前行之后追加。

I:在一行的开头处插入。

O:在当前光标位置的上面一个新行进入插入模式。

a:进入插入模式,输入的字符会在当前光标位置之后插入。如果在命令之前输入一个数字,那么会插入内容多次。

i:进入插入模式,输入的字符会在当前光标位置之前插入。如果在命令之前输入一个数字,那么会插入内容多次。

o:在当前光标位置之下的一个新行进入插入模式。

 

在文件内移动光标

^B:向后回滚一页。输入数字就会回滚那么多页。

^D:向前滚动半个窗口。输入数字会滚动那么多行。

^F:向前滚动一页。输入数字会滚动那么多页。

^H:将光标向左移动一个空格。输入数字会移动那么多个空格。

^J:在同一列向下移动光标一行。输入数字会向下移动那么多行。

^M:移动到下一行的第一个字符处。

^N:在同一列向下移动光标一行。输入数字会向下移动那么多行。

^P:在同一列向上移动光标一行。输入数字会向上移动那么多行。

^U:向后回滚半个窗口。输入数字会回滚那么多行。

$:将光标移动到当前行的末尾。输入数字会移动到下面行的末尾。

%:将光标移动到匹配的括号处。

^:将光标移动到第一个非空白的字符处。

(:将光标移动到一个句子的开头。

):将光标移动到下一个句子的开头。

{:将光标移动到前一个段落。

}:将光标移动到下一个段落。

|:将光标移动到指定的列(由count指定)。

+:将光标移动到下一行的第一个非空白字符处。

-:将光标移动到之前一行的第一个非空白字符处。

_:将光标移动到当前行的第一个非空白字符处。

0:将光标移动到当前行的第一列。

B:将光标回移一个字,跳过punctuation。

E:将光标向前移动到一个字的结尾,跳过punctuation。

G:跳到由count指定的行处。如果没有指定数目,就跳转到文件的末尾。

H:将光标移动到屏幕顶端的第一个非空白字符处。

L:将光标移动到屏幕底端的第一个非空白字符处。

M:将光标移动到屏幕中间的第一个非空白字符处。

W:将光标向前移动到一个字的开头,跳过punctuation。

b:将光标回移一个字。如果光标在字的中间,就将光标移动到那个字的第一个字符处。

e:将光标前移一个字。如果光标在字的中间,就将光标移动到那个字的最后一个字符处。

h:将光标向左移动一个字符的位置。

j:将光标向下移动一行。

k:将光标向上移动一行。

l:将光标向右移动一个字符的位置。

w:将光标向前移动一个字。如果光标在字的中间,就将光标移动到下一个字的第一个字符处。

 

在屏幕上移动光标

^E:向前滚动一行。用count指定滚动的行数。

^Y:向后滚动一行。用count指定滚动的行数。

z:用以下选项重画屏幕。“z<回车>”将当前行放到屏幕的顶部;“z.”将当前行放到屏幕的中间;“z-”将当前行放到屏幕的底部。如果你在“z”命令之前指定一个数字,它就将当前行变到指定的行处。例如,“16z.”将第16行放到屏幕的中间。

 

替换文字

C:从当前光标位置处变到行的结尾。

R:用输入的一系列字符(以Esc键结尾)替换屏幕上的字符。

S:改变一整行。

c:改变直到。“cc”改变当前行。用count指定改变的行数。

r:替换光标下的一个字符。用count指定替换的字符数。

s:替换(Substitute)光标下的一个字符,并进入插入模式。用count指定替换的字符数。在最后一个替换的字符处放一个美元($)符号。

 

搜索文字或字符

,:在相反方向上重复上一个f,F,t或T命令。

/:在文件里向下搜索/之后的字符串。

;:重复上一个f,F,t或T命令。

?:在文件里向上搜索?之后的字符串。

F:在当前行向后搜索“F”命令指定的字符。如果找到了,就将光标移动到那个位置。

N:重复由“/”或“?”给出的搜索,不往相反方向搜索。

T:在当前行向后搜索“F”命令指定的字符。如果找到了,就移动到那一列。

f:在当前行搜索“f”命令之后指定的字符。如果找到了,就将光标移动到那个位置。

n:重复上一个“/”或“?”搜索。

t:在当前行搜索“t”命令之后指定的字符。如果找到了,就将光标移动到那个字符位置之前的一列。

 

操纵字符/行格式

~:转换光标之下的字符事例(Switch the case of thecharacter under the cursor)。

<:Shift the lines up towhere to the left by one shiftwidth. "<<" shifts the currentline to the

left,and can be specified with a count。

>:Shift the lines up towhere to the right by one shiftwidth. ">>" shifts the currentline to

theright, and can be specified with a count。

J:将当前行和下一行合并起来。用count指定合并的行数。

 

保存与退出

^\:退出“VI”模式,进入“EX”模式。EX编辑器是行编辑器,VI就是建立在其上的。重新进入VI的EX命令是“:vi”。

Q:退出“VI”模式,进入“EX”模式。ex编辑器是一个逐行(line-by-line)编辑器。重新进入VI的EX命令是“:vi”。

ZZ:退出编辑器,如果有任何改动就保存。

 

其它一些指令

^G:显示当前的文件名和状态。

^L:清除并重画屏幕。

^R:重画屏幕并移除假的行。

^[:退出键。取消部分形成的命令。

^^:回到上次编辑的文件处。

!:执行一个shell。如果指定了a,使用!执行的程序将特定的行作为标准输入,同时也会替换带执行程序的标准输出的那些行。“!!”将当前行作为输入来执行一个程序。例如,“!4jsort”会从当前光标位置拿掉五行并执行sort。在键入命令之后,会有一个你可以输入命令的单独的exclamation点。

&:重复之前的“:s”命令。

.:重复最后一次修改文件的那个命令。

::开始输入一个EX编辑器命令。当用户输入回车的时候,此命令马上执行。

@:输入在特定缓存中存储的命令。

U:将当前行恢复到光标进入行之前的状态。

m:用“m”命令之后的特定字符来标记当前位置。

u:撤销对文件所作的最后一次修改。再次输入“u”会恢复修改。

 

EX命令

VI编辑器建立在另外一个叫做EX的编辑器之上。EX编辑器只通过行来编辑。在VI编辑器中,用:命令来开始键入一个EX命令。以下的列表并不完全,但是给出的命令是用得比较多的。如果用某些命令(如“:s”和“:w”)来修改不止一行,在命令之前必须指定范围。例如,要替换掉从第3行到第15行的内容,命令是“:3,15s/from/this/g”。

:abstring strings

缩写。如果在VI中输入一个与strings相关的字,编辑器会自动插入相应的字。例如,缩写“:ab usa United States ofAmerica”会在输入“usa”的时候插入字“United States of America”。

:mapkeys new-seq

映射。此命令将一个关键字或一个关键字序列映射到另外一个关键字或一个关键字序列。

:q

退出VI。如果对内容有任何改动,编辑器会发出一个警告信息。

:q!

不保存而退出VI。

:s/pattern/to_pattern/options

替换。此命令用to_pattern中的字符串替换指定的pattern。如果没有参数(选项),此命令只是替换第一个出现的pattern。如果给定了“g”,所有出现的pattern都会被替换掉。例如,命令“:1,$s/Dwayne/Dwight/g”会替换掉将所有出现的“Dwayne”替换为“Dwight”。

:set[all]

给VI和EX设定一些个性化的选项。“:set [all]”命令给出了所有可能的选项。

:unastring

移除之前由“:ab”定义的缩写。

:unmkeys

移除由“:map”定义的移除映射。

:vifilename

开始编辑一个新文件。如果没有保存对内容作出的改动,编辑器会给出一个警告。

:w

写出当前文件。

:wfilename

将缓存写到指定的文件名。

:w>> filename

将缓存的内容追加到文件中。

:wq

写缓存并退出。

 

 

 

作者:Ben Yoshino (ben@wiliki.eng.hawaii.edu)

翻译:周兆熊(zhouzxijc@gmail.com)

时间: 2024-12-24 11:38:40

掌握VI编辑器(三)的相关文章

第三天 vi编辑器使用和软件安装

[复习] 判断题: 查看某文件权限为rwxr-xr-- ,则其所属组权限为只读. 对一个目录有w权限,表示可以修改目录下文件内容. 3..tar.gz格式的压缩包可以使用tar -xjf解压缩 4.mv剪切目录时不需加-r选项. 5./sbin目录下的命令只有root可以使用. 6.find根据文件大小查找使用选项为-size ,默认单位为KB . 7.grep查找时反向查找可以使用-i . 8.改变文件的所有者可以使用命令chgrp . 目录: 第四章 vi编辑器使用 一 vi编辑器简介 二

linux下如何使用VI编辑器

[vi编辑器] 显示行数, set number 一.进入vi的命令 vi tech :打开或新建文件,并将光标置于第一行首 vi +N tech :打开文件,并将光标置于第N行首 vi + tech :打开文件,并将光标置于最后一行首 vi +/pattern tech:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r tech :在上次正用vi编辑时发生系统崩溃,恢复tech 二.移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符

linux新手入门(四) vi编辑器

首先用vi编辑器 把文件定义挂载 前面介绍过怎么挂载分区了 用 vi /etc/fstab  按o键插入 第一列表示 挂的设备的源     例如:/dev/sdb1 第二列表示 挂到什么地方去   例如:/mnt/sdb1 第三列表示 格式化类型    例如:ext4 第四列表示 挂载选项   默认 第五列表示 备份标记 0不备份 1备份 第六列表示  自检顺序 :wq 保存并退出 mount -a 把文件定义挂载 vi编辑文本 :cat -n  给文档编号  编辑器 分为 三个模式 命令模式,

linux vi-centos vi编辑器出现乱码

问题描述 centos vi编辑器出现乱码 不要百度来的那些资料,我都试过了 不行的 上图我的设置是这样的 但是打开vi还是乱码 求大神解决 解决方案 vi打开的文件到底是什么编码,用别的编辑器可以正常打开吗? 解决方案二: 用的是第三方软件链接到服务器的还是在服务器上直接用终端链接的.应该是你的字符集配置的不对. 解决方案三: 貌似我的回答也是不对,你用的是哪个版本的系统,是通过什么软件连接的. 解决方案四: 我的系统是centos 6.6 ,vimrc配置文件在/etc/vimrc,你这个是

最详细的 Vi 编辑器使用指南

引言 VI编辑器是一个被许多Unix用户使用的基于屏幕的编辑器.VI编辑器具备强大的功能来帮助程序员, 但是许多初学者因为要面对很多不同的指令而对使用VI敬而远之.写作本教程的目的就是要帮助初学者适应VI编辑器的使用,当然,也有一些小节的内容与VI 的惯用者有关.在讲解的同时举出了很多的例子,最佳的学习方法就是试着在Unix下运行这些例子,并试着举一反三.在这个世界上,没有比自己亲自去经历更 好的学习方式了. 约定 在本教程中,使用以下的约定: ^X表示一个控制字符.例如,如果你在教程中看到:^

vi编辑器使用

vi编辑器简介 vi编辑器,通常称之为vi,是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序.它的功能十分强大,但是命令繁多,不容易掌握,它可 以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的.vi不是基于窗口的,所以, 这个多用途编辑程序可以用于在任何类型的终端上编辑各式各样的文件. 本文地址:http://www.cnblogs.com/archimedes/p/linux-vi.html,转载请注明源地址. v

Linux基础命令:vi编辑器学习

说道命令,就不得不提这个特殊的命令"vi"它不光是命令,还是一个linux下的编辑器.由于时间关系,这里不在举例说明,将在以后配置网络服务时介绍一些vi的实际应用. vi命令是linux下的全屏幕http://www.aliyun.com/zixun/aggregation/18444.html">文本编辑,vi编辑器提供了丰富的编辑功能.这个编辑器十分简陋,对于初学者很不友好.但是在linux中vi编辑器作用非常大,以后尤其我们在配置各种服务器时修改配置文件时十分有用

linux vi编辑器使用教程详解

linux下的VI编辑器是标准的常用编辑器,基本上可以胜任linux下的各种情况.由于linux下都是以命令行的形式进行操作,因此我们需要了解如何在linux下使用vi编辑器. vi编辑器的概念 vi编辑器分为三种状态,分别是:1.命令模式(command mode) 控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode. 2.插入模式(Insert mode) 只有在Insert mode下,才可以做文字输入,按「ESC」键

AIX系统vi编辑器基础

1.启动编辑器 $ vi file_name 如果文件存在即可打开该文件,否则创建一个新的文件. 2.vi 编辑器的状态 vi 编辑器有两种状态: (1)命令状态 可输入各种指令,以实现 vi 的编辑功能或设置 vi 的环境 (2)文字输入状态 可直接进行文字操作 用 vi 打开或创建一个新文件之后便首先处于命令状态. 3.使用 vi (1)添加文字 1.a:在当前字符后添加文字 2.A:在当前行最后添加文字 3.i:在当前字符前添加文字 4.I:在当前行开始处添加文字 5.o:在当前行之后添加