vi编辑器解析
vi编辑器的三种模式

vi编辑器的三种模式vi编辑器的三种模式通常来说,vi编辑器有三种模式,分别是⼀般指令模式、编辑模式与指令⾏命令模式。
这三种模式的作⽤分别是:⼀般指令模式(command mode)以 vi 打开⼀个⽂件就直接进⼊⼀般指令模式了(这是默认的模式,也简称为⼀般模式)。
在这个模式中,你可以使⽤上下左右按键来移动光标,你可以使⽤删除字符或删除整⾏来处理⽂件内容,也可以使⽤复制、黏贴来处理你的⽂件数据。
编辑模式(insert mode)编辑模式可以对内容进⾏编辑,按下i, I, o, O, a, A, r, R等任何⼀个字母之后即可进⼊编辑模式。
如果要回到⼀般指令模式时,则必须要按下Esc这个按键即可退出编辑模式。
命令⾏模式(command-line mode)在⼀般模式当中,输⼊:, /, ? 三个中的任何⼀个按钮,就可以将光标移动到最底下那⼀⾏。
在这个模式当中,可以提供你搜寻资料的动作,⽽读取、存盘、⼤量取代字符、离开 vi 、显⽰⾏号等等的动作则是在此模式中达成的!总之,三者的关系可以⽤下图来概况:各模式下的快捷键⼀般指令模式移动光标的⽅法h 或向左箭头键(←)光标向左移动⼀个字符j 或向下箭头键(↓)光标向下移动⼀个字符k 或向上箭头键(↑)光标向上移动⼀个字符l 或向右箭头键(→)光标向右移动⼀个字符hjkl 是排列在⼀起的,因此可以使⽤这四个按钮来移动光标。
如果想要进⾏多次移动的话,例如向下移动 30 ⾏,可以使⽤ “30j” 或 “30↓” 的组合按键,亦即加上想要进⾏的次数(数字)后,按下动作即可![Ctrl] + [f]屏幕向下移动⼀页,相当于 [Page Down]按键[Ctrl] + [b]屏幕向上移动⼀页,相当于 [Page Up] 按键[Ctrl] + [d]屏幕向下移动半页[Ctrl] + [u]屏幕向上移动半页n<space>n 表⽰数字,例如 20 。
按下数字后再按空格键,光标会向右移动这⼀⾏的 n 个字符。
vim编辑器使用手册

一.vi的基本概念文本编辑器有很多,图形模式下有gedit、kwrite等编辑器,文本模式下的编辑器有vi、vim(vi的增强版本)和nano。
vi和vim是Linux系统中最常用的编辑器。
vi编辑器是所有Linux系统的标准编辑器,用于编辑任何ASCII文本,对于编辑源程序尤其有用。
它功能非常强大,通过使用vi编辑器,可以对文本进行创建、查找、替换、删除、复制和粘贴等操作。
vi编辑器有3种基本工作模式,分别是命令模式、插入模式和末行模式。
在使用时,一般将末行模式也算入命令行模式。
各模式的功能区分如下。
1.命令行模式控制屏幕光标的移动,字符、字或行的删除,移动、复制某区域及进入插入模式,或者到末行模式。
2.插入模式只有在插入模式下才可以做文本输入,按“ESC”键可回到命令行模式。
3.末行模式将文件保存或退出vi编辑器,也可以设置编辑环境,如寻找字符串、列出行号等。
二.vi的基本操作1.进入vi编辑器在系统shell提示符下输入vi及文件名称后,就进入vi编辑画面。
如果系统内还不存在该文件,就意味着要创建文件;如果系统内存在该文件,就意味着要编辑该文件。
下面就是用vi编辑器创建文件的示例。
#vi filename~进入vi之后,系统处于命令行模式,要切换到插入模式才能够输入文字。
2.切换至插入模式编辑文件在命令行模式下按字母“i”就可以进入插入模式,这时候就可以开始输入文字了。
3.退出vi及保存文件在命令行模式下,按冒号键“:”可以进入末行模式,例如:[:w filename]将文件内容以指定的文件名filename保存。
输入“wq”,存盘并退出vi。
输入“q!”,不存盘强制退出vi。
下面表示vi编辑器的3种模式之间的关系。
三.命令行模式操作1.进入插入模式按“i”:从光标当前位置开始输入文件。
按“a”:从目前光标所在位置的下一个位置开始输入文字。
按“o”:插入新的一行,从行首开始输入文字。
按“I”:在光标所在行的行首插入。
Linux学习-vi编辑器

