如何在linux中vi使用方法

作者&投稿:延盾 (若有异议请与网页底部的电邮联系)
~

vi 的工作模式

Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、 复制或粘贴文字等。

这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k 是 向下移动光标,相当于向下箭头键。

在编辑模式下,用户还可以利用一些特殊按键选定文字,然后 再进行删除、或复制等操作。

当用户在编辑模式下键入 i, a, o 等命令之后,可进入插入模式;键入 : 可进入命名模式。

在插入模式下,用户随后输入的,除 Esc 之外的任何字符均将被看成是插入到编辑缓冲区中 的字符。

按 Esc 之后,从插入模式切换到编辑模式。

在命令模式,Vi 将把光标挪到屏幕的最下方,并在第一个字符的位置显示一个 :(冒号)。

这时, 用户就可以键入一些命令。

这些命令可用来保存文件、读取文件内容、执行 Shell 命令、设置 Vi 参数、以正则表达式的方式查找字符串或替换字符串等。

编辑模式

1. 移动光标

要对正文内容进行修改,首先必须把光标移动到指定位置。

移动光标的最简单的方式是按键盘的上、下、左、

右箭头键。

除了这种最原始的方法之外,用户还可以利用 vi 提供的众多字符组合键,在正文中移动光标,迅

速到达指定的行或列,实现定位。

例如:

k、j、h、l 功能分别等同于上、下、左、右箭头键

Ctrl+b 在文件中向上移动一页(相当于 PageUp 键)

Ctrl+f 在文件中向下移动一页(相当于 PageDown 键)

H 将光标移到屏幕的最上行(Highest)

nH 将光标移到屏幕的第 n 行

2H 将光标移到屏幕的第 2 行

M 将光标移到屏幕的中间(Middle)

L 将光标移到屏幕的最下行(Lowest)

nL 将光标移到屏幕的倒数第 n 行

3L 将光标移到屏幕的倒数第 3 行

w 在指定行内右移光标,到下一个字的开头

e 在指定行内右移光标,到一个字的末尾

b 在指定行内左移光标,到前一个字的开头

0 数字0,左移光标,到本行的开头

$ 右移光标,到本行的末尾

^ 移动光标,到本行的第一个非空字符

2. 替换和删除

将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多

个字符。

例如:

rc 用 c 替换光标所指向的当前字符

nrc 用 c 替换光标所指向的前 n 个字符

5rc 用 c 替换光标所指向的前 5 个字符

x 删除光标所指向的当前字符

nx 删除光标所指向的前 n 个字符

3x 删除光标所指向的前 3 个字符

dw 删除光标右侧的字

ndw 删除光标右侧的 n 个字

3dw 删除光标右侧的 3 个字

db 删除光标左侧的字

ndb 删除光标左侧的 n 个字

5db 删除光标左侧的 5 个字

dd 删除光标所在行,并去除空隙

ndd 删除 n 行内容,并去除空隙

3dd 删除 3 行内容,并去除空隙

3. 粘贴和复制

从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。

用户可

将其粘贴到正文中的指定位置。

完成这一操作的命令是:

p 小写字母 p,将缓冲区的内容粘贴到光标的后面

P 大写字母 P,将缓冲区的内容粘贴到光标的前面

如果缓冲区的内容是字符或字,直接粘贴在光标的前面或后面;如果缓冲区的内容为整行正文,则粘贴在当前

光标所在行的上一行或下一行。

注意上述两个命令中字母的大小写。

vi 编辑器经常以一对大、小写字母(如 p 和 P)来提供一对相似的功能

通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。

有时需要复制一段正文到新位置,同时保留原有位置的内容。

这种情况下,首先应当把指定内容复制(而不是

剪切)到内存缓冲区。

完成这一操作的命令是:

yy 复制当前行到内存缓冲区

nyy 复制 n 行内容到内存缓冲区

5yy 复制 5 行内容到内存缓冲区

4. 搜索字符串

和许多先进的编辑器一样,vi 提供了强大的字符串搜索功能。

要查找文件中指定字或短语出现的位置,可以

用 vi 直接进行搜索,而不必以手工方式进行。

搜索方法是:键入字符 / ,后面跟以要搜索的字符串,然后

按回车键。

编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字符串后,将光标停到该字符串的

开头;键入 n 命令可以继续执行搜索,找出这一字符串下次出现的位置。

用字符 ? 取代 / ,可以实现反向

搜索(朝文件开头方向)。

例如:

/str1 正向搜索字符串 str1

n 继续搜索,找出 str1 字符串下次出现的位置

?str2 反向搜索字符串 str2

无论搜索方向如何,当到达文件末尾或开头时,搜索工作会循环到文件的另一端并继续执行。

5. 撤销和重复

在编辑文档的过程中,为消除某个错误的编辑命令造成的后果,可以用撤消命令。

