首页

文章

linux vi

发布网友 发布时间:2022-04-19 18:13

我来回答

4个回答

热心网友 时间:2022-04-11 23:54

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑

移动光标类命令[/b]
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

热心网友 时间:2022-04-12 01:12

Vi的使用

vi(visual interpreter)为使用者提供了一个全屏幕的窗口编辑平台,窗口中一次可容纳20多行的编辑内容,并可进行上下屏的滚动。vi是全屏幕编辑程序,比ed的功能有所改进。使用vi编辑文件有大小*,这个*随UNIX版本的不同而不同。vi也是UNIX系统中配备的基本编辑工具之一。

3.2.1   如何进入vi、退出vi及保存一个文件

在vi的使用中,用户可在三种方式下工作,这三种方式可协助使用者完成文本输入、文本保存和文本修改等工作。它们是:

1)命令行方式:命令行方式是用户进入vi后的初始方式。在此方式中,用户可输入vi的命令,请求vi为你完成不同的工作。例如:光标移动、删除字符、删除单词等,也可以进行选定内容的复制、写盘及退出vi等工作。从命令行方式可切换到其他两种工作方式中,在其他两种工作方式下也可返回到命令行方式。

2)插入编辑方式:在插入编辑方式下,用户可在编写的文件中添加或输入文本及程序代码。对初学者来说应注意的是:插入方式并非是进入vi的初始状态。须使用vi的“i”、“a”等命令进行切换。当用户完成插入操作后,须点击ESC键结束插入方式返回命令行方式。

3)末行命令方式:在vi的末行命令方式下,有许多操作功能类似于命令行方式,只是它的命令输入出现在屏幕的最底部,在命令行方式下输入:“:”、“/”、“?”等字符可进入末行命令方式。在末行命令方式下,当输入的命令完成后,vi控制程序会自动返回到命令行方式下等待下一步的操作。

用户从UNIX的shell中进入vi、退出vi或在vi内部工作的三种方式之间进行转换的过程可用图

3-1描述。图中方框中描述的是用户所处的状态,箭头表示从一种状态向另一种状态的转换,箭头上标注的文字表示从vi的一种方式转换到另一种方式时需使用的命令或功能键。了解vi的这些状态转换和状态转换命令有助于更好地把握vi的使用技巧。

 

图3-1   vi中多种工作方式的转换关系

3.2.2   命令行方式下的常用命令

在vi的命令行方式下,用户可以输入相关的操作命令完成对vi的控制和对文本的编辑调整。vi中可使用的命令如表3-5所示:

表3-5   vi中使用的命令

  

  

3.2.3   末行命令方式下的常用命令

在vi的末行命令方式下也可以使用一些操作命令,完成对编辑文本的控制和管理。它与vi的命令行方式命令形成互补,命令行方式命令更多地是对编辑文本在屏幕中显示格式和位置的修改与调整,而末行命令方式命令则主要对文本全文或文件本身进行操作。末行命令方式下的操作命令如表3-6所示:

表3-6   末行命令方式下的操作命令

(续)

 

 

3.2.4   进入插入编辑方式的常用命令

在vi中可以有多种方式从命令行或末行命令方式进入插入编辑方式中,例如可以使用下面表3-7列出的命令:

表3-7   进入插入编辑方式的常用命令

  

3.2.5   使用vi的注意事项

由于UNIX系统的vi编辑器是从行编辑器ed发展而来的,实事求是地讲,它不如目前流行的微软推出的同类产品易用、直观。但它是UNIX系统中配备的基本编辑工具,在多种版本的UNIX系统中都会内置ed和vi编辑器,因此掌握这些工具的使用方法还是很有必要的。作为UNIX系统的初学者,在开始使用vi时可能会感到有一些不便和困惑,这对学习vi是十分不利的,因为这样可能会使用户丧失使用vi的信心。针对这类问题我们在这里列出一些使用vi时应注意的事项和对可能碰到问题的解决方法,希望能对初学者有所帮助。当然,对vi的编辑技巧和使用经验还需要使用者在学习和使用中不断地自我积累。

1)对vi的多种方式使用不习惯,在插入编辑方式和命令方式切换时出现混乱,使用户不知所措。这种情况的产生常常是由于:还未输入插入命令,便开始进行文本输入,从而使所编信息无法输入到文本的正确位置上;另外当插入信息完成后,还未按[Esc]键结束插入编辑方式,就又输入了其他的命令信息,从而使命令无法执行。当出现这些情况时,用户首先要确定自己所处的操作方式,然后再决定下一步做什么工作。若不易搞清楚当前所处的状态时,可以使用[Esc]键退回到命令输入方式重新进行输入。

