zoukankan      html  css  js  c++  java
  • VIM

    vim

    vim的是全文编辑器,而sed是属于行编辑器,vim的活动范围是全文,sed的活动范围是行。

    三种模式:

    编辑模式(命令模式,命令不外显),比如复制yy,粘贴p

    输入模式(插入模式)

    末行模式(命令行模式,命令外显),比如set bg=dark

    打开vim默认就是处于编辑模式下,就可以输出隐式的命令,所谓的隐式的命令就是像dd这样的命令,我们在键盘上敲了之后不会显示在界面上,但是会生效。

    打开

    //打开文件后,直接处在文件的第一行
     vim + /etc/passwd     
    
    //打开文件后,直接让光标处在第9行的行首
     vim +9 /etc/passwd   
    
    // 打开文件后,直接处在文件的最后一行
     vim +$ /etc/passwd  
    
    //打开文件后直接让光标处于第一个被模式匹配到的行的行首
    vim +/^zhanghe  /etc/passwd 
    

    模式转换

    我们刚进入vim的时候默认是编辑模式,并不能编辑,必须转换成为输入模式才可以,从编辑模式转换到输入模式的方式有这几种:

    insert:
    i :在光标所在处前方输入
    I :在光标所在行首插入
    
    append:
    a :在光标所在处后输入
    A :在光标所有行的行尾插入
    
    o(小写),在当前光标所在行的下方打开一个新行
    O(大写),在当前光标所在行的上方打开一个新行
    

    从输入模式与编辑模式就一种方式:ESC即可。

    从编辑到末行模式使用冒号就可以,末行模式(命令行模式)里面常用命令如下:

    :q退出

    :q!强制退出不保存

    :wq保存退出

    :wq!强制保存退出

    :x保存退出

    :w保存不退出

    :w /PATH/TO/SOMEWHERE #保存到另一个文件,相当于另存为

    :set nu显示行号

    1,10d删除第一行到第10行

    从末行模式到编辑模式一下ESC或者两下ESC即可,按完之后末行模式的冒号就消失了。

    编辑模式(隐式命令)里面的常用操作:

    字符跳转

    hl字符间的左右跳转

    jk字符间的上下跳转

    按一下数字再按jkhl中任意一下,就可以指定跳转多少下,比如3 j向下转换三次

    w跳到下一上单词的词首

    b当前或上一个单词的词首,第一次是自己所在的单词,第二次是上一个单词的词首、

    e当前或下一个单词的词尾,第一次是自己所在的单词,第二次是下一个单词的词尾

    也可以用用数字加持,比如3 e,跳转到从当前数据第三个单词的词尾。

    ^行首

    $行尾

    gg跳转到第一行

    G跳转到最后一行

    ZZ保存并退出

    删除(编辑模式、末行模式)

    在编辑模式当中x用来删除光标右侧单个的字符,其实就是删除光标盖住的字符。

    使用dd命令可以删除一行

    d^可以删除一行当中光标到行首的所有内容

    d$可以删除一行当中光标到行尾的所有内容

    #dd:多行删除

    :1,10d,在末行模式下也可以删除,删除第一行到第十行

    复制

    y^ 复制光标到行首的内容

    y$ 复制光标到行尾的内容

    y1G 复制光标到文档首部的内容

    yG 复制光标到文档尾部的内容

    yy复制一整行

    #yy复制多行,包括当前所在的行

    粘贴

    P(小写):缓冲区存的如果为整行,则粘贴当前光标所在行的下方,否则,则粘贴至当前光标所在处的后面。

    P(大写):缓冲区存的如果为整行,则粘贴 当前光标所在行的上方,否则,则粘贴到当前光标所在处的前面。

    使用d删除的内容实际没有删除,而保存在缓冲区当中。

    删除(编辑模式)

    C:删除光标后面的字符,前进入插入模式

    c c;删除一整行的内容

    #cc:删除多行然后进入插入模式

    c^:插入光标前面的内容进入插入模式

    c$:插入光标后面的内容进入插入模式

    c1G :插入光标到文档首部的所有内容进入插入模式

    cG:插入光标到文档结尾的所有内容进入插入模式

    删除到文档首部的时候并不是以字符,而是以行为单位,也就是说当使用c1G或者cG的时候是删除当前整行到文档首部和尾部的内容

    可视操作

    可视化模式(使用可视化操作的时候最好使用上下光标来配合)

    v:按字符选定

    V:按行选定

    经常与删除,删除并插入、复制、连用

    可视操作在写脚本的时候经常用到,选中多行之后,通过shift+>进行tab进行整体缩进。

    如果想要删除连续多行当中开头的空格或TAB的话,无论通过大V还是小v都不太使,在编辑模式使用ctrl+v就可以按字符选中,这个在后面写脚本的时候用的比较多。

    撤回

    在编辑模式使用u即可撤消上一步的操作

    ctr+r把撤消给撤消了

    精巧

    r替换光标所在处的字符

    重复上一步的操作使用点即可

    翻屏

    ctrl+u:向文件首部翻半屏

    ctrl+d:向文件尾部翻半屏

    地址界定(末行模式)

    :start_pos,end_pos

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

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

    #,+#:从左侧#表示起始行,加上右侧#表示的行数

    . 当前行

    $:最后一行

    .,$-1:表示当前行到倒数第二行。

    %:全文,相当于1,$

    /pat1/,/pat2/

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

    #,/pat/

    /pat/,$

    经常与编辑命令连用:

    d

    y

    w /PATH/TO/SOMEWERE,将范围内的行另存到指定文件中

    r /PATH/FROM/SOMEWERE,在指定位置插入文件中的所有内容

    例:把1——24行选中后删除:“:1,24d”

    把开头是zhanghe的一直到开头是zhangjia之间所有删除:“:/zhanghe/,/zhangjia/d”

    查找

    /PATTERN;从当前光标所在处向文件尾部查找

    ?/PATTERN:从当前光标所在处向文件首部查找

    n:与命令同方向

    N:与命令反方向

    查找替换

    格式 :<界定> s@/需要搜索的模式/@/替换的内容/@g

    s:末行模式下完成查找替换操作

    s/要查找的内容/替换为的内容/修饰符

    要查找 的内容:可使用模式

    替换为的内容:不能使用模式,但可以使用1,2等后向引用符号,还可以使用&引用前面查找进查找到的整个内容

    修饰符:

    i忽略大小写

    g:全局替换,所有的都替换,如果不加g 话,第行只替换第一次出现

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

    //将从第一行到第10行的bash替换为BASH
    :1,10s@bash@BASH@g    
    
    //将第一行的r..t模式下查找到的内容替换为ROOT
    :1s@r..t@R00T@   
    
    //将第一行到第五行中的:号全都替换成两个冒号
    :1,5s@(:)@1:@g
    
    //将和一行到第3行当中的bin全都替换成BIN,不区分大小写
    :1,3s@bin@BIN@i
    

    7.14 多文件操作

    vim后面跟多个文件可打开多个文件,如:

    [root@China ~]# cp /etc/{fstab,passwd,shadow} /tmp
    [root@China ~]# vim /tmp/{fstab,passwd,shadow}
    

    在末行模式输入:

    :n跳转到下一个文件
    :N跳转到上一个文件
    :first跳转到第一个文件
    :last跳转到最后一个文件
    :wall保存所有
    :qall退出所有
    :wqall退出并保存所有
    

    窗口分割

    vim –o FILE……水平分割

    vim –O FILE ……垂直分割

    在窗口之间切换使用ctrl+w命令,或者再加上箭头

    单文件窗口分割

    ctrl+w,s:split水平分割

    ctrl+w,v:vertical垂直

    定制特性

    全局:/etc/vimrc

    个人:~/.vimrc 默认没有,需自行创建

    set ruler设置标尺

    set number—set nonumber 显示行号

    set autoindent—set noautoindent自动缩进

    set hlsearch-----set nohlsearch hl=high light搜索高亮

    set bg=dark,这个色调最好用

    set bg=light,默认是这个色调

    NOTE:VIM可以通过可视模式选中之后使用x全部删除

  • 相关阅读:
    SQL 在数据库中查找包含指定关键字的存储过程或函数
    根据名称查找存储过程或函数
    根据最后修改时间查找存储过程或函数
    SQL 数据过度事务模板
    Feeling something wrong
    发布一个倒计时软件(C# 开源)
    SpringBoot中的配置文件信息加密
    springboot中mysql连接配置
    React学习2_运行项目
    React学习0_文章目录
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/12054080.html
Copyright © 2011-2022 走看看