另外,如果用户希望在新

的光标位置重复前面执行过的编辑命令,可用重复命令。

u 撤消前一条命令的结果

. 重复最后一条修改正文的命令

6. 文本选中

vi 可进入到一种成为 Visual 的模式,在该模式下,用户可以用光标移动命令可视地选择文本,然后再 执行其他编辑操作,例如删除、复制等。

v 字符选中命令 V 行选中命令

插入模式

1. 进入插入模式

在编辑模式下正确定位光标之后,可用以下命令切换到插入模式:

i 在光标左侧输入正文

a 在光标右侧输入正文

o 在光标所在行的下一行增添新行

O 在光标所在行的上一行增添新行

I 在光标所在行的开头输入正文

A 在光标所在行的末尾输入正文

上面介绍了几种切换到插入模式的简单方法。

另外还有一些命令,它们允许在进入插入模式之前首先删去一段

正文,从而实现正文的替换。

这些命令包括:

s 用输入的正文替换光标所指向的字符

ns 用输入的正文替换光标右侧 n 个字符

cw 用输入的正文替换光标右侧的字

ncw 用输入的正文替换光标右侧的 n 个字

cb 用输入的正文替换光标左侧的字

ncb 用输入的正文替换光标左侧的 n 个字

cd 用输入的正文替换光标的所在行

ncd 用输入的正文替换光标下面的 n 行

c$ 用输入的正文替换从光标开始到本行末尾的所有字符

c0 用输入的正文替换从本行开头到光标的所有字符

2. 退出插入模式