2)在做文档编辑时,vi的编辑屏幕产生混乱状态。这种状态的产生往往是由于屏幕刷新有误,此时可以用Ctrl+l命令对屏幕进行刷新,有的终端也可以使用Ctrl+r进行屏幕刷新。

3)对屏幕中显示的信息进行操作时系统没有反应。出现这种情况有可能是由于屏幕的输出进程被挂起(如不慎输入了Ctrl+s键等),此时可用Ctrl+q键进行解脱,然后重新进行输入。

4)当用户编辑工作完成后,出现不能正确退出vi的现象。出现这种情况有可能是此刻系统出现了意外情况。例如:文件系统的容量超出、用户对所编辑的文件没有写权限等。如果用强行退出命令“:w!”仍无法退出时,可以用“:w newfile”命令将文件进行重新存盘,以减少工作中的损失。而这个新文件newfile应是用户有写权限的文件,如果暂时没有可以使用的文件,可以借助/tmp目录的特殊性创建一个新的文件。因为UNIX系统中的/tmp目录是一个临时目录,系统启动时总要刷新该目录。因此操作系统一般情况下不对此目录进行保护,利用这个特点可将无法存储的文件暂时存入其中,这样可以解燃眉之急。但当处理完成后,切记应对此目录中的有用文件及时进行转储,否则依然会造成信息损失。

5)在使用vi时,万一发生了系统掉电或系统突然宕机的情况怎么办?工作时发生掉电和宕机无疑对于正在进行的工作是一种损失,但UNIX系统的vi程序可以使你的损失降到最小。因为对vi的操作实际上是在对编辑缓冲区进行操作,而系统会经常自动地保存编辑缓冲区的内容。因此宕机后用户可以在下次登录系统后,用-r选项进入vi将系统中最后保存的版本恢复出来。例如:

1. % vi  -r  file-to-be-edit 

这样起码可以得到最近一次编辑文档存储的内容。

vi的学习更应侧重于实际的应用。在了解了vi的使用规则后就应当多上机操作,不断地积累经验,逐步使自己成为vi编辑能手。

3.2.6   vi环境的设置

通过设置(或取消设置)某些选项,用户可以对编辑器vi的环境进行个性化定制,这种定制可以是临时的也可以是永久的。

1. 临时更改vi的环境

每当进入vi时,选项均设置为特定的默认值,用户可以自行修改这些设置,直到满意为止。当退出vi时,所有选项均还原为默认值。这种方式是临时性修改方式。在这种方式下,每进入vi时都需要重新设置选项,但选项的修改并不对下一次的使用产生影响。

要查看所有默认选项,请键入:

1. :set all    

2.     /*这里的冒号表示使用vi的末行方式命令*/ 

要更改这些选项的值时,可使用:set命令:

1. :set option 

这里option是要使用的编辑器选项的名称,具体内容参阅表3-8中关于vi选项的说明。

要取消设置(撤销)某个编辑器选项,请在选项前键入no:

1. :set no option 

表3-8   vi编辑器常用选项表

  

(续)

  

2. 永久改变vi环境

为了避免每次进入vi时都要设置选项或定义缩写或宏,在Linux中可以将所有常用的选项和定义放入用户主目录下的.exrc文件中。这样每次进入vi时,系统都会自动读取此文件,将已定制后的vi环境保持下来。

要创建或更改.exrc文件,请执行以下操作序列:

1. % cd   

2. % vi .exrc 

键入希望设置的永久性选项、单词缩写和宏(不要在命令前加冒号)。键入:wq,保存文本并退出vi。

以上举例说明了一些更改vi整体行为的选项。另外,还可以使用ab定义常用表达式的缩写形式,供vi识别时使用,这样可以使vi的编辑工作更方便。下面给出一个修改.exrc文件的例子。

创建一个.exrc文件,使其包括以下选项和缩写内容:

1. set wm=8 

2. set showmode  

3. ab eeg Electrical Engineering 

保存并关闭文件后,重新启动vi可看到对vi环境所做的更改。这时,每次进入vi时你都会发现:

右边距自动包含8个空格(更改了默认值0),回车键将出现在大约72个空格后。

