zoukankan      html  css  js  c++  java
  • M25-3

    懒人少语之第三周
    `vim编辑器`
    vi: Visual Interface 文本编辑器
    vim带颜色~`不过需要是vim觉得你是配置文件才会有高亮颜色,普通复制配置文件未必有高亮`
    vim通常有三种模式,默认下是命令模式,还有插入/编辑模式`i/o`和扩展命令模式`set nu`和格式化模式`v/V`
    默认状态下是命令模式

    vim +10 /etc/passwd
    `+数字` 跳转到某行
    vim +/^wang /etc/passwd
    `+模式` 支持正则表达式跳转`光标处于第一个被PATTERN匹配到的行的行首`
    vim -d /etc/passwd /etc/issue
    `-d` 多个文件两个分割屏显示
    vim -m /etc/passwd
    `-m` 只读不能编辑
    vim /err/f1
    `文件路径名不存在不能保存`
    vim -e /etc/passwd
    `-e` 类似查找/命令/扩展命令模式

    如果文件不存在,当编辑后第一次存盘是创建它

    功能键
    k上 j下 h左 l右
    i编辑模式`插入模式,当前光标位置`
    esc返回到命令模式
    a编辑模式`光标往后移了一格`
    o编辑模式`新增插入下一行新行`
    I编辑模式`光标到行首编辑`
    A编辑模式`光标到行尾`
    O编辑模式`新增插入上一行新行`
     
    w `下一个单词词首` W `跳过各种符号标点到..`
    e `下一个单词词尾` E `跳过各种符号标点到..`
    b `上一个单词段词首` B `跳过各种符号标点到上一个单词词首`
    3h `向左跳三下` 3h 3j 3k 3l 数字加指令
    H `当前这一页的行首`
    M `当前这一页的中间`
    L `当前这一页的行尾`
    30G `跳到第30行`
    gg `跳到第一行`
    G `跳到最后一行`
    0 `数字0跳到最前面的行首(包括空格的最前面)`
    ^ `行首第一个单词`
    $ `行尾`
    ) `下一句`
    ( `上一句`
    { `下一段`
    } `上一段`
    {()} `可结合shift段落/句跳,或者双击{或}进行段落符号上下跳`
    x `删除光标字符(剪切)`
    3x `删除光标右边3个字符(剪切右边3个字符)`
    ~ `转换大小写`
    J `删除当前行最后面的换行符,下一行内容接着当前行`
    r字符 `先按r再输入字符,直接替换`
    R `类似改写模式`
    d命令 `删某个模式的一段`dh dw de db等 d( d) d{ d}
    d$ `光标删到行尾`
    d^ `光标删到行首(非空白头最前)`
    dG `光标删到内容最后`
    dgg `光标删到内容最前`
    d0 `光标删到行首`
    dd `删除一行`
     
    3yy `复制当前光标下3行`↓
    3Y `复制当前光标下3行`↑
    y$ `复制当前光标到行尾`
    y0 y^ ye yw yb y命令 y( y) y{ y}
    yy `复制多行`
    3yy `复制当前光标下3行`
    p `粘贴,光标在最下边``如果复制的是单词,光标则在右边`
    P `大写P粘贴,光标位置不变``如果复制的是单词,光标则在左边`
    Ctrl+f `向文件尾部翻一屏`
    Ctrl+b `向文件首部翻一屏`
    Ctrl+d `向文件尾部翻半屏`
    Ctrl+u `向文件首部翻半屏`

    c修改命令结束后并跳到插入模式(修改过程中类似剪切操作)
    c$ `剪切光标右边内容并转为编辑模式`
    c^ `剪切光标左边内容并转为编辑模式`
    S `大S剪切光标当前行内容并转为编辑模式`
    c0 cb ce cw c( c) c{ c}
    C命令 `剪切光标右边内容并转为编辑模式`
    3cc `剪切光标下3行内容并转为编辑模式`

    100iwang[ESC]
    `默认模式下的100指次数,i到编辑模式,输入wang自定义内容后按[ESC]可自动重复粘贴内容100次`

    0y$ `起始位置`命令`终止位置`
    0行首,y命令复制,$行尾
    y复制 d删除 gU变大写 gu变小写 ye yw yb等

    组合ggyG `从行首复制到行尾`
     
    地址定界(从这里,到这里`命令`)起始位置,结束位置y c d等
    .当前行 $最后一行
    ,$-2 从当前行到倒数第二行
    % 全部内容,相当于1,$ 比如`%y 是复制全文`
    :10:100d `第10到100行删除(不能超过范围)`
    :1,$d `第一行删到结尾`
    :2,+3 `当前行开始2到3行`

    模式定界(正则表达式)
    :/^r/,/^f/d `光标当前行r开头的到f开头的删除`
    d y (w file) (r file)
    :/^r/,/^f/w /tmp/file `当前光标r开头f开头另存到/tmp/file`
    :3,/^mail/d `从第三行到行首是mail的内容`
     
    /^n `正序找n`(支持PATTERN模式)
    ?^g `倒序往上找行首是g的位置`(支持PATTERN模式)
    n`与命令同方向`,N`与命令反方向`

    :s/abc `查找abc内容`
    :s/abc/cba/ `内容abc替代为cba(缺少模式选项不好搞)`↓
    :%s/abc/ccc/g `%全文搜索内容abc用第三选项(修饰符)g全局替换为内容ccc`
    i忽略大小写, g全局替换(默认下只替换每行第一次出现的),gc全局替换带询问交互功能,也可组合igc
    也可以表现为(`因为在替换的内容为文件夹时,容易混乱,可用@或者#代替原有/的功能`)
    s@/etc@/var@g
    s@#/boot#/#i

    撤销更改:
    u `撤销最近的(上一次)的操作`
    3u `撤销前3次操作更改`
    U `大写U撤销当前光标行修改的操作(不可移动光标,编辑该行可撤销该行)`
    Ctrl r `撤销后返回被撤销前的状态`
    . 和 3. `撤销状态下的内容被粘贴一次,或者3次`

    vim的寄存器
    3"tyy `表示复制3行到t寄存器中`
    "tp `表示将t寄存器内容粘贴`
    "引号作为寄存上一个命令操作内容,并调用结束"(可跨多个vim编辑操作)
    寄存器标识符可用10个数字记录,和26个自定义字母命名,1个无命名
     
    esc:
    :wq `存盘退出`
    :q `普通退出`
    :q! `强行退出`
    :wq!`强制存盘退出`在没权限的情况下
    :r `读入一个新文件内容到 当前光标下面`
    :r /etc/passwd
    :w `将文件另存为其它路径`
    :w /etc/passwd
    ZZ `存盘退出`
    ZQ `不保存退出`
    :!命令 `感叹号后面跟着命令临时看效果(不用退出VIM很方便)`
    :r!命令 `将执行过的命令读到当前编辑光标位置`
    :50 `跳到第50行`

    若离开esc模式直接按一次esc便可
  • 相关阅读:
    Yield Usage Understanding
    Deadclock on calling async methond
    How to generate file name according to datetime in bat command
    Run Unit API Testing Which Was Distributed To Multiple Test Agents
    druid的关键参数+数据库连接池运行原理
    修改idea打开新窗口的默认配置
    spring boot -thymeleaf-url
    @pathvariable和@RequestParam的区别
    spring boot -thymeleaf-域对象操作
    spring boot -thymeleaf-遍历list和map
  • 原文地址:https://www.cnblogs.com/mount-q/p/7257562.html
Copyright © 2011-2022 走看看