linux中vi(linux进入vi编辑器怎么编辑)
大家好,今天来为大家解答linux中vi这个问题的一些问题点,包括linux进入vi编辑器怎么编辑也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
如何在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编辑器中vi常用命令
vi是Linux中功能强大的编辑器,下面是vi常用命令介绍
vi编辑器中有三种模式,分别为:命令模式、编辑模式和末行模式.
命令模式
光标移动
h或向左方向键
光标向左移动一个字符
j或向下方向键
光标向下移动一个字符
k或向上方向键
光标向上移动一个字符
l或向右方向键
光标向右移动一个字符
Ctrl+f
屏幕向前翻动一页(常用)
Ctrl+b
屏幕向后翻动一页(常用)
Ctrl+d
屏幕向前翻动半页
Ctrl+u
屏幕向后翻动半页
+
光标移动到非空格符的下一列
-
光标移动到非空格符的上一列
n
按下数字后再按空格键,光标会向右移动这一行的n个字符.
0
移动到这一行的第一个字符处(常用)
$
移动到这一行的最后一个字符处(常用)
H
光标移动到这个屏幕最上方的那一行
M
光标移动到这个屏幕中央的那一行
L
光标移动到这个屏幕最下方的那一行
G
移动到这个文件的最后一行
nG
移动到这个文件的第n行
n
光标向下移动n行
命令模式
查找与替换
/word
向光标之后查找一个名为word的字符串
?word
在光标之前查找一个名为word的字符串
:n1,n2/word1/word2/g
在第n1到第n2之间查找word1这个字符串,并将这个字符串替换为word2(常用)
:1,$/word1/word2/g
从第一行到最后一行间查找word1这个字符串,并将这个字符串替换为word2(常用)
:1,$/word1/word2/gc
从第一行到最后一行间查找word1这个字符串,并将这个字符串替换为word2,且在替换前显示提示符让用户确认(常用)
命令模式
删除、复制与粘贴
x,X
X为向后删除一个字符,X为向前删除一个字符(常用)
nx
向后删除n个字符
dd
删除光标所在那一整行(常用)
ndd
删除光标所在行的向下n行(常用)
d1G
删除光标所在行到第1行的所有数据
dG
删除光标所在行到最后一行的所有数据
yy
复制光标所在的行(常用)
nyy
复制光标所在的行向下n行(常用)
y1G
复制光标所在的行到第一行的所有数据
yG
复制光标所在的行到最后一行的所有数据
p,P
P为复制的数据粘贴在光标下一行,P为复制的数据粘贴在光标上一行(常用)
J
将光标所在的行与下一行的数据结合成一行
u
恢复前一个动作(常用)
插入模式(即编辑模式)
i,I
在当前光标所在处插入输入的文字
a,A
由当前光标所在处的下一个字符开始输入.
o,O
插入新的一行
r,R
替换:r会替换光标所指的那一个字符;R会一直替换光标所指的文字直到按下Esc键为止.
Esc
退出编辑模式,回到命令模式.
未行模式
:w
将编辑的数据写入硬盘文件中(常用)
:w!
若文件只读,强制写入该文件
:q
退出VI(常用)
:q!
若曾修改过文件,又不想保存,使用!为强制退出不保存文件
:wq
保存后退出,若为:wq!,则为强制保存后退出
:w[filename]
将编辑数据保存为另一个文件(类似另存为新文档)
:r[filename]
在编辑的数据中,读入另一个文件的数据.亦即将filename这个文件内容加到光标所在行的后面.
:setnu
显示行号
:setnonu
取消行号
N1,n2w[filename]
将n1到n2的内容保存为filename这个文件.
创建一个文件,用vi创建一个文件的命令 vi+文件名
如果要保存编辑的内容,在英文输入法下,输入冒号:然后输入wq,保存并退出
如果要退出vi,在英文输入法下,输入冒号:然后输入q,放弃保存并退出。
如果对文件的内容有修改,但是不想保存,在英文输入法下,输入冒号:然后输入q,然后输入感叹号!,也就是强制退出。
在命令模式下可以用dd命令删除文件中的行,或者用yy命令粘贴行。
在命令模式下输入i或者I或者a或者A,可以进行文件内容的编辑操作,也就是insert模式。
如果以上经验帮到您,麻烦在左下角给点个赞,谢谢!
vim编辑器是什么Linuxvim的使用方法
使用过Unix的用户应该都有接触过VI编辑器,这是Unix最初的编辑器,使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。当然它的复杂化让人厌恶,但是其大量特性支撑着Unix系统,而在Linux中vi得到改进,也就是接下来要讲的vim编辑器。那什么是vim?vim要如何使用?下面就跟着一起来看看吧。
什么是vim?
Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具。
连vim的官方网站自己也说vim是一个程序开发工具而不是文字处理软件。
vi/vim的使用
基本上vi/vim共分为三种模式,分别是命令模式(Commandmode),输入模式(Insertmode)和底线命令模式(Lastlinemode)。这三种模式的作用分别是:
命令模式:
用户刚刚启动vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i切换到输入模式,以输入字符。
x删除当前光标所在处的字符。
:切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符;
ENTER,回车键,换行;
BACKSPACE,退格键,删除光标前一个字符;
DEL,删除键,删除光标后一个字符;
方向键,在文本中移动光标;
HOME/END,移动光标到行首/行尾;
PageUp/PageDown,上/下翻页;
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线;
ESC,退出输入模式,切换到命令模式;
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q退出程序;
w保存文件;
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
vi/vim按键说明
第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等。
第二部分:一般模式切换到编辑模式的可用的按钮说明。
第三部分:一般模式切换到指令行模式的可用的按钮说明。
特别注意,在vi/vim中,数字是很有意义的!数字通常代表重复做几次的意思!也有可能是代表去到第几个什么什么的意思。
举例来说,要删除50行,则是用『50dd』对吧!数字加在动作之前,如我要向下移动20行呢?那就是『20j』或者是『20↓』即可。