shell学习之vi工具

在linux系统下使用文本编辑器来编辑你的linux参数配置文件是一件非常重要的事情

为什么要学习vi?

原因1:所有的unix like系统都会内置vi文本编辑器

原因2:很多软件的编辑接口都会主动调用vi

原因3:vim具有程序编程能力

原因4:程序简单,编辑速度相当快

什么是vim?

vim(程序编辑器)是高级版的vi(文本编辑器),vim可以用颜色或者底线等方式来显示一些特殊的信息。举例来说,当你使用vim去编辑一个c程序语言的文件,vim会依据文件的扩展名或者是文件内的开头信息来判断文件的内容2️⃣自动调用该程序的语法判断式,再以颜色来显示程序代码与一般信息

vi的3种模式

vi共有3种模式,分别为一般模式,编辑模式,命令行模式。

一般模式

vi打开文件的默认模式,该模式下,我们可以光标的移动,文字的复制,粘贴以及删除操作

编辑模式

顾名思义,编辑模式主要用于编辑文件内容。

进入编辑模式:在一般模式下按下“i,I,o,O,a,A,r,R”等任何一个字母之后才会进入编辑模式,注意进入编辑模式的界面会改变,vi的左下角会出现insert或者replace的字样,就表示进入了编辑模式。

回到一般模式:点击【Esc】按键就可以回到一般模式了

命令行模式

在命令行模式中,可以通过输入相关的命令来查询数据,替换数据,保存数据,离开vi,显示行号等操作。

进入命令行模式

在一般模式中,按下“:,/,?”3个按键中的其中一个,就可以进入到命令行模式,进入命令行模式之后,光标移动到了最下面的一行。

回到一般模式:点击【Esc】按键就可以回到一般模式了

注意:一边模式可以和编辑模式或者命令行模式相互切换,但是编辑模式不能喝命令行模式相互切换

常用的vi按键说明

注意:下面组合按键中的n表示数字

ctrl+f:相当于Page Down按钮(一般模式下使用ctrl+f或者page down,编辑模式只能使用page down)

ctrl+b:相当于page up按钮(一般模式下使用ctrl+b或者page up,编辑模式下之只能使用page up)

功能键Home:移动到这一行的最前面的字符处

功能键End:移动到这一行的最后面的字符处

G:移动到这个文件的最后一行

nG:n是数字,表示移动到这个文件的第n行,例如:30G,表示移动到这个文件的第30行

gg:移动到这个文件的第一行,相当于1G

n+enter:n为数字,表示向下移动n行

/word: 向下寻找字符串,word为字符串,例如要在文件中查找字符串man,就输入/word

?word:向上寻找字符串,word为字符串,例如要在文件中向上寻找名称为word的字符串

/word和?word与n,N结合是非常有用的,可以让你重复的找到一个关键字,n表示重复上一个操作,N和n相反,表示反向进行前一个操作。

:n1,n2s/word1/word2/g:n1和n2都是数字,在第n1和n2行之间寻找word1这个字符串,并将该字符串替换为word2。

:n1,$s/word1/word2/g:在n1行和最后一行查找word1字符串,并将word1替换为word2

:n1,$s/word1/word2/gc:在n1行到最后一行查找word1字符串,并将word1替换为word2,在每次替换的时候提示用户,是否需要替换

x,X:x表示向后删除一个字符,X表示向前删除一个字符

nx,nX:nx表示向后删除n个字符,nX表示向前删除n个字符

dd:删除当前行

ndd:删除光标所在的向下n行,包括当前行,比如:10dd,表示删除10行

yy:复制光标所在的这一行

nyy:复制光标所在的向下n行

p,P:p表示将已经复制的数据粘贴在光标下一行,P则是粘贴在上一行

u:撤销

ctrl+r:重做一次

.:重复前一个操作,ctrl+r相当于.

i,I:一般模式切换到编辑模式,i为从目前光标所在处插入,I为目前所在行的第一个非空格符处开始插入

a,A:一般模式切换到编辑模式,a为在目前光标所在的下一个字符处开始插入,A为光标所在行的最后一个字符处开始插入

o,O:一般模式切换到编辑模式,o为目前光标所在的下一行插入新行,O为在目前光标所在处的上一行插入新的一行

r,R:一般模式切换到编辑模式,r只会替换光标所在的那一个字符,R会一直替换光标所在的文字,直到按下Esc按钮

:w:将编辑的数据写入到磁盘文件中

:w!:将文件属性设置为只读时,强制写入该文件,不过,到底能不能写入,还是跟你对该文件的文件权限有关

:q:离开vi

:q!:若曾经修改过文件,又不想存储,使用“!”为强制离开不保存文件

:wq:保存后离开

:wq!:强制保存后离开

:w[filename]:将标记的数据保存成另一个文件(另存为)

!在vi中经常具有“强制”的意思

:set nu:显示行号,设置之后,会在每一行的前端显示该行的行号

:set nonu:与set nu相反,为取消行号

觉得上面的笔记有用的朋友们可以关注我,接下来我会陆陆续续更新自己的一些学习笔记,不止linux哦,喜欢就给我个赞吧。

    原文作者:亭子青年
    原文地址: https://www.jianshu.com/p/0da2fcd61a6e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