• Linux vi编辑器的使用


    vi是linux系统上最基本的文本编辑器,类似于windows下的notepad(记事本)编辑器;vi编辑器工作在字符模式下,没有图形界面,vim是vi编辑器的加强版,比vi更加容易使用,vi的命令几乎都可以在vim上使用。

    vi有三种模式,一种是命令模式,一种是编辑模式,一种是底行模式。

    vi的简单使用

    打开编辑器

    在终端输入vi filename,回车,进入vi全屏编辑界面。

    编辑文件

    输入i进入插入模式,可以编辑文件内容,编辑完成,按ese键退出插入模式。

    常用的插入模式为i模式,表示从当前光标的位置开始插入,其他的插入命令包括:
    a表示从当前光标位置的下一个位置开始插入文字;
    o表示从新的一行的行首开始插入文字;
    O表示从光标所在行的上面新插入一行文字。

    保存退出文件

    在命令模式下,输入进入底行模式,再wq(写入并退出)回车保存文件并退出编辑器。

    其他常用的命令包括:w(仅写入不退出)q!不保存强制退出

    取消编辑

    在插入模式下,按ese退出插入模式,在输入q!(q表示退出,!表示不保存),回车键取消编辑。

    删除内容

    在命令行模式下
    输入dd表示删除光标所在行;
    输入#dd表示从光标所在行开始删除#行;
    输入x可删除光标所在位置的后面的一个字符;
    输入#x表示删除光标所在位置后面的#个字符;
    输入X表示删除光标所在位置前面的一个字符;
    输入#X表示删除光标所在位置前面的#个字符。

    使用dd后按下p表示剪切粘贴,删除后的行会被剪切到光标所在的行。

    其实在插入模式下,也可以直接back/delete删除内容。

    复制粘贴

    在命令模式下
    使用yy复制光标所在行到缓冲区;
    使用#yy复制所在行后的#行到缓冲区;
    使用yw会把光标所在的第一个单词复制到缓冲区(注意一个单词的计算是从光标所在位置开始到一个单词的结束,所以复制单词时要把光标放置在单词的首字母开头的地方,空格不计算单词数量);
    使用#yw会把光标所在的#个单词复制到缓冲区;

    使用p把缓冲区的字符贴到光标所在位置。

    移动光标

    使用上下左右箭头键移动光标,或者使用 h(左)、j(下)、k(上)、l(右)。

    搜索

    在命令模式下,输入/搜索词,回车搜索,这个时候,使用小写的n可以在匹配到的字符串中从上往下移动,大写的N可以在匹配的字符串中从下往上移动。

    替换

    在搜索的情况下,按下s可以对光标所在位置的字符编辑成所需替换的字符,使用n或者N在搜索结果中移动光标,再使用.可以重复上一条编辑指令,使用这种形式可以对搜索到的结果进行替换。

    可以使用全局替换的命令,指令构成为:1,$s/old/new/g,这条指令的意思是,从第一行一直替换到最后一行,s表示替换,把所有的old全部替换成new,g表示全文替换(一行里面有多个old都要全部替换成new)的意思。
    $表示最后一行

    撤销和恢复

    在命令模式下,输入u撤销最后一步操作(相当于windows 的ctrl + z ),ctrl+r恢复上一步操作(相当于ctrl + y)。

    讨论

    描述使用vi的两种模式,如何打开两种模式

    讨论:①vi有两种模式,一种是编辑模式,一种是命令模式。②使用vi filename 可以进入vi ,这个时候vi处于命令模式,在命令模式下,可以使用i 进入到编辑模式,表示从当前光标位置开始插入;可以使用a进入编辑模式,表示从当前光标位置的下一个位置开始插入文字;使用小写o表示从新的一行的行首开始插入文件;使用大写O表示从光标所在行的上面的新的一行插入文字。③在编辑模式下,使用esc可以回到命令模式下。

    如何插入一行

    讨论:在命令模式下,使用小写o表示从新的一行的行首开始插入文件;使用大写O表示从光标所在行的上面的新的一行插入文字。

    怎么复制粘贴一行文本

    讨论:①在命令模式下,vi使用yy复制光标所在的行;使用数字+yy表示复制光标所在的后n行;使用yw复制光标所在的第一个单词,使用数字+yw复制光标所在的n个单词;②vi使用小写字母p来粘贴缓冲区的字符到光标所在位置。

    怎么在文件中匹配,怎么替换所匹配到的内容

    讨论:①在命令模式下,vi使用/+搜索词对文件进行匹配,匹配成功后,可以使用小写n对匹配项从上而下移动,或者使用大写N对匹配项从下而上移动;②在命令模式下,可以使用s命令对光标所在位置的字符进行编辑,编辑后退出编辑模式,使用n在匹配项中移动,再使用 . 来重复上一条编辑指令;③可以使用全局替换指令对内容进行匹配和替换,指令举例如下:1,$s/old/new/g。

    怎么重复或者撤销上一条命令

    讨论:可以使用 . 重复上一条指令;使用 u 撤销上一条指令。

    怎么在保存或者不保存的情况下退出vi

    讨论:如果不需要保存,可以使用 :q! 强制退出vi,如果需要保存,可以使用 :qw 退出,其中w表示存盘。

  • 相关阅读:
    MySQL8.0创建新用户并授权
    ElasticSearch快速入门实战
    第十七章 数据库操作
    Maxwell安装、配置、脚本制作
    Ubuntu批量新建文件
    [开源]企业级在线办公系统,基于实时音视频完成在线视频会议功能
    不到5分钟就被赶出来的面试,我直呼太变态了......
    重新记录一下ArcGisEngine安装的过程
    CVE-2022-31137 Roxy-WI未经身份验证的远程代码执行漏洞复现
    jdk8 | Function<T,R>实践应用
  • 原文地址:https://blog.csdn.net/CodePlayMe/article/details/133435218