Linux学习-vi编辑器##################################################vi编辑器简介这是⽂本的编辑器,后⾯多次⽤到了这个命令,导致我不会,验证影响了我的进度vi是Linux中最经典的⽂本编辑器,为什么使⽤这个,就是速度快,vi的核⼼设计思想,让程序员的⼿指始终保持在键盘的核⼼区域,就能完成所有编辑操作vi只能编辑不能排版,没有图像界⾯vi不⽀持⿏标操作,没有菜单,只有命令,vim是从vi发展出来的,有代码补全,等功能,被称为编辑器之神,程序员都是⾸选vim,在Linux中直接把vi做成了vim的软连接,你使⽤vi命令就是使⽤的vim###################################################vim编辑:vim是LINUX系统必备啊安装:sudo apt-get install vim配置:sudo vim /etc/vim/vimrc,在这个⾥⾯进⾏配置,更加详细的配置上⽹查##############################################vi打开新建⽂件:vi ⽂件名,⽂件存在就是打开,不存在就是新建,vi hello.pyvi ⽂件名 +⾏数,打开⽂件并且定位⾏,异常处理,如果vi异常退出,在磁盘上可能会有保持的交换⽂件,下次在使⽤vi时,会看到发现交换⽂件,按d可以删除交换⽂件,注意输⼊的时候关闭输⼊法,在vim格式未保存时退出,或者两台机器同时操作⼀个⽂件时都会出现这个问题(保存在⼀个swap⽂件)看看当前的⽂件内容是不是原先的内容,如果觉得和你想要的差不多不需要恢复,那就直接执⾏rm指令删除那个swap⽂件执⾏这个操作不会对你现在的⽂件产⽣影响。
如果内容变化较⼤,你想要恢复,那就按:q##########################################⼯作模式有三种⼯作模式,这个很重要,1,命令模式,打开和esc,命令模式,使⽤vi命令打开⼀个⽂件,就是命令模式,命令模式下,可以进⾏常规的操作,⽐如定位,翻页,复制,粘贴,删除,在其他的图形编辑器下都是⿏标操作的,但是vi是通过命令的,2,末⾏模式,冒号:末⾏模式,执⾏保存,退出等操作,w就是write,写⼊的意思,保存,q就是退出,quit的意思,退出,末⾏模式是出⼝,命令模式就是⼊⼝,怎么进⼊出⼝,就是输⼊冒号:,进⼊末⾏模式,从末⾏模式到命令模式,按⼀下esc就进⼊命令模式3,编辑模式,i,编辑模式,正常的编辑⽂字,输⼊字母i,insert,就进⼊了编辑模式,不能使⽤⿏标,其他基本⼀样,按esc返回命令模式,在命令模式可以快速定位,在编辑模式只能上下键定位代码,编辑模式到命令模式,命令模式到末⾏模式,编辑模式不能直接到末⾏模式,现在基本可以操作了⼯作模式练习:⽂件改完之后⽤命令q和wq和!w都不能退出来!上⽹⼀查才发现原来vi命令在直接⽤vi+enter进⼊⽂件的时候这些命令退出不了,解决⽅法:直接⽤ctrl+z退出就⾏了.test.py.swp .test.py.swo,这种⽂件都是不正常退出⽂件导致的交换⽂件,这些可以使⽤rm直接删除,末⾏模式的命令:w 保持:q 退出:wq 保持退出:q! 强⾏退出,不保存退出,这也是⽐较常⽤的,⽐如修改错了,:x 这也是保持退出###########################################常⽤命令:vi⾮常强⼤,命令⾮常多,不要期望⼀下⼦都记住,要按照使⽤频率学习,使⽤vi命令的时候,命令线路图重复次数,输⼊⼀个数字,跟上⼀个命令,就可以重复执⾏指定次数,1,移动和选择(多练),这个⽐较多,2,编辑操作,删除,复制,粘贴,替换,3,撤销和重复4,查找和替换5,编辑注意关闭中⽂输⼊法,因为输⼊vi命令的时候是没有显⽰的,#############################################进⼊vi的命令vi filename :打开或新建⽂件,并将光标置于第⼀⾏⾸vi +n filename :打开⽂件,并将光标置于第n⾏⾸vi + filename :打开⽂件,并将光标置于最后⼀⾏⾸vi +/pattern filename:打开⽂件,并将光标置于第⼀个与pattern匹配的串处vi -r filename :在上次正⽤vi编辑时发⽣系统崩溃,恢复filenamevi filename....filename :打开多个⽂件,依次进⾏编辑##########################################移动命令上下左右的移动,h向左,j向下,k向上,l向右⾏内移动,w 向前移动单词,b先后移动⼀个单词,0数字零⽴刻到⾏⾸,$dollor符号⽴刻到⾏尾,^到⾏⾸,第⼀个不是空⽩字符的位置,⾏数移动:gg ⽂件顶部,G⽂件末尾,这个命令⾮常的重要,数字gg,移动到指定⾏数,数字G移动到指定⾏数,:数字,移动到对应⾏数,⼀般都是还是⽤go,屏幕移动,ctrl+b,向上翻页,ctrl+f,向下翻页,H屏幕顶部,M屏幕中间,L屏幕底部,注意只需要⼀个⼤写字母,段落移动, {这是往上寻找段落,}这是往下寻找段落,这是⽐较常⽤的切换⽅式括号切换,⼩括号,⽅括号,花括号,都是程序员常⽤的,可以使⽤百分号%切换括号如果有代码需要随后处理,需要参考别的代码,把编号移⾛,到时候怎么回来呢?可以使⽤标记,可以使⽤m 输⼊⼀个字母,然后移动光标,怎么胡来输⼊单引号,然后输⼊直接的标记的字母 ‘k,不⽤管标记如何删除,相同的会覆盖,删除⾏标记也会删除,不⽤管,选中命令,要复制要先选中,可以使⽤v,切换到可视模式,V 切换到可视⾏模式,ctrl+v,可视块模式,可以竖着选,很厉害,可视模式下,可以使⽤移动命令,快速选中⽂本,#############################################撤销命令u,在命令模式,输⼊u,撤销上次的命令,可以不停的回撤,到最初的命令,undo,ctrl+r,在命令模式,就是恢复撤销的命令,这两个⾮常的重要,保命的命令,删除命令x 删除光标所在的字符,或者选中的字符,5+x,这就是删除5个字符,d 需要和移动命令结合在⼀起⽤,删除选中的⽂本,dd 可以把光标所在的⾏删除D,可以删除⾄⾏尾,删除命令可以结合移动命令使⽤,所以移动命令很重要,复制和粘贴的命令y 复制,copy的英⽂,yy 复制⼀⾏,可以myy复制多⾏p粘贴 paste,,5+p,就是粘贴的内容复制5次,注意1:删除命令,本质就是剪切,可以再复制回来,⽐如dd,删除⼀⾏,p,就复制回来了,注意2:如果在其他软件复制的内容,你在命令模式p粘贴是不⾏的,要i,进⼊编辑模式,点击右键粘贴就对了,按esc就可以返回命令格式了,替换命令如果修改⼀个单词,就可以使⽤替换命令,⽐较快,否则就是i进⼊编辑模式,然后修改,然后esc,才可以,r,替换当前字符,输⼊r,然后输⼊H,这样就会把当前字符替换成⼤H了,如果是使⽤编辑模式呢,要输⼊i,然后删除,然后⼤写输⼊,然后esc退出编辑模式,R,替换当前⾏光标后的所有内容,缩排和重复执⾏命令缩排就是缩进,空格越少级别越⾼,>> 这是向右缩进<< 这是向左移动代码. 重复上次的操作,###############################################查找/str 查找strn查找下⼀个N查找上⼀个* 单词快速匹配,这是向上寻找,# 单词快速匹配,这是向下寻找,####################################################查找和替换::%s///g,这就是替换的格式,全局替换:%s/旧⽂本/新⽂本/g,,这是全局替换,:%s/hello/world/g可视区域替换可视区域范围内的替换,这样可以控制开发的风险,先选中,然后:s/旧⽂本/新⽂本/g,只是没有百分号,这就是可视区域替换确认替换,这是推荐使⽤的⽅式,:%s///gc,confirm确认的意思,(y/n/a/q/l/^E/^Y)?yes,no,all替换所有,q退出,只需要记住前四个⽽且这个是每⼀个替换都要确认,###############################################进⼊编辑命令的⽅式:I,⼤写的i,可以在⾏⾸插⼊,A,这个是在⾏尾进⼊编辑模式,这个⽤的多,i,当前字符前⾯添加⽂本,a,当前字符后添加⽂本,这个⽤的少,o⼩写,在光标上⽅插⼊⼀个空⾏,O,O⼤写,在光标下⽅插⼊⼀个空⾏,编辑和数字是可以连起来⽤的,1,输⼊10,表⽰重复10次2,输⼊i进⼊编辑模式3,输⼊*,也就是重复的⽂字,4,按下esc,返回命令模式,返回之后,vi就会把2,3两步重复10次,所以在编辑之前不要随便输⼊数字,会重复的,利⽤可视块,对多⾏代码添加注释,1,移动到需要增加注释的第⼀⾏代码,按^来到⾏⾸2,ctrl+v,进⼊可视块模式3,输⼊⼤I进⼊编辑模式,并在⾏⾸插⼊,4,输⼊#,也就是注释5,按下esc回到命令模式,返回之后会在选中的每⼀⾏添加#号了,######################################分屏命令:末⾏命令拓展,e.,在末⾏模式,输⼊e,会打开内置的⽂件浏览器,浏览当前⽬录下的⽂件,edit找到⽂件,然后回车,就到了另⼀个⽂件了,注意,这个时候⼀定⽂件要保存,在末⾏模式,e ⽂件名,直接到了另⼀个⽂件,不知道⽂件名,就是e. 点,这样可以不⽤退出vi,就可以继续编辑另⼀个⽂件了,:n ⽂件名,这是新建⼀个⽂件,:w ⽂件名,这是把当前编辑的⽂件全部写⼊⼀个⽂件,当前编辑的⽂件不会切换,w,为什么要这么设计?可以阶段性的备份代码,分屏命令练习sp ⽂件名,横向增加分屏:vsp ⽂件名,纵向分屏ctrl+w,这是快捷键r,互换窗⼝c 关闭窗⼝,###把⼀个⽂件清空的办法:使⽤ echo 命令清空⽂件在这⾥,你可以使⽤ echo命令将空字符串的内容重定向到⽂件中,具体如下:# echo "" > access.log或者# echo > access.log############################################ ###########################################。
vi编辑器强制写入wq!命令详解

