美文网首页
Linux之vim系列

Linux之vim系列

作者: Since_1689 | 来源:发表于2018-12-13 12:00 被阅读0次

    Linux里一切皆文件,不管是硬件如cpu、内存、硬盘io等还是软件服务应用程序都是以文件夹的形式保存在发行版系统中,Linux全称GNU/Linux,意为GNU软件组织的所有开源软件和Linux内核结合的惊世之作,Linux本为内核kernel。---
    既然都是文件,那配置服务时就是在修改它的配置文件参数,那就要涉及到编辑器修改录入它,第三方较好的文本编辑器有subline text2/3,notepad++等,然而Linux本身就集成了一款优秀的编辑软件,那就是vim,现在来一睹她的庐山真面目:
    如果最小化安装的系统没有vim,用这条命令安装下即可

    yum install -y vim-enhanced

    image.png

    它里面有三种模式:命令模式、编辑模式、末⾏模式。

    命令模式: 控制光标移动, 可对⽂本进⾏复制、粘贴、删除等⼯作。
    使⽤vim filename 编辑⼀个⽂件时,⼀进⼊该⽂件就是命令模式了。
    在这个模式下,可以进⾏光标移动、复制、删除、粘贴操作。
    编辑模式: 正常的⽂本写⼊。
    从命令模式进⼊编辑模式,只需你按⼀个键即可(i, I, a, A, o, O, r, R)。
    当进⼊编辑模式时,会在屏幕的最下⼀⾏出现“INSERT的字样。
    从编辑模式回到命令模式只需要按键盘左上⽅的 ESC 键即可。
    末⾏模式: 保存或退出⽂档,以及设置编辑环境
    在命令模式下,输⼊ ":" 或者 "/" 即可进⼊末⾏模式。
    在该模式下,可以进⾏的操作有,显示⾏号、搜索、替换、保存、退出


    vim 编辑器配置⽂件整体流程如下:
    1.默认打开⽂件处于命令模式
    2.需要从命令模式切换⾄编辑模式
    3.编辑模式修改配置⽂件, 然后返回命令⾏模式.
    4.最后通过命令模式进⼊末⾏模式,保存和退出操作.
    注意:在vim中,⽆法直接从编辑模式切换到末⾏模式。


    命令⾏模式:(默认打开⽂件进⼊的是命令⾏模式)

    //命令光标跳转
    G 跳转光标⾄末端
    gg 跳转光标⾄顶端
    Ngg 跳转光标⾄当前⽂件内的22⾏
    $ 将当前光标跳转⾄光标所在⾏的末端(尾部)
    ^ 将当前光标跳转⾄光标所在⾏的头部 —> 数字0 可实现类似效果
    //⽂件内容较多
    ctrl+f 往下翻⻚(⾏⽐较多)
    ctrl+b 往上翻⻚
    //复制
    yy复制当前光标所在的⾏
    5yy复制当前光标以及光标向下4⾏
    //粘贴
    p(⼩写) 粘贴⾄当前光标下⼀⾏
    P(⼤写) 粘贴⾄当前光标上⼀⾏
    //删除
    dd 删除当前光标所在的⾏
    4dd 删除当前光标所在的⾏以及往下的3⾏
    dG 删除当前光标以后的所有⾏
    D 删除当前光标及光标以后的内容
    x 删除当前光标标记往后的字符
    X 删除当前光标标记往前的字符
    //剪贴
    先删除dd(number dd),后粘贴p
    //撤销
    u 撤销上⼀次的操作(类似windows下的ctrl+z)
    //替换
    r 替换当前光标标记的单个字符
    R 进⼊REPLACE模式, 连续替换,ESC结束


    VIM编辑模式

    i 进⼊编辑模式,光标不做任何操作
    I 进⼊编辑模式,并且光标会跳转⾄本⾏的头部
    a 进⼊编辑模式,将当前光标往后⼀位
    A 进⼊编辑模式,将光标移动⾄本⾏的尾部
    o 进⼊编辑模式,并在当前光标下添加⼀⾏空⽩内容
    O 进⼊编辑模式,并在当前光标上添加⼀⾏空⽩内容


    末⾏模式(必须退回到命令⾏模式)

    末⾏模式主要⽤于搜索,保存, 退出⽂件, 还可以让⽤户执⾏外部的Linux命令或跳转到所编写⽂档的特定⾏数。
    :w 保存当前状态
    :w! 强制保存当前状态
    :q 退出当前⽂档(⽂档必须保存才能退出)
    :q! 强制退出⽂档不会修改当前内容
    :wq 先保存,在退出
    :wq! 强制保存并退出
    :x 先保存,在退出
    ZZ 保存退出, shfit+zz
    :number 跳转⾄对应的⾏号
    末⾏模式(查找和替换)
    查找 /string 需要搜索的内容(查找)
    n 按搜索到的内容依次往下进⾏查找
    N 按搜索到的内容依次往上进⾏查找
    替换
    :1,5s#sbin#test#g 替换1-5⾏中包含sbin的内容为test
    :%s#sbin#test#g 替换整个⽂本⽂件中包含sbin的替换为test
    :%s#sbin#test#gc 替换内容时时提示是否需要替换
    另存
    :w /root/test 将⽂件所有内容另存为/root/test
    读⼊
    :r /etc/hosts 读⼊/etc/hosts⽂件⾄当前光标下⾯
    :5r /etc/hosts 指定/etc/hosts⽂件当前⽂件的哪⾏下⾯


    VIM环境变量

    环境变量临时⽣效
    :set nu 显示⾏号
    :set ic 忽略⼤⼩写, 在搜索的时候有⽤
    :set ai ⾃动缩进
    :set list 显示制表符(空⾏、tab键)
    :set no[nu|ic|ai…] 取消临时设定的变量
    环境变量永久⽣效
    ~/.vimrc 个⼈环境变量(优先级⾼) /etc/vimrc 全局环境变量
    vim ~/.vimrc
    set nu
    set ic
    //如果个⼈vim环境没有配置, 则使⽤全局vim环境变量配置。
    //如果个⼈vim环境和全局环境变量产⽣冲突, 优先使⽤个⼈vim环境变量。


    VIM扩展知识

    1.如何同时编辑多个⽂件
    vim -o file1 file2 ⽔平分割
    vim -O file1 file2 垂直分割
    //ctrl+ww ⽂件间切换
    2.相同⽂件之间差异对⽐
    diff ⽂件对⽐(⽤的不多)
    vimdiff 以vim⽅式打开两个⽂件对⽐,标记不同的内容
    3.如果VIM⾮正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后
    //删除同⽂件名的.swp⽂件即可解决
    .filename.swp rm -f .filename.swp


    谢谢观赏,限于水平,不足之处还请多多指正,感激不尽~

    相关文章

      网友评论

          本文标题:Linux之vim系列

          本文链接:https://www.haomeiwen.com/subject/rbuvhqtx.html