退出插入模式的方法是,按 ESC 键或组合键Ctrl+[ 。

1.6.4 命令模式

在 vi 的命令模式下,可以使用复杂的命令。

在编辑模式下键入“:”,光标就跳到屏幕最后一行,并在 那里显示冒号,此时已进入命令模式。

命令模式又称“末行模式”,用户输入的内容均显示在屏幕的最后 一行,按回车键,vi 执行命令。

1. 退出命令

在编辑模式下可以用 ZZ 命令退出 vi 编辑程序,该命令保存对正文所作的修改,覆盖原始文件。

如果只需要

退出编辑程序,而不打算保存编辑的内容,可用下面的命令:

: q 在未作修改的情况下退出

: q! 放弃所有修改,退出编辑程序

2. 行号与文件

编辑中的每一行正文都有自己的行号,用下列命令可以移动光标到指定行:

: n 将光标移到第 n 行

命令模式下,可以规定命令操作的行号范围。

数值用来指定绝对行号;字符“.”表示光标所在行的行号;字符

符“___FCKpd___8rdquo;表示正文最后一行的行号;简单的表达式,例如“.+5”表示当前行往下的第 5 行。

例如:

:345 将光标移到第 345 行

:345w file 将第 345 行写入 file 文件

:3,5w file 将第 3 行至第 5 行写入 file 文件

:1,.w file 将第 1 行至当前行写入 file 文件

:.,$w file 将当前行至最后一行写入 file 文件

:.,.+5w file 从当前行开始将 6 行内容写入 file 文件

:1,$w file 将所有内容写入 file 文件,相当于 :w file 命令

在命令模式下,允许从文件中读取正文,或将正文写入文件。

例如:

:w 将编辑的内容写入原始文件,用来保存编辑的中间结果

:wq 将编辑的内容写入原始文件并退出编辑程序(相当于 ZZ 命令)

:w file 将编辑的内容写入 file 文件,保持原有文件的内容不变

:a,bw file 将第 a 行至第 b 行的内容写入 file 文件

:r file 读取 file 文件的内容,插入当前光标所在行的后面

:e file 编辑新文件 file 代替原有内容

:f file 将当前文件重命名为 file

:f 打印当前文件名称和状态,如文件的行数、光标所在的行号等

3. 字符串搜索

给出一个字符串,可以通过搜索该字符串到达指定行。

如果希望进行正向搜索,将待搜索的字符串置于两个“

/”之间;如果希望反向搜索,则将字符串放在两个“?”之间。

例如:

:/str/ 正向搜索,将光标移到下一个包含字符串 str 的行

:?str? 反向搜索,将光标移到上一个包含字符串 str 的行

:/str/w file 正向搜索,并将第一个包含字符串 str 的行写入 file 文件

:/str1/,/str2/w file 正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写

入 file 文件

4. 正文替换

利用 :s 命令可以实现字符串的替换。

具体的用法包括:

:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1

:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1

:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1

:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1

:g/str1/s//str2/g 功能同上

从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索

字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

5. 删除正文

在命令模式下,同样可以删除正文中的内容。

例如:

:d 删除光标所在行

:3d 删除 3 行

:.,$d 删除当前行至正文的末尾

:/str1/,/str2/d 删除从字符串 str1 到 str2 的所有行

6. 恢复文件

vi 在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 . 开头,并以 .swp 结尾。

vi 在

正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则可以使用恢复命令:

:recover 恢复文件

也可以在启动 vi 时利用 -r 选项。

选项设置

为控制不同的编辑功能,vi 提供了很多内部选项。

利用 :set 命令可以设置选项。

基本语法为:

:set option 设置选项 option

常见的功能选项包括:

autoindent 设置该选项,则正文自动缩进

ignorecase 设置该选项,则忽略规则表达式中大小写字母的区别

number 设置该选项,则显示正文行号

ruler 设置该选项,则在屏幕底部显示光标所在行、列的位置

tabstop 设置按 Tab 键跳过的空格数。

例如 :set tabstop=n,n 默认值为 8

mk 将选项保存在当前目录的 .exrc 文件中

shell 切换

在编辑正文时,利用 vi 命令模式下提供的 shell 切换命令,无须退出 vi 即可执行 Linux 命令,十分

方便。

语法格式为:

:! mand 执行完 shell 命令 mand 后回到 vi

另外,在编辑模式下,键入 K ,可命令 vi 查找光标所在单词的手册页,相当于运行 man命令。

vim 和 gvim 的高级特色

Vim 代表 Vi IMproved,如同其名称所暗示的那样,Vim 作为标准 UNIX 系统 vi 编辑器的提高版而存在。

Vim 除提供和 vi 编辑器一样强大的功能外,还提供有多级恢复、命令行历史以及命令及文件名补全等 功能。

gvim 是 vi 的 X Window 版本,该版本支持鼠标选中,一些高级光标移动功能,并且带有菜单和工具按钮。




linux中 Redhat Centos ubuntu Fedora 的区别
如果发行版本是可以盈利的,那linux内核的作者linus能得到什么好处呢? linux内核的每次升级都是linus这个最初的作者一直在搞的吗?每次升级花费的人力物力,对这个作者有何经纪上的回报吗? linux盈利方式:linux个人桌面版是可以免费获得并使用的,但像redhat企业版,redflag红旗企业版,是需要购买服务的,企业版主要针对的是...

在linux 中使用uptime 所看到的负载数怎么判断负载高
uptime gives a one line display of the following information. The current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes.uptime会打印出过去1\/5\/15 分钟的负载,负载值越大...

如何在Linux平台下开发实际的音频应用程序
目前Linux下常用的声卡驱动程序主要有两种:OSS和ALSA。最早出现在Linux上的音频编程接口是OSS(Open Sound System),它由一套完整的内核驱动程序模块组成,可以为绝大多数声卡提供统一的编程接口。OSS出现的历史相对较长,这些内核模块中的一部分(OSS\/Free)是与Linux内核源码共同免费发布的,另外一些则以二进制的形式由4...

阿里云的Linux服务器安装vncserver图形化操作界面的时候,\/root\/.vnc\/...
在linux安装vnc服务端何必这么麻烦 直接登录iis7服务器管理工具 找到linux系统环境,登录需要设置的服务器,注意,这款服务器管理工具支持多系统服务器,包括windows及linux。然后进入vnc服务端安装及设置。同时这款服务器管理工具还具备ftp及vnc客户端的功能,纯中文的界面,更加符合国人工作习惯,还是免费的...

linux下共享文件怎么查看
1、单击系统按钮选项。2、单击首选项按钮。3、单击个人文件共享。4、勾选在网络中共享,设置密码。5、最后单击关闭选项。注意事项:Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员...

linux系统里restore命令如何使用
-r:进行还原操作;-R:全面还原文件系统时,检查应从何处开始进行;-s<文件编号>:当备份数据超过一卷磁带时,用户可以指定备份文件的编号;-t:指定文件名称,若该文件已存在备份文件中,则列出它们的名称;-v:显示指令执行过程;-x:设置文件名称,且从指定的存储媒体里读入它们,若该文件已存在在...

linux内核系统有哪些linux内核系统
1、veket系统 veket系统目前包括veket-x86平台系统和随身系统,还有上网本系统,分别对应veket-8系统、veket-7系统和veket-5系统。经过测试,veket-7和veket-5在使用上比较完善。veket-8目前还处于测试期,在功能上可能还不稳定。2、Ubunto系统 这个系统又名乌班图系统,也是一个以桌面应用为主的Linux操作...

linux怎么安装软件
1、打开系统,可以看到桌面,找到软件中心,打开软件中心 2、在这里你可以安装一些软件,但是软件比较少 3、你还可以直接从网站上下好deb的安装包,然后双击进行安装 4、双击后,会在应用市场打开它,然后点击安装就可以了 5、或者你在安装包在的文件夹,按住shift,点击鼠标右键,会弹出如下界面,点击在...

Linux关于地址空间和MMAP映射有何特点
Linux采用 虚拟 内存技术,系统中的所有进程之间以虚拟方式共享内存。对每个进程来说,它们好像都可以访问整个系统的所有物理内存。更重要的是,即使单独一个进程,它拥有的地址空间也可以远远大于系统物理内存。进程地址空间由每个进程中的线性地址区组成,每个进程都有一个32位或64位的平坦(flat)空间,...

在LINUX下怎样使用COM组件
COM组件技术在Linux C++下的使用例子COM的接口一. 接口概念的出现承接COM的目的,现在需要将重用的COM对象相互关联在一起,那么有什么好方法呢?(1)OO中使用public成员来让外界和内部对象进行数据交互。COM中更进一步,只能使用public的成员函数。因为直接访问对象内存不利于实行低耦合的模型,所以数据的交互都应该使用函数调...

东丽区17751894243: 在 linux 系统中,“vi”命令的使用方法是什么? -
宏姚君佳: 一般模式常用操作 【h(或向左方向键)】 光标左移一个字符 【j(或向下方向键)】 光标下移一个字符 【k(或向上方向键)】 光标上移一个字符 【l(或向右方向键)】 光标右移一个字符 【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down...

东丽区17751894243: linux命令vi文本编辑器的使用方法 -
宏姚君佳: 如果你想编辑某个文档 可以直接编辑的如你有文档AA 可以用vi AA 【注意:必须在AA所在的目录下】 如果没有文档而且你又想编辑就可以直接编辑vi aa【名字你可以随便命名】 也可以先建立一个文档touch aa 然后再编辑vi aa 编辑器有三种模...

东丽区17751894243: Linux中的vi怎么用啊 -
宏姚君佳: vi进入文档光标移动到要编辑位置按i进入编辑模式 esc退出编辑模式 :wq保存退出 :q!强制退出

东丽区17751894243: Linux下如何使用Vi编辑器 -
宏姚君佳: 给点参考吧 还蛮详细的 vi文本编辑器的使用 一.vi的模式 命令模式:vi启动默认进入的模式,可进入输入模"i",或末行模式(:),除了可以完成命令的功能外,也是后两种模式的转换点 输入模式:即文本辑辑状态,最后一行显示"-- INSERT...

东丽区17751894243: linux中vi编辑软件该怎么使用 -
宏姚君佳: vi的使用不是一两句能够说得清的,你可以在linux 中man vi可以简单的入门,在日后可以一边使用一边学习,目前我也在学习vim.

东丽区17751894243: linux里面的vi编辑器怎么用啊,不会呢? -
宏姚君佳: vi XXX(文件名字)就是打开文件 给你说说两个最常用的吧,其他功能很多,也说不完,需要你自己去看帮助文档咯 vi 一般修改文件的时候会用到,但是有时候文件很大怎么办 i是可以修改文件,Esc+:+qw保存并退出,Esc+:+q+!退出文件不做修改 cat -n XX | grep "张三" 这样就能将“张三”所在的行数列出来 vi +166 XX 比如“张三”在166行,这样打开文件光标就直接在166行,就可以修改我需要的内容,比如将“张三”该为“李四”

东丽区17751894243: linux脚本中怎么使用vi编辑器
宏姚君佳: Vim 是 Vi improved 的缩写,是 vi 的改进版.在Linux中,vi 被认为是事实上的标准编辑器,因为: 所有版本的 Linux 都带有 vi 编辑器; 占用资源少; 与 ed、ex 等其他编辑器相比,vi 对用户更加友好. 你可以使用 vi 编辑器编辑现有的文件,也...

东丽区17751894243: Linux操作系统平台Vi指令大全有哪些?
宏姚君佳: 进入vi的命令 vi filename: 打开或新建文件,并将光标置于第一行首 vi +n filename: 打开文件,并将光标置于第n行首 vi + filename: 打开文件,并将光标置于最后一行首...

东丽区17751894243: 在ubuntu中的vi编辑器中怎么使用 -
宏姚君佳: 1.ubuntu上的vi编辑器 默认情况下ubuntu上也安装有vi但是奇怪的是这个vi是vim-common版本,基本上用不了所以要先把这个版本的vi卸载掉才可以,卸载命令是 sudo apt-get remove vim-common 卸载成功之后接着执行 sudo apt-get install vim,...

东丽区17751894243: Linux关于VI的使用,求具体应该输入的命令 -
宏姚君佳: 1. 首先要确保linux系统下已经安装vi编辑器或者vim编辑器2. 打开终端,输入vi或者vim就会打开vi编辑器,vi编辑器是非常强大的编辑器3. 想输入代码需要进入插入模式,按i键就进入了插入模式,这个时候就可以写代码了4. 写完代码后 需要转换模式shift+:转换模式后,在终端最下边会有一行可以输入命令输入wq保存,想了解更多可以网上查询vi编辑器快捷键

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网