Linux命令之vi文本编辑器

        所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。在Linux的最小化安装中不包含vim,但是目前我们使用比较多的是 vim 编辑器,所以需要安装后使用。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

        Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

vi/vim 的使用

        基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:

        1.命令模式

        用户使用vi命令进入刚刚的时候就是命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

        在命令模式下有些常用的命令:

        ZZ 保存退出

        ZQ 不保存退出

        i 切换到输入模式,以输入字符。

        H:页首     

        M:页中间行     

        L:页底

        zt:将光标所在当前行移到屏幕顶端

        2zz:将光标所在当前行移到屏幕中间

        zb:将光标所在当前行移到屏幕底端

        w:下一个单词的词首

        e:当前或下一单词的词尾

        b:当前或前一个单词的词首

        x 剪切光标处的字符

        #x 剪切光标处起始的#个字符

        xp 交换光标所在处的字符及其后面字符的位置

        ~ 转换大小写

        J(大写) 删除当前行后的换行符

替换命令(replace)

        r 只替换光标所在处的一个字符

        R 切换成REPLACE模式(在末行出现-- REPLACE -- 提示),按ESC回到命令模式

删除命令(delete)

        d 删除命令,可结合光标跳转字符,实现范围删除

        d$ 删除到行尾

        d^ 删除到非空行首

        d0 删除到行首

        dw 下一个单词的词首

        de 当前或下一个单词的词尾

        db 当前或上一个单词的词首

        dd:   剪切光标所在的行

        #dd 多行删除

        D:从当前光标位置一直删除到行尾,等同于d$

复制命令(yank)

        y 复制,行为相似于d命令

        y$ 复制到行尾

        y0 复制到行首

        y^ 复制到非空行首

        ye 当前或下一个单词的词尾

        yw 下一个单词的词首

        yb 当前或上一个单词的词首

        yy:复制行

        #yy 复制多行

        Y:复制整行

粘贴命令(paste)

        p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面。

        P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面。

撤消更改

        u 撤销最近的更改,相当于windows中ctrl+z

        #u 撤销之前多次更改

        U 撤消光标落在这行后所有此行的更改

        Ctrl-r 重做最后的“撤消”更改,相当于windows中crtl+y

        . 重复前一个操作

        #. 重复前一个操作#次

        2.输入模式

        输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。

快捷键功能描述
i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I行首插入命令
o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a在当前光标所在位置之后插入随后输入的文本
A行尾插入命令

        3.末行模式

        末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

        #             #具体第#行,例如2表示第2行

        #,#         #从左侧#表示起始行,到右侧#表示结尾行 

        #,+#         #从左侧#表示的起始行,加上右侧#表示的行数,范例:2,+3 表示2到5行

        .           #当前行

        $             #最后一行

        .,$-1         #当前行到倒数第二行

        %             #全文, 相当于1,$

        /pattern/       #从当前行向下查找,直到匹配pattern的第一行,即:正则表达式

        /pat1/,/pat2/     #从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束

        #,/pat/         #从指定行开始,一直找到第一个匹配pattern的行结束

        /pat/,$         #向下找到第一个匹配patttern的行到整个文件的结尾的所有行

        d       #删除

        y         #复制

        w file     #将范围内的行另存至指定文件中

        r file     #在指定位置插入指定文件中的所有内容

查找并替换

        格式:

        范围  s/要查找的内容/替换的内容/g

        说明:

        要查找的内容:可使用基本正则表达式模式   

        替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查

        找到的整个内容

        修饰符:

        i #忽略大小写

        g #全局替换,默认情况下,每一行只替换第一次出现

        c #全局替换,每次替换前询问

        查找替换中的分隔符/可替换为其它字符,如:#,@

        范例:

        s@/etc@/var@g

        s#/boot#/#i

显示行号

        显示:set number,简写 set nu

        取消显示:set nonumber, 简写 set nonu

忽略大小写

        启用:set ignorecase,简写 set ic

        不忽略:set noic

自动缩进
        启用:set autoindent,简写 set ai

        禁用:set noai

复制保留格式

        启用:set paste

        禁用:set nopaste

显示隐藏字符

        显示Tab ^I和换行符 和$显示

        启用:set list

        禁用:set nolist

tab用指定空格的个数代替

        启用:set tabstop=#    指定#个空格代替Tab

        简写:set ts=4

设置光标所在行的标识线

        启用:set cursorline,简写 set cul

        禁用:set nocursorline

加密

        启用: set key=password

        禁用: set key=

set 帮助

        set all

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值