`
splinter_2
  • 浏览: 58960 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

vi命令 用法 unix linux

阅读更多
一、Unix编辑器概述
      编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix及其相似的ix 操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑器,包括 ex, edit,ed vi.其中ex,edit,ed都是行编辑器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。值得庆幸的是,Unix提供了全屏幕的Vi编辑器,这使我们的工作轻松不少。不少DOS用户抱怨Vi编辑器不象 DOS下的编辑器如edit那么好用,这是因为Vi考虑到各种用户的需要,没有使用某些通用的编辑键(在各个不同的终端机上他们的定义是不同的,在某些终端机上甚至没有这些键)。而是采用状态切换的方法,但这只是习惯的问题,一旦你熟练的使用上了vi你就会觉得它其实也很好用。
      虽然 Vi采用了状态切换的方法,但电脑的硬件及操作系统多种多样,某些电脑的键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在 Unix 系统上也一样,几乎各大电脑厂商都有自己的 Unix 系统,而 vi 的操作方法也会随之有点出入。这里我们采用 PC 的键盘来说明 vi 的操作,但在具体的环境中还要参考相应的资料,这一点是值得注意的。

二、Vi入门

(一)、进入vi
      在系统提示字符($#)下敲入vi <档案名称>,vi 可以自动帮你载入所要编辑的文件或是开启一个新文件(如果该文件不存在或缺少文件名)。进入 vi 后萤幕左方会出现波浪符号,凡是列首有该符号就代表此列目前是空的。

(二)、两种模式
       如上所述,vi存在两种模式:指令模式和输入模式。在指令模式下输入的按键将做为指令来处理:如输入 avi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处於什麽模式,可以多按几次 [ESC],系统如发出哔哔声就表示已处于指令模式下了。
付:在指令模式进入输入模式的指令:
新增 (append)
a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。
A从光标所在列最後面的地方开始新增资料。

插入 (insert)
i从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。
I :从光标所在列的第一个非空白字元前面开始插入资料。

开始 (open)
o :在光标所在列下新增一列并进入输入模式。
O: 在光标所在列上方新增一列并进入输入模式。

(三)、退出vi
      在指令模式下键入:q,:q!,:wq:x(注意:号),就会退出vi。其中:wq:x是存盘退出,而:q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w命令保存文件后再用:q 退出,或用:wq:x命令退出,如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出vi


(四)、基本编辑

       配合一般键盘上的功能键,像是方向键、[Insert] [Delete] 等等,现在你应该已经可以利用 vi 来编辑文件了。当然 vi 还提供其他许许多多功能让文字的处理更为方便。
      何谓编辑?一般认为是文字的新增、修改以及删除,甚至包括文字区块的搬移、复制等等。先这里介绍 vi 的如何做删除与修改。(注意:在 vi 的原始观念里,输入跟编辑是两码子事。编辑是在指令模式下操作的,先利用指令移动光标来定位要进行编辑的地方,然後才下指令做编辑。)

删除与修改文件的命令:
x删除光标所在字符。
dd :删除光标所在的列。
r :修改光标所在字元,r 後接著要修正的字符。
R进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。
s删除光标所在字元,并进入输入模式。
S删除光标所在的列,并进入输入模式。

      其实呢,在PC上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如要删除字元,直接按 [Delete] 不就得了。而插入状态与取代状态可以直接用 [Insert] 切换,犯不著用什麽指令模式的编辑指令。不过就如前面所提到的,这些指令几乎是每台终端机都能用,而不是仅仅在 PC 上。在指令模式下移动光标的基本指令是 h, j, k, l 。想来各位现在也应该能猜到只要直接用 PC 的方向键就可以了,而且无论在指令模式或输入模式下都可以。多容易不是。当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的文字,而 U 指令则可以恢复光标所在列的所有改变。这与某些电脑上的 [Undo] 按键功能相同。

三、附件:vi详细指令表

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

移动光标类命令
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:
修改指定数目的行

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

搜索及替换命令
/pattern:
从光标开始处向文件尾搜索pattern
?pattern:
从光标开始处向文件首搜索pattern
n:
在同一方向重复上一次搜索命令
N:
在反方向上重复上一次搜索命令
:s/p1/p2/g:
将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:
将第n1n2行中所有p1均用p2替代
:g/p1/s//p2/g:
将文件中所有p1均用p2替换


选项设置
all
:列出所有选项设置情况
term
:设置终端类型
ignorance
:在搜索中忽略大小写
list
:显示制表位(ctrl+i)和行尾标志($)
number
:显示行号
report
:显示由面向行的命令修改过的数目
terse
:显示简短的警告信息
warn
:在转到别的文件时若没保存当前文件则显示no write信息
nomagic
:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan
:禁止vi在搜索到达文件两端时,又从另一端开始
mesg
:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
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
n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1n2,则表示将整个文件内容作为command的输入
r!command:将命令command的输出结果放到当前行
寄存器操作
"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
分享到:
评论

相关推荐

    Linux vi命令用法

    Linux中的vi编辑器是Unix系统中最古老的文本编辑器之一,其增强版VIM(Vi Improved)在现代Linux发行版中广泛使用。掌握vi的基本操作对于Linux用户来说至关重要,因为无论在哪个Unix环境中,几乎都能找到它的身影。...

    vi命令全 vi 常用命令 unix vi 常用命令 vi 替换命令 unix vi 命令 vi 命令模式

    vi 命令大全 Vi 编辑器是 UNIX 操作系统中最流行的编辑器之一。它具有功能强大、灵活、易于使用的特点。Vi 编辑器可以在所有的 UNIX 操作系统(包括 Linux ...用户可以通过这些资源来学习 vi 编辑器的使用方法和技巧。

    详解linux vi命令用法

    详解linux vi命令用法 功能最强在的编辑器——vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑...

    linux_vi 命令

    ### Linux Vi 命令详解 #### 一、Vi 编辑器基本概念 Vi(Visual editor)是一种广泛应用于Linux及Unix系统中的文本编辑器。...对于Linux或Unix系统的用户来说,熟练掌握vi编辑器的使用方法是非常重要的。

    aix\linux\unix下vi命令使用大全

    ### AIX/Linux/Unix 下 Vi 命令使用大全 #### 概述 Vi 编辑器是 Unix、Linux 及其衍生系统中最常用的文本编辑工具之一。它具有功能强大、使用灵活的特点,并且几乎在所有的类 Unix 系统中都能找到它的身影。本文将...

    Linux系统基本操作命令与vi编辑器使用

    Linux系统基本操作命令与vi编辑器使用 ...Linux系统基本操作命令和vi编辑器使用是Linux系统中非常重要的两个方面,掌握这些基本操作命令和vi编辑器使用方法可以帮助我们更好地管理和维护Linux系统。

    linux_vi命令

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他...

    linux、samba、vi命令大全集合.doc

    Linux、Samba、Vi 命令大全集合 本资源概述了 Linux、Samba 和 Vi 命令的使用方法...本资源提供了 Linux、Samba 和 Vi 命令大全的使用方法和相关知识点,为用户提供了一个系统的Linux、Samba 和 Vi 命令大全参考指南。

    简单的vi命令列表 可以简单参考

    `vi` 是一款功能强大的文本编辑器,广泛应用于各种 Linux 和 Unix 操作系统中。本文将基于提供的标题、描述和部分内文来深入探讨 `vi` 编辑器中的基本编辑指令及其用法。 #### 基本编辑指令 在 `vi` 编辑器中有三...

    Linux下最基本的文本编辑器vi使用方法

    Linux 下最基本的文本编辑器 vi 使用方法 vi 编辑器是 Unix 和 Linux 操作系统下最基本的文本编辑器,具有三种工作模式:指令模式、输入模式、末行模式。用户可以通过输入特定的命令在不同模式之间切换。下面是 vi ...

    linux vi 常用命令

    本文将详细介绍VI编辑器的使用方法,包括其三种主要的操作模式以及各种实用命令。 #### 二、VI的三种操作模式 - **命令模式(Command mode)**:此模式下,可以控制屏幕光标的移动,进行字符或光标的删除、移动、复制...

    vi 学习笔记——取自《Unix&Linux;大学教程》

    虽然vim并不是vi的新版本,也不是vi的扩展,但是它与vi高度兼容,可以使用所有vi的标准命令。 如何判断系统上安装的是vi还是vim: 1. 通过命令man vi查看手册页。如果显示的是vim的说明书页,则说明系统上安装的是...

    LINUX系统中VI命令的具体使用方法

    在Linux系统中,VI(Visual Editor)是一款强大的文本编辑器,尤其在Unix-like操作系统中广泛使用。虽然初学者可能会觉得它的操作方式复杂,但一旦掌握其精髓,你会发现它无比高效和灵活。以下是一些关于VI命令的...

    linux的vi用法

    Linux中的vi编辑器是系统默认的标准文本编辑器,无论是在哪个Unix或Linux版本中,它的功能都非常强大。本文将简要介绍vi编辑器的基本用法和常见操作。 首先,vi编辑器主要有三个工作模式:命令模式(Command Mode)...

    Linux之VI命令详解

    ### Linux之VI命令详解 #### 一、VI编辑器简介 **VI**(Visual Interface)编辑器是所有UNIX系统以及类UNIX系统(包括Linux)中都标配的一种文本编辑工具。由于其强大的功能和普遍性,成为了UNIX/Linux环境中进行...

    UNIX vi命令一览表

    《UNIX vi命令详解》 在计算机领域,尤其是Linux和UNIX操作系统中,文本编辑器是不可或缺的工具,用于创建、修改和查看文本文件。而在众多编辑器中,vi(Visual Editor)因其强大的功能和高效的编辑模式,成为了最...

    linux下vi简单命令介绍

    本文主要针对 Linux 系统下的 vi 编辑器进行简单的命令介绍,旨在帮助初学者快速上手并掌握基本操作方法。 #### 标签:Linux 下 vi 简单命令介绍 #### 命令列表与详细解释 在深入讲解之前,我们先来了解几个关键...

Global site tag (gtag.js) - Google Analytics