vi编辑器强制写⼊wq!命令详解
已知
vi编辑器在编辑⽂件的过程中会在⼯作⽬录新建⼀个.swp的交换⽂件,不可见。
举个例⼦,在vi vitest的时候,进⼊vi命令⾏键⼊! ls -al 会出现:
-rw------- 1 li li 12288 Mar 17 16:55 .vitest.swp
注意这个⽂件的全县只有他需要的rw
下⾯我们来试验⼀下,对于-r-----r-- 1 li root 35 Mar 17:45 vitest这个⽂件,强制写⼊后结果是什么样呢
分两种情况:
当⽂件owner是vi命令执⾏者时(li),编辑⼀个没有w权限的⽂件后执⾏wq!,ll显⽰
-r-----r-- 1 li root 35 Mar 17 16:57 vitest
这表⽰:
如果⽂件所有者是执⾏vi命令的执⾏者,虽然产⽣了swp⽂件,但最终wq!后还是原本的属性不会变,只是mtime变了。
猜测vi内部可能先chmod再写⼊《鸟哥linux私房菜》是这阳描述的,不过写的很模糊诶。
当⽂件owner(root)不是vi命令执⾏者时(li),编辑⼀个没有w权限的⽂件后执⾏wq!,ll显⽰
-r-----r-- 1 li li 41 Mar 17 17:11 vitest
这表⽰:
如果⽂件所有者不是执⾏vi命令的执⾏者,那么强制override的结果就是,通过swap⽂件,产⽣了所有者和⽤户组都是执⾏者的新⽂件,并且属性继承源⽂件.
猜测vi内部将原⽂件删除,然后将swap修改权限后,写⼊了该⽬录,因为这下chmod是没有权限的。
vi规范手册