处于文本插入模式时,屏幕右下角将显示“INPUT MODE”。

无论何时输入eeg,此缩写都会自动扩展成Electrical Engineering。

退出VI的方法

当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。

 在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。

 在末行模式下,输入命令

  :w

  Vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。

  :w newfile

  此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息:

  File exists (use ! to override)

  此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令

  :w! newfile

  否则可选择另外的文件名来保存当前文件。

   在末行模式下,输入命令

  :q

  系统退出Vi返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显示窗口的最末行显示如下信息:

  No write since last change (use ! to overrides)

  提示用户该文件被修改后没有保存,然后Vi并不退出,继续等待用户命令。若用户就是不想保存被修改后的文件而要强行退出Vi时,可使用命令

  :q!

  Vi放弃所作修改而直接退到shell下。

   在末行模式下,输入命令

:wq

  Vi将先保存文件,然后退出Vi返回到shell。

  在末行模式下,输入命令

   :x

  该命令的功能同命令模式下的ZZ命令功能相同。

参考资料:http://book.51cto.com/art/201001/179465.htm

热心网友 时间:2022-04-12 02:47

Vi,是一款由加州大学伯克利分校、Bill Joy研究开发的文本编辑器。

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

注意:vi是Unix/Linux操作系统中最经典的文本编辑器,只能在编辑字符,不能对字体、段落进行排版,它既可以新建文件,也可以编辑文件;它没有菜单,只有命令,且命令繁多。

虽然vi的操作方式与其他常用的文本编辑器很不相同,但是由于其运行于字符界面,并可用于所有Unix/Linux环境,仍被经常使用。

vi的三种命令模式  

command(命令)模式,用于输入命令

Insert(插入)模式,用于插入文本

Visual(可视)模式,用于视化的高亮并选定正文

①命令模式

命令模式是启动vi后进入的工作模式,并可转换为文本编辑模式和最后行模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作,否则vi会响铃警告。

②文本编辑模式

文本编辑模式用于字符编辑。在命令模式下输入i、a等命令后进入文本编辑模式,此时输入的任何字符都被vi当作文件内容显示在屏幕上。按Esc键可从文本编辑模式返回到命令模式。

③最后行模式

在命令模式下,按“:”进入最后行模式,此时vi会在屏幕的底部显示“:”符号年作为最后行模式的提示符,等待用户输入相关命令。命令执行完毕后,vi自动回到命令模式。

热心网友 时间:2022-04-12 04:38

有图片

八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 想知道linux中vi的用法 Linux vi 操作命令 linux中vi编辑器怎样使用 linux下是如何进入vim 如何在linux中vi使用方法 linux下是如何进入vim? linux图形界面如何进入Vi linux vi如何进入命令模式 在 linux 系统中,“vi”命令的使用方法是什么? Linux进入vi linux的vi命令怎么进去 怎么进入 LINUX的VI编辑器 微信看不到好友的朋友圈背景,为什么?没有被删。。 朋友圈背景图怎么只限一人可见? 怎么把朋友圈封面设置成无 怎么让微信朋友圈背景别人看不到 朋友圈背景动态图能设置隐私吗 微信朋友圈的背景图可以设置查看权限吗 没有发过朋友圈怎么让对方看到背景? 鸡肉放冰箱可以放多久 linux系统中vi编辑器如何使用? 我的系统是红旗Linux6.0的,请问我如何才能从命令... Linux中的vi怎么用啊 linux中使用vi指令后怎么输入 新版ccie笔试的有效期是多长时间,还是以前的18个... 现在CCIE笔试 考多少道题,都是选择题吗,帮介绍一下... ccnp过了考ccie还需要笔试吗 中美贸易战前瞻美国为何总拿华为开刀原因分析400字... 哪位大神能解释下中美贸易战,吾等真的不懂 中美贸易战啥情况? 如何评价中美贸易战? 中美贸易战现在如何了?最新的动态是什么?关系怎... 中美贸易战真的如CCTV所说是美国的损失吗? 电脑如何弹出硬盘 中美贸易战真的打起来 双方手中都有什么“底牌” window10电脑移动硬盘怎么弹出 笔记本怎样打开硬盘 人类历史上一次最大规模的贸易战——中美贸易战及其... 笔记本上放光盘,按哪个按键可以弹出槽呀 中美贸易战的开端是哪次事件?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com