Vi编辑器详解
Vi编辑器
VI 编辑器是Linux和Unix上最基本的⽂本编辑器,⼯作在字符模式下。由于不需要图形界⾯,使它成了效率很⾼的⽂本编辑器。尽管在Linux上也有很多图形界⾯的编辑器可⽤,但VI在系统和服务器管理中的能是那些图形编辑器所⽆法⽐拟的。
简介
VI 编辑器是Visual interface的简称,通常称之为VI。它在Linux上的地位就像Edit
程序在DOS上⼀样。它可以执⾏输出、删除、查、替换、块操作等众多⽂本操作,⽽且⽤户可以根据⾃⼰的需要对其进⾏定制,这是其他编辑程序所没有的。
VI 编辑器并不是⼀个排版程序,它不像Word或WPS
等其他属性进⾏编排,它只是⼀个⽂本编辑程序。没有菜单,只有命令,且命令繁多。Vi
有3种基本⼯作模式:命令⾏模式、⽂本输⼊模式和末⾏模式。
VIM是VI的加强版,⽐vi更容易使⽤。vi的命令⼏乎全部都可以在vim上使⽤。
要在Linux下编写⽂本或语⾔程序,您⾸先必须选择⼀种⽂本编辑器。可以选择使⽤Vim编辑器,使⽤它的好处是⼏乎每⼀个版本的Linux都会有它的存在。然⽽它是在⽂本模式下使⽤,需要记忆⼀些基本的命令操作⽅式。您也可以选择使⽤pico, joe, jove编辑器,午夜司令官mc编辑器等,它们都⽐Vim来得简单。如果您实在不习惯使⽤⽂字模式,可以选择视窗环境下的编辑器,像Gedit, Kate等,或是使⽤KDevelop,它是在Linux中的X Window下执⾏的C/C++整合式开发环境
使⽤⽅法
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强⼤不逊⾊于任何最新的⽂本编辑器,这⾥只是简单地介绍⼀下它的⽤法和⼀⼩部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地⽅进⼀步了解它。Vi也是Linux中最基本的⽂本编辑器,学会它后,您将在Linux的世界⾥畅⾏⽆阻。
1、vi的基本概念
基本上vi可以分为三种状态,分别是
命令模式(command mode)
插⼊模式(Insert mode)
底⾏模式(last line mode)
1) 命令⾏模式command mode)
控制屏幕光标的移动,字符、字或⾏的删除,移动复制某区段及进⼊Insert mode下,或者到last line mode。
2) 插⼊模式(Insert mode)
只有在Insert mode下,才可以做⽂字输⼊,按[ESC]键可回到命令⾏模式。
3) 底⾏模式(last line mode)
将⽂件保存或退出vi,也可以设置编辑环境,如寻字符串、列出⾏号……等。
不过⼀般我们在使⽤时把vi简化成两个模式,就是将底⾏模式(last line mode)也算⼊命令⾏模式command mode)。
2、vi的基本操作
a) 进⼊vi
在系统提⽰符号输⼊vi及⽂件名称后,就进⼊vi全屏幕编辑画⾯:
$ vi myfile
不过有⼀点要特别注意,就是您进⼊vi之后,是处于[命令⾏模式(command mode)],您要切换到[插⼊模式(Insert
mode)]才能够输⼊⽂字。初次使⽤vi的⼈都会想先⽤上下左右键移动光标,结果电脑⼀直哔哔叫,把⾃⼰⽓个半死,所以进⼊vi后,先不要乱动,转换到[插⼊模式(Insert mode)]再说吧!
b) 切换⾄插⼊模式(Insert mode)编辑⽂件
linux系统vim编辑器在[命令⾏模式(command mode)]下按⼀下字母i就可以进⼊[插⼊模式(Insert mode)],这时候你就可以开始输⼊⽂字了。
c) Insert 的切换
您⽬前处于[插⼊模式(Insert mode)],您就只能⼀直输⼊⽂字,如果您发现输错了字!想⽤光标键往回移动,将该字删除,就要先按⼀下[ESC]键转到[命令⾏模式(command mode)]再删除⽂字。
d) 退出vi及保存⽂件
在[命令⾏模式(command mode)]下,按⼀下[:]冒号键进⼊[Last line mode],例如:: w filename (输⼊[w filename]将⽂章以指定的⽂件名filename保存)
: wq (输⼊[wq],存盘并退出vi)
: q! (输⼊q!,不存盘强制退出vi)
3、命令⾏模式(command mode)功能键
1). 插⼊模式
按切换进⼊插⼊模式,按“i”进⼊插⼊模式后是从光标当前位置开始输⼊⽂件;
按[a]进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;
按[o]进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。
2). 从插⼊模式切换为命令⾏模式
按[ESC]键。
3). 移动光标
vi可以直接⽤键盘上的光标来上下左右移动,但正规的vi是⽤⼩写英⽂字母[h]、[j]、[k]、[l],分别控制光标左、下、上、右移⼀格。
按[ctrl]+[b]:屏幕往“后”移动⼀页。
按[ctrl]+[f]:屏幕往“前”移动⼀页。
按[ctrl]+[u]:屏幕往“后”移动半页。
按[ctrl]+[d]:屏幕往“前”移动半页。
按[gg]:移动到⽂章的⾸⾏。(可能只在Vim中有效)
按[G]:移动到⽂章的最后。
按[$]:移动到光标所在⾏的“⾏尾”。
按[^]:移动到光标所在⾏的“⾏⾸”
按[w]:光标跳到下个字的开头
按[e]:光标跳到下个字的字尾
按:光标回到上个字的开头
按[#l]:光标移到该⾏的第#个位置,如:5l,56l。
Vi还提供了三个关于光标在全屏幕上移动并且⽂件本⾝不发⽣滚动的命令。它们分别是H、M和L命令。
(1)H命令
该命令将光标移⾄屏幕⾸⾏的⾏⾸(即左上⾓),也就是当前屏幕的第⼀⾏,⽽不是整个⽂件的第⼀⾏。利⽤此命令可以快速
将光标移⾄屏幕顶部。若在H命令之前加上数字n,则将光标移⾄第n⾏的⾏⾸。值得⼀提的是,使⽤命令dH将会删除从光标当前所在⾏⾄所显⽰屏幕⾸⾏的全部内容。
(2)M命令
该命令将光标移⾄屏幕显⽰⽂件的中间⾏的⾏⾸。即如果当前屏幕已经充满,则移动到整个屏幕的中间⾏;如果并未充满,则移动到⽂本的那些⾏的中间⾏。利⽤此命令可以快速地将光标从屏幕的任意位置移⾄屏幕显⽰⽂件的中间⾏的⾏⾸。例如,在上⾯屏幕显⽰的情况下(不论光标在屏幕的何处),在命令模式下,输⼊命令M之后,光标都将移到add这⼀⾏的字母a上。同样值得⼀提的是,使⽤命令dM将会删除从光标当前所在⾏⾄屏幕显⽰⽂件的中间⾏的全部内容。
(3)L命令
当⽂件显⽰内容超过⼀屏时,该命令将光标移⾄屏幕上的最底⾏的⾏⾸;当⽂件显⽰内容不⾜⼀屏时,该命令将光标移⾄⽂件的最后⼀⾏的⾏⾸。可见,利⽤此命令可以快速准确地将光标移⾄屏幕底部或⽂件的最后⼀⾏。若在L命令之前加上数字n,则将光标移⾄从屏幕底部算起第n⾏的⾏⾸。同样值得⼀提的是,使⽤命令dL将会删除从光标当前⾏⾄屏幕底⾏的全部内容。
4). 删除⽂字
[x]:每按⼀次,删除光标所在位置的“后⾯”⼀个字符。
[#x]:例如,[6x]表⽰删除光标所在位置的“后⾯”6个字符。
[X]:⼤写的X,每按⼀次,删除光标所在位置的“前⾯”⼀个字符。
[#X]:例如,[20X]表⽰删除光标所在位置的“前⾯”20个字符。
[dd]:删除光标所在⾏。
[#dd]:从光标所在⾏开始删除#⾏
5). 复制
[yw]:将光标所在之处到字尾的字符复制到缓冲区中。
[#yw]:复制#个字到缓冲区
[yy]:复制光标所在⾏到缓冲区。
[#yy]:例如,[6yy]表⽰拷贝从光标所在的该⾏“往下数”6⾏⽂字。
[p]:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。6). 替换
[r]:替换光标所在处的字符。
[R]:替换光标所到之处的字符,直到按下[ESC]键为⽌。
7). 恢复上⼀次操作
[u]:如果您误执⾏⼀个命令,可以马上按下,回到上⼀个操作。按多次“u”可以执⾏多次回复。
8). 更改
[cw]:更改光标所在处的字到字尾处
[c#w]:例如,[c3w]表⽰更改3个字
9).撤销更改
[u]:撤销上⼀次更改,可以⼀直按[u],⼀直撤销到最旧修改状态。
[ctrl]+[r]:恢复撤销的更改,可以⼀直按该组合键达到最新的改变。
10). 跳⾄指定的⾏
[ctrl]+[g]列出光标所在⾏的⾏号。
[#G]:例如,[15G],表⽰移动光标⾄⽂章的第15⾏⾏⾸。
4、Last line mode下命令简介
在使⽤[last line mode]之前,请记住先按[ESC]键确定您已经处于[command mode]下后,再按[:]冒号即可进⼊[last line mode]。
A) 列出⾏号
[set nu]:输⼊[set nu]后,会在⽂件中的每⼀⾏前⾯列出⾏号。
B) 跳到⽂件中的某⼀⾏
[#]:[#]号表⽰⼀个数字,在冒号后输⼊⼀个数字,再按回车键就会跳到该⾏了,如输⼊数字15,再回车,就会跳到⽂章的第15⾏。
C) 查字符
[/关键字]:先按[/]键,再输⼊您想寻的字符,如果第⼀次的关键字不是您想要的,可以⼀直按[n]会往后寻到您要的关键字为⽌。
[?关键字]:先按[?]键,再输⼊您想寻的字符,如果第⼀次的关键字不是您想要的,可以⼀直按[n]会往前寻到您要的关键字为⽌。
D) 保存⽂件
[w]:在冒号输⼊字母[w]就可以将⽂件保存起来。
E) 离开vi
[q]:按[q]就是退出,如果⽆法离开vi,可以在[q]后跟⼀个[!]强制离开vi。
[wq]:⼀般建议离开时,搭配[w]⼀起使⽤,这样在退出的时候还可以保存⽂件,可以在后⾯再跟[!]强制保存退出。[ZZ]:保存并退出vi。
F) 语法加亮
[syntax on]:vi编辑器默认不打开语法加亮功能,打开vi编辑器后在[last line mode]下使⽤[syntax on]命令即可打开语法加亮功能,此时编辑器会⾼亮显⽰⽂件中的关键字,⽅便编程使⽤,⽤[syntax off]命令可关闭该功能。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。