vi规范手册VI是一种经常使用的文本编辑器,广泛用于Linux和Unix系统中。
它提供了强大的编辑功能和快速的操作方式,使得用户能够高效地编辑和查看文本文件。
为了能够更好地利用VI编辑器,下面是VI的规范手册:1.注意模式切换:VI编辑器有两种模式,命令模式和输入模式。
在命令模式下可以执行一些编辑操作,如删除、复制和粘贴等;而在输入模式下可以输入文本。
在输入前,请确保处于正确的模式下。
2.快速返回命令模式:在输入模式下,按下ESC键可以快速返回命令模式。
3.移动光标:使用h、j、k和l键分别向左、下、上和右移动光标。
4.删除文本:在命令模式下,使用x键可以删除当前光标所在位置的字符。
使用dd可以删除当前行。
使用dw可以删除一个单词。
5.复制和粘贴文本:在命令模式下,使用yy可以复制当前行。
使用yw可以复制一个单词。
使用p可以将复制的文本粘贴到当前行的下方。
6.查找和替换文本:在命令模式下,使用/加上要查找的文本可以查找指定文本。
使用:n可以跳转到下一个匹配项。
使用:%s/old/new/g可以替换所有匹配的文本。
7.撤销操作:在命令模式下,使用u可以撤销上一次操作。
使用Ctrl+R可以恢复撤销的操作。
8.保存文件:在命令模式下,使用:w可以保存文件。
使用:q可以退出编辑器。
使用:wq可以保存并退出编辑器。
使用:q!可以不保存文件并退出编辑器。
9.自动补全命令:在命令模式下,按下Tab键可以自动补全命令或文件名。
10.打开和保存文件:在命令模式下,使用:edit filename可以打开指定的文件。
使用:save filename可以将当前文件另存为指定的文件名。
11.显示行号:在命令模式下,使用:set number可以显示行号。
使用:set nonumber可以隐藏行号。
12.设置缩进:在命令模式下,使用:set tabstop=n可以设置Tab键的缩进宽度为n个空格。
13.查看帮助文档:在命令模式下,使用:help可以查看VI编辑器的帮助文档。
linux系统的vi编辑器-1收获与体会200字

linux系统的vi编辑器收获与体会200字
使用Linux系统的vi编辑器是一次深入了解命令行界面的宝贵经历。
vi编辑器以其高效和强大的文本编辑功能而著称,对于熟悉它的用户来说,它几乎是一种信仰。
通过使用vi,我深刻体会到了命令行界面的高效和便捷,尤其是在处理大量文本和文件时。
同时,我也意识到了学习曲线的重要性,只有不断学习和实践,才能真正掌握这种强大的工具。
此外,vi编辑器也让我更加注重命令行界面在系统管理和维护中的重要性。
总之,使用vi编辑器是一次非常有价值的经历,它不仅提高了我的技能水平,也让我更加深入地理解了Linux系统的核心概念。
VIM编辑器操作详解

