美文网首页
vim基本操作命令

vim基本操作命令

作者: freelamb | 来源:发表于2017-08-15 11:07 被阅读100次

    插入

    命令 说明
    i 光标前插入
    a 光标后插入
    I 当前行首插入
    A 当前行尾插入
    O 当前行之前插入新行
    o 在当前行之后插入新行

    当前行的光标操作

    命令 说明
    fx 移动到当前行的下一个x,x可以是一个字符 可以使用 ; 来重复你的上一个 f 命令
    FX 移动到当前行的上一个x,x可以是一个字符
    w 移动光标到后一个单词
    b 移动光标到前一个单词
    0 移动光标到当前行首
    ^ 移动光标到当前第一个字母位置
    $ 移动光标到当前行尾

    整个文件的光标操作

    命令 说明
    gg 到整个文件的第一行
    #gg 或 #G 到整个文件的第#行
    G 到整个文件的最后一行
    <c, f> 向后移动一屏
    <c, b> 向前移动一屏
    H 移动光标到屏幕上面
    M 移动光标到屏幕中间
    L 移动光标到屏幕下面
    * 读取光标处的字符串,并且移动光标到后面出现的地方
    # 读取光标处的字符串,并且移动光标到前面出现的地方
    /text 从光标处开始往下查找text文本,可以使用n查找下一个
    ?text 从光标处开始往上查找text文本,可以使用n查找上一个
    `. 回到你上次编辑文件的地方
    ma 在当前光标处标记添加书签a,书签只能是小写
    `a 跳到书签a处

    关键词自动完成

    命令 说明
    <c, n> 或 <c, p> 关键词自动完成

    复制、粘贴

    命令 说明
    Y or yy 复制当前行
    #yy 复制从光标所在行往下的#行
    yw 将光标所在之处到字尾的字符复制
    #yw 复制#个字
    p 粘贴
    l1, l2 co l3 复制第l1行到第l2行之间的内容到第l3行后面

    删除

    命令 说明
    dd 删除光标所在行
    #dd 从光标所在行开始删除#行
    :l1,l2 d 将l1,l2行之间的内容删除
    dgg 删除到首行
    dG 删除到尾行
    X 删除光标所在位置的前面一个字符
    x 删除光标所在位置的后面一个字符
    #x 删除光标所在位置后面#个字符
    d^ 删除到行首
    D or d$ 删除到行尾
    dw 删除一个单词/光标之后的单词剩余部分
    d#w 删除#个单词
    diB 删除{}中的内容
    daB 删除{}及其内的内容
    :% g/^$/d 删除空行
    :% g/pattern/d 删除包含特定字符的行(全局删除匹配行)
    :% 1,3g/pattern/d 删除包含特定字符的行(删除第1-3行里的匹配行)
    :% v/pattern/d 或 :% g!/pattern/d 删除不包含指定字符的行

    多行操作

    命令 说明
    :%s/^/要添加的内容 在每行行首添加相同的内容
    :%s/$/要添加的内容 在每行行尾添加相同的内容
    :1,$j 多行转一行
    :%j 或者 :%j!(此法不会再行尾添加空格) 多行转一行
    :%s/XXX/^M/g 一行转多行,^M为先按ctrl+v,再按ctrl+m出来的,不是字符串^M
    :1,$s/.$// $代表行末或者最后一行。1,$表示全文,也可用%表示。s表示替换, /.$//:正则,把最后一个字符替换为空
    :set nu 显示行号
    :set nonu 取消显示行号

    常用方法

    执行命令

    > :w !{cmd}
    

    在vim保存时获得sudo权限

    > :w !sudo tee %
    

    在每1000行后添加数据

    $ awk '{if(NR%1000==0) {print "aaaaaaa"$0} else print}'
    

    参考

    https://linuxtoy.org/archives/efficient-editing-with-vim.html
    https://coolshell.cn/articles/5426.html
    https://segmentfault.com/q/1010000000151086

    相关文章

      网友评论

          本文标题:vim基本操作命令

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