VIM编辑器操作详解1 vim 使⽤介绍1.1 vim 安装# CentOS 安装:yum install -y vim# Ubuntu 安装:sudu apt-get install vim安装完成后,可使⽤ vim -v 查看版本号1.2 vim 命令格式vim [OPTION]... FILE...常⽤选项选项说明+n打开⽂件后,直接让光标处于第 n ⾏的⾏⾸;+默认⾏尾 ;vim + filename 末⾏⾏⾸+/PATTERN打开⽂件后,直接让光标处于第⼀个被PATTERN匹配到的⾏的⾏⾸;vim +/for filename ⽂件第⼀个for所在⾏的⾏⾸-b file⼆进制⽅式打开⽂件-d file1 file2...⽐较多个⽂件,相当于 vimdiff-m file只读打开⽂件-e file直接进⼊ ex 模式,相当于执⾏ ex file-y file Easy mode (like "evim", modeless),直接可以操作⽂件,`ctrl+o:wq说明:如果该⽂件存在,⽂件被打开并显⽰内容如果该⽂件不存在,当编辑后第⼀次存盘时创建它1.3 vim:模式化编辑器vim 是⼀个模式编辑器,击键⾏为是依赖于 vim的的“模式”三种常见模式:命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴⽂本插⼊(Insert)或编辑模式:⽤于修改⽂本扩展命令(extended command)或命令(末)⾏模式:保存,退出等模式转换命令模式 --> 插⼊模式命令解释i insert在光标所在处输⼊I在当前光标所在⾏的⾏⾸输⼊a append在光标所在处后⾯输⼊A在当前光标所在⾏的⾏尾输⼊o在当前光标所在⾏的下⽅打开⼀个新⾏O在当前光标所在⾏的上⽅打开⼀个新⾏插⼊模式 --- ESC-----> 命令模式命令模式 ---- : ----> 扩展命令模式扩展命令模式 ----ESC,enter----> 命令模式⽰例:插⼊颜⾊字符1 切换⾄插⼊模式2 按ctrl+v+[ 三个键,显⽰^[3 后续输⼊颜⾊信息,如:^[[32mhello^[[0m4 切换⾄扩展命令模式,保存退出5 cat ⽂件可以看到下⾯显⽰1.4 扩展命令模式按“:”进⼊Ex模式,创建⼀个命令提⽰符: 处于底部的屏幕左侧1.4.1 扩展命令模式基本命令命令解释w写(存)磁盘⽂件wq写⼊并退出x写⼊并退出X加密q退出q!不存盘退出,及时更改都将丢失r filename读⽂件内容到当前⽂件中w filename将当前⽂件内容写⼊另⼀个⽂件!command执⾏命令r!command读⼊命令的输出1.4.2 地址定界格式:start_pos,end_pos CMD1.4.2.1 地址定界格式命令解释| 表⽰特定的第#⾏,例如5即表⽰第5⾏,# | 指定⾏范围,从左侧 # 表⽰起始⾏,到右侧 # 表⽰结尾⾏,+# | 指定⾏范围,左侧为起始⾏绝对编号,右侧为相对左侧⾏号的偏移量,例如:3,+7,意思是从第3⾏开始,再向后加7⾏. | 表⽰当前⾏;如 :.,$y 表⽰复制从当前⾏开始到最后⼀⾏$ | 最后⼀⾏.,$-1 | 当前⾏到倒数第⼆⾏% | 表⽰全⽂, 相当于1,$/pattern/ | 从光标所在处起始向⽂件尾部,第⼀次被模式所匹配到的⾏,例,/first/,$ 表⽰从第⼀次能被first匹配的⾏开始到最后⼀⾏结束/pat1/,/pat2/ | 从光标所在处起始,第⼀次由 pat1 匹配到的⾏开始,⾄第⼀次由 pat2 匹配到的⾏结束之间的所有⾏,/pat/ | 从指定⾏开始,⼀直找到第⼀个匹配 pattern 的⾏结束/pat/,$ | 向下找到第⼀个匹配 patttern 的⾏到整个⽂件的结尾的所有⾏1.4.2.2 地址定界后跟⼀个编辑命令命令解释d删除y复制w file将范围内的⾏另存⾄指定⽂件中r file在指定位置插⼊指定⽂件中的所有内容可同编辑命令⼀同使⽤,实现编辑操作:d,y,c,w /path/to/somefile(将范围内的⽂本保存⾄指定的⽂件中)合并两个⽂件vim /etc/fstab:5r /tmp/test.txt将⽂件/tmp/test.txt写⼊到⽂件/etc/fstab第5⾏后⾯1.4.3 查找并替换格式s/要查找的内容/替换为的内容/修饰符说明要查找的内容:可使⽤基末正则表达式模式替换为的内容:不能使⽤正则表达式,如果“要查找的内容”部分在模式中使⽤分组符号,在“替换的内容”中使⽤后可以使⽤\1, \2, ...等后向引⽤符号;还可以使⽤“&”引⽤前⾯查找时查找到的整个内容直接引⽤查找模式匹配到的全部⽂本修饰符命令说明i查找时忽略⼤⼩写g全局替换,意味着⼀⾏中如果匹配多次,则均替换,默认情况下,每⼀⾏只替换第⼀次出现gc全局替换,每次替换前询问⽰例# 将⽂本中所有的this替换为This:%s/this/This/gi# 将⽂本中1到20⾏的this替换为This:1,20s/this/This/gi# 将⽂本中所有的t替换为T,还要保持t后⾯的字符不变:%s@\<t\([[:alpha:]]\+\)\>@T\1@g# 将⽂本中所有的t开头的,后⾯加上er:%s@\<t[[:alpha:]]\+\>@&er@g# 将⽂件中所有的enable=0替换为enable=1,将所有的gpgcheck=0替换为gpgcheck=1:%s@\(enable\|gpgcheck\)=0@\1=1@g查找替换中的分隔符/可替换为其它字符,如:#,@⽰例s@/etc@/var@gs#/boot#/#i1.4.4 定制 vim 的⼯作特性每个⼈都有⾃⼰喜欢的配置,⽐如背景颜⾊,空格缩进⼤⼩等,vim 提供配置⽂件供使⽤者保存⾃⼰的偏好,下⾯经常使⽤的配置⽂件:编辑:前登录⽤户的宿主⽬录下,⽐如root ⽤户就是/root/,⽂件为.vimrc注意:在末⾏模式下的设定,仅对当前vim进程有效扩展命令模式的配置只是对当前vim进程有效,可将配置存放在⽂件中持久保存配置⽂件/etc/vimrc # 全局~/.vimrc # ⽤户个⼈,可能需要创建命令说明⾏号显⽰set number,简写set nu⾏号取消显⽰set nomber,简写set nonu忽略字符⼤⼩写启⽤set ignorecase,简写 set ic忽略字符⼤⼩写禁⽤set noic括号匹配⾼亮匹配set showmatch,简称为set sm括号匹配⾼亮取消set noshowmatch,简称为set nosm⾃动缩进启⽤set autoindent,简写 set ai ⾃动缩进取消set noai复制保留格式启⽤set paste复制保留格式禁⽤set nopaste显⽰ Tab ^I 和换⾏符和 $ 显⽰set list取消 Tab ^I 和换⾏符和 $ 显⽰set nolist⾼亮搜索启⽤set hlsearch⾼亮搜索取消set nohlsearch 简写:nohl 语法⾼亮启⽤syntax on语法⾼亮取消syntax off⽂件格式启⽤windows格式:set fileformat=dos 启⽤unix格式:set fileformat=unix简写 set ff=dosTab ⽤空格代替启⽤set expandtab 默认为8个空格代替Tab Tab ⽤空格代替禁⽤set noexpandtab,简写:set etTab⽤指定空格的个数代替启⽤:set tabstop=# 指定#个空格代替Tab简写:set ts=4设置⽂本宽度set textwidth=65 (vim only) #从左向右计数set wrapmargin=15 #从右到左计数设置光标所在⾏的标识线启⽤set cursorline,简写 set cul设置光标所在⾏的标识线禁⽤set nocursorline加密启⽤set key=password机密禁⽤set key=命令说明了解更多set 帮助:help option-list:set or :set all⽰例cat ~/.vimrcset nu # ⾏号set sm # 括号匹配⾼亮set ai # ⾃动缩进set hlsearch # ⾼亮搜索syntax on # 语法⾼亮set colorscheme default # 设置颜⾊主题set nocompatible # vi 和 vim 兼容set noerorbells # 错误铃声set showmatch # 括号匹配查找set ignorecase # 查找忽略⼤⼩写set incsearch # 搜索时⾃动跳转光标set tabstop=4 # 空格set guifont=Menlo:h10 # 字体set autowrite # ⾃动存盘set history=3000set colorcolumn=821.5 命令模式命令模式,⼜称为Normal模式,功能强⼤,只是此模式输⼊指令并在屏幕上显⽰,所以需要记忆⼤量的快捷按键才能更好的使⽤1.5.1 退出 vim命令说明ZZ保存退出ZQ不保存退出1.5.2 光标跳转字符间跳转(Ncommand 跳转由 N 指定的个数的字符)命令说明h左命令说明l右j下k上单词间跳转(Ncommand 由 N 指定⼀次跳转的单词数)命令说明w下⼀个单词的词⾸e当前或下⼀个单词的词尾b当前或前⼀个单词的词⾸当前页跳转命令说明H页⾸M页中间⾏L页底zt将光标所在当前⾏移到屏幕顶端zz将光标所在当前⾏移到屏幕中间zb将光标所在当前⾏移到屏幕底端⾏⾸⾏尾跳转命令说明^跳转⾄⾏⾸的第⼀个⾮空⽩字符0跳转⾄⾏⾸$跳转⾄⾏尾⾏间跳转命令说明G | 跳转⾄由 # 号指定的⾏:# | 跳转⾄由第 # ⾏1G 和 gg | 跳转⾄第⼀⾏G | 跳转⾄最后⼀⾏句间跳转命令说明)跳转到下⼀句(跳转到上⼀句段落间跳转命令说明}下⼀段{上⼀段命令模式翻屏操作命令说明Ctrl+f向⽂件尾部翻⼀屏,相当于 PagedownCtrl+b向⽂件⾸部翻⼀屏,相当于 PageupCtrl+d向⽂件尾部翻半屏Ctrl+u向⽂件⾸部翻半屏Enter按⾏向后翻1.5.3 字符编辑命令说明x删除光标所在处的字符命令说明x | 删除光标所在处起始的 # 个字符xp | 交换光标所在处的字符与其后⾯的字符的位置,如serach,将光标放在r上,按xp,可以换成search | 转换⼤⼩写J | 删除当前⾏后的换⾏符1.5.4 替换命令(replace)命令说明r替换光标所在处的字符,如:将⼩写n替换为⼤写N,命令为 r 后⾯跟上NR切换成 REPLACE 模式(在末⾏出现-- REPLACE -- 提⽰),按 ESC 回到命令模式1.5.5 删除命令(delete)命令说明d删除命令,可结合光标跳转字符,实现范围删除d$删除当前字符⾄⾏尾的字符d^删除当前字符⾄⾮空⾏⾸的字符d0删除当前字符⾄⾏⾸的字符dwdw | 删除 # 个单词de |db |dd | 删除光标所在处的⾏,也⽀持加数字,如3dd是删除光标所在处的⾏起始的共3⾏dd | 多⾏删除D | 从当前光标位置⼀直删除到⾏尾,等同于d$1.5.6 粘贴命令(paste)命令说明p缓冲区中的内容如果为整⾏,则粘贴在当前光标所在⾏的下⽅,否则,则粘贴⾄当前光标所在处的后⽅P缓冲区中的内容如果为整⾏,则粘贴在当前光标所在⾏的上⽅,否则,则粘贴⾄当前光标所在处的前⽅1.5.7 复制命令(yank)命令说明y复制,⼯作⾏为相似于d命令y$y0y^yeywybyy复制⼀整⾏yy | 复制#⾏Y | 复制整⾏1.5.8 改变命令(change)从编辑模式-->输⼊模式,实际实现删除操作命令说明c$c^c0cbcecwcw |cc | 删除光标所在的⾏,并转换为输出模式,即删除当前⾏并输⼊新内容,相当于S cc | 删除#⾏C | 删除当前光标到⾏尾,并切换成插⼊模式,相当于c$1.5.9 查找命令说明/PATTERN从当前光标所在处向⽂件尾部查找能够被当前模式匹配到的所有字符串PATTERN 从当前光标所在处向⽂件⾸部查找能够被当前模式匹配到的所有字符串n 下⼀个,与命令⽅向相同N 上⼀个,与命令⽅向相反1.5.10 撤销(undo)操作命令说明u撤销最近的更改,相当于windows中ctrl+zu | 撤销此前的 # 个操作U | 撤消光标落在这⾏后所有此⾏的更改Ctrl+r | 撤销此前的撤销,相当于windows中crtl+y. | 重复执⾏前⼀个编辑操作. | 重复执⾏前 # 个编辑操作1.5.11 ⾼级⽤法<start position><command><end position>常见Command:y 复制、d 删除、gU 变⼤写、gu 变⼩写⽰例0y$ 命令0 →先到⾏头y →从这⾥开始拷贝$ →拷贝到本⾏最后⼀个字符⽰例:粘贴 song 100 次100isong [ESC]命令说明di"光标在” “之间,则删除” “之间的内容yi(光标在()之间,则复制()之间的内容vi[光标在[]之间,则选中[]之间的内容dtx删除字符直到遇见光标之后的第⼀个 x 字符ytx复制字符直到遇见光标之后的第⼀个 x 字符1.6 可视化模式在末⾏有”-- VISUAL -- “指⽰,表⽰在可视化模式允许选择的⽂本块命令说明v按字符选定,⾯向字符,-- VISUAL --V按⾏选定,⾯向整⾏,-- VISUAL LINE --ctrl-v⾯向块,-- VISUAL BLOCK --可视化键可⽤于与移动键结合使⽤w ) } 箭头等突出显⽰的⽂字可被删除,复制,变更,过滤,搜索,替换等⽰例:在⽂件指定⾏的⾏⾸插⼊#1、先将光标移动到指定的第⼀⾏的⾏⾸2、输⼊ctrl+v 进⼊可视化模式3、向下移动光标,选中希望操作的每⼀⾏的第⼀个字符4、输⼊⼤写字母 I 切换⾄插⼊模式5、输⼊ #6、按 ESC 键⽰例:在指定的块位置插⼊相同的内容1、光标定位到要操作的地⽅2、CTRL+v 进⼊“可视块”模式,选取这⼀列操作多少⾏3、SHIFT+i(I)4、输⼊要插⼊的内容5、按 ESC 键1.7 多⽂件模式命令说明:next下⼀个:prev上⼀个:first第⼀个:last最后⼀个:wall保存所有:qall不保存退出所有:wqall保存所有⽂件并退出例:vim file1 file2 file3在file1中 :next 切换到file2在file1中 :last 切换到file3在file3中 :prev 切换到file2在file3中 :first 切换到file1注:file1 和 file2 和 file3可以实现跨⽂件复制1.8 多窗⼝模式1.8.1 多⽂件分割命令说明-o⽔平或上下分割窗⼝-O垂直或左右分割窗⼝(vim only)⽰例vim -o|-O FILE1 FILE2 ...在窗⼝间切换,Ctrl+w <h|j|k|l>注意:单个⽂件也可以分割为多个窗⼝进⾏查看1.8.2 单⽂件窗⼝分割命令说明Ctrl+w,s split, ⽔平分割,上下分屏命令说明Ctrl+w,v vertical, 垂直分割,左右分屏ctrl+w,q取消相邻窗⼝ctrl+w,o取消全部窗⼝:wqall退出1.9 vim的寄存器有26个命名寄存器和1个⽆命名寄存器,常存放不同的剪贴版内容,可以在同⼀个主机的不同会话(终端窗⼝)间共享寄存器名称 a,b,...,z,格式: 寄存器放在数字和命令之间⽰例3"tyy 表⽰复制3⾏到t寄存器中,末⾏显⽰`3 lines yanked into "t`"tp 表⽰将t寄存器内容粘贴未指定,将使⽤⽆命名寄存器有10个数字寄存器,⽤0,1,...,9表⽰,0存放最近复制内容,1存放最近删除内容。
vi编辑器的三种模式

Vi编辑器的三种模式
一、简介
Vi编辑器是一个命令行编辑器,类似于我们windows下的记事本。
它有以下三种模式。
<1>命令模式:vi界面默认进入的模式,可以输入命令来执行多种功能。
例如:光标的
移动,字符、行的移动等。
当有文本中有内容的时候,在命令模式下:
h-------表示光标向左移动
l-------表示光标向右移动
j-------表示光标向下移动
k-------表示光标向上移动
<2>插入模式(编辑模式):输入我们文本内容。
在命令模式下一般按下以下三个键之
一就进入了我们的插入模式。
按下esc键回到命令模式。
i------------>光标前插入
a----------->光标后插入
o----------->下一行插入
<3>底行模式: 将写好的文件保存或者退出。
也可以执行其他的操作。
按下”esc”键进入命令模式,在命令模式下,
按下shif + “:”就进入了我们的底行模式。
(注:由于都与我们的命令模式有关,在有的书籍中把底行模式也划入命令模式中。
)常用:在底行模式下 w--------->保存文件(write的缩写,我们这里理解为保存)
q---------->退出文件(quit的缩写,即退出的意思)
!----------->强制执行(有些权限无法退出,需要用到它)。
二、图解
练习:
大家自己熟悉一下,vi编辑器的三种模式。
并写一个sum.c程序来计算1+2+3+...+10的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文本编辑器vi的使用
4.vi的撤销功能 和很多基于图形的编辑器一样vi也提供撤销功能,对于一个编辑器 来说,提供撤销功能是必要的。用户可以在命令模式下输入“:u” 后按Enter键,就可以撤销上一次操作。 在vi中,撤销功能每一次撤销的是自上次存盘到现在输入的内容, 因此撤销能够恢复到最原始的状态,但是此时用户不能使用“:q” 命令来退出vi,因为此时用户已经修改了缓冲区的内容。如果确实 需要退出vi程序,可以使用在命令模式下“:q!”。
用vi打开vi_test文件
文本编辑器vi的使用
此时,会在底部的状态行显示“‘vi_test’[已转换] 3L,105C”, 表示vi_test已被读入缓冲区,共3行105个字符。按下“a”键进入 输入模式,底部的状态行显示如图所示。
vi底部的状态行
文本编辑器vi的使用
3.打开多个文件 vi能够在同一个窗口中一次打开多个文件,打开多个文件的方法 是在终端的命令主提示符下输入: [root@myhost root]# vi vi_file vi_test 在输入上述命令后按Enter键,vi将第一个文件vi_file读入缓冲 区,用户可以在终端中输入“:next”以编辑下一个文件,这里是 vi_test。此时vi虽然同时打开了多个文件,但是某一时刻却只能 编辑一个文件。在命令模式下输入“:previous”或“:prev”可 以切换到前一个文件。
vi编辑器的主界面
文本编辑器vi的使用
在屏幕的左上方的是光标,在它下面是“~”符号,这些符号中的 内容是不会被存入文件的。整个“~”符号标志的区域就是文本的 输入区域,最底下的一行显示了在命令模式下输入的命令或是当前 编辑的文本的信息。图中还显示了vi版本的信息,并说明vi是免费 的。 vi有两种工作模式:命令模式和输入模式。进入vi时默认的模式 就是命令模式。在命令模式下,用户所有的输入都被解释成命令, 并显示在最下面一行,而不会输入到屏幕的文本输入区域(就是 “~”符号所在的区域)。
文本编辑器vi的使用
vi有输入和命令两种工作模 式。输入模式用于输入。命 令模式则是用来运行一些编 排文件、存档以及离开vi等 操作命令。当执行vi后,首 先进入命令模式,此时输入 的任何字符都被视为命令。 在RHL9中使用的vi是vim(vi improved)程序,它与vi完 全兼容。在RHL9中vi就是到 vim的软连接,即在命令行中 输入vi的时候启动的就是vim, 如图所示。
/字符串 n Shift+n
从当前光标位置开始向后查找字符串
从当前光标位置开始向前查找字符串 继续上一次查找 以相反的方向继续上一次查找
文本编辑器vi的使用
vi的环境设置 在vi编辑器中有很多环境参数可以设置,通过环境参数的设置, 可以增加vi的功能。这里仅介绍vi常用的参数,这些参数可以在vi 的命令模式下使用,或在/etc/vim/vimrc中设置,vi启动时就会使 用vimrc中的参数来初始化vi程序。 vi程序的常用参数及设置方法如下: set ai或set autoindent:每一行的开头都与上一行的开头对齐。 set nu或set number:在编辑时显示行号。 set dir=./:将交换文件.swp保存在当前目录。 set sw=4或set shiftwidth=4:设置缩进的字符数为4。 syntax on:开启语法着色。 说明:其中set命令是用来设置这些参数的。
文本编辑器vi的使用
2.查找 在vi中同样提供了丰富的 字符串查找功能,用户可 以进行从当前光标的位置 开始向前和向后的字符串 查找操作,还可以重复上 一次的查找。当vi查找到 文本的头部或尾部的时候, 继续循环查找直到全部文 本被查找一遍。被找到的 字符串会以反白显示,如 图所示。 vi查找字符串
文本编辑器vi的使用
下表给出了vi中常用的查找命令。在vi的查找中可以使用匹配查 找,使用“.”代表一个任意字母。如使用“:/s.ecial”可以找到 “special”字符串。 另外,vi的字符串查找是大小写敏感的,即“Special”和 “special”不同。 vi的查找命令 热键 功 能
?字符串
文本编辑器vi的使用
5.移动光标 光标所在的位置就是用户输入或删除时的位置。在vi中提供了多 种移动光标的方法,主要利用方向键,也可使用键盘上vi定义的 一些普通键。 1)方向键 使用方向键是最基本的光标移动方法,大多数系统都支持方向键。 如果光标已经移动到了屏幕的尽头,用户再按下方向键时,就会 听到系统的警告声,而光标在原地不动。 2)其他键 在命令模式下,vi还支持使用其他键来移动光标。在早期很多终 端还没有方向键,因此,vi提供了一些普通按键来移动光标。
文本编辑器vi的使用
如表所示,其中列出了移动光标所用的按键及其作用。 vi提供的移动光标的按键 按键 h l j k 向左移动一个字符 向右移动一个字符 向下移动一行 向上移动一行 功 能
b
e 空格 Enter或+ -(减号)
将光标移动到当前单词的第一个字母
将光标移动到当前单词的最后一个字母 光标向右移动一个字符 将光标移动到下一行行首 将光标移动到上一行行首
文本编辑器vi的使用
vi还可以在多个窗口中打开多个文件,如在终端命 令主提示符下输入如下命令,打开如图所示的文本, 不过需要给vi程序传递一个参数-o。 [root@myhost root]# vi -o vi_file vi_test
在这种模式下,有两个两条将屏幕分成上下两个部分,上半部分是vi_f ile文件,下半部分是vi_test文件,两条上显示对应的文件名。前面所 讲的对于文件的操作对于打开多个文件同样适用。
文本编辑器vi的使用
2.打开一个文件 使用vi打开文件的方法很简单,在vi 命令后面跟上文件名,然后按Enter 键即可,如: [root@myhost root]# vi vi_test 由于没有指定路径,vi程序在默认的 路径,即当前目录中查找vi_test, 用户也可以为其指定路径。如果 vi_test文件不存在,此时会新建一 个vi_test文件。如果vi_test确实存 在,就会被读入缓冲区,并在屏幕上 显示出来,如图。
文本编辑器vi的使用
编辑器是使用计算机的重要工具之一,Linux为了方便各种用户在 不同的环境下使用,提供了一系列的编辑器,包括gedit、emas和vi 等,其中gedit和emacs是X Window下的编辑器,vi 可以运行于命令 行模式。目前使用人数最多的就是vi编辑器。 vi概述 Linux 提供的全屏编辑器 vi启动快,且支持鼠标,能够胜任所有的 文本操作,使得用户的文本编辑更加轻松。在Linux操作系统中使 用vi编辑器来处理文件的时候,会先将文件复制一份到内存缓冲区 (buffer)。Vi对文本文件的编辑都会首先直接修改缓冲区的内容, 再使用w命令后,才将buffer中的内容回写到磁盘文件。
vi用于删除的热键
按 键 x d w d $或 Shift+d d d 功 能 删除当前光标所在的字符 删除光标所在单词字符至下一个单词开始的几个字符 删除从当前光标至行尾的所有字符 删除光标所在的行
文本编辑器vi的使用
表中所述的组合键,如dw表示先按下d键,再按下w键。此外,用 户还可以在使用删除的组合键的时候指定要删除的行及字符的数量。 其用法如下: • 3 x:表示删除从当前光标所在位置开始,向后的3个字符。 • 4 d d:表示删除光标所在的行开始连续向后的4行。 vi提供了以行号表示范围的删除方法,在命令模式下输入set number或set nu以显示行号,再按如下的语法输入删除命令: start_num,end_num d 其中start_num和end_num分别表示开始行号和结束行号,以 start_num开始和end_num结束的行都将被删除。 例如,要删除第2行到第5行的内容,可以使用: :2,5 d<Enter> 命令输入结束后,vi会在状态行中显示被删除的行数。
文本编辑器vi的使用
使用vi编辑文档 1.新建一个文档 在Linux的终端命令主提示符下输入vi后可以打开其主界面,然后 按下“a”键,进入输入模式,然后输入文本。可以使用Enter键来 换行,使用Backspace键删除前面的文字。文本输入完成以后,按 下“Esc”键切换到命令模式。 为了保存输入的内容,在命令模式下输入“:w vi_test”,然后 按Enter键,此时vi会新建一个vi_test文件,将文本区输入的内容 写入该文件。 在命令行模式下输入“:q”(引号内的部分)并按Enter键,退出 vi,并回到shell命令提示符。
将光标向下移动一屏 将光标向上移动一屏
文本编辑器vi的使用
删除和查找 1.删除 在vi的输入模式下,用户可以使用Backspace(退格键)来删除光 标前面的内容,还可以使用delete键来删除当前的字符。此外,在 vi的命令模式下还提供了几个按键用来删除一个字符或进行整行删 除,其热键及其功能如表所示。
文本编辑器vi的使用
在Linux的终端命令主提示符下 输入vi后可以打开其主界面,然 后按下“a”键,进入输入模式, 然后输入文本,如图所示。可以 使用Enter键来换行,使用 Backspace键删除前面的文字。 文本输入完成以后,按下“Esc” 键切换到命令模式。 为了保存输入的内容,在命令模 式下输入“:w vi_test”,然后 按Enter键,此时vi会新建一个 vi_test文件,将文本区输入的 内容写入该文件。 在命令行模式下输入“:q”(引 号内的部分)并按Enter键,退 出vi,并回到shell命令提示符。 保存文件到vi_test
文本编辑器vi的使用
在命令模式下,可以使用如下的两个键进入文本输入模式: • a:在当前的光标后面添加文本。 • A:在当前光标所在行的行尾添加文本。 • i:在当前的光标前面添加文本。 • I:在当前光标所在行的行首添加文本。 • o:在当前光标所在行的下方添加一行,并且在新加行的行首添加 文本。 在输入模式下如果用户希望回到命令模式的时候,只能在输 入模式下使用Esc键切换到命令模式,之后会在屏幕底部出现光标 等待输入命令。