zoukankan      html  css  js  c++  java
  • 常用的VI/VIM命令

     

    删除单个字符: x

    删除整行: dd

    合并成一行:J

    撤消:  u

    重做:crtr + r

    插入:  i , a(光标后),o(下方开始新行) ,O(上方开始新行)

    移动


    w:向前移动一个单词开始

    b:向后移动一个单词开始

    e:向前移动到一个单词的末尾

    ge:向后移动到一个单词的末尾

    W,B,E,gE是以空格(' ')区分单词,小写的话是以非字母区分

    $:移到行尾

    ^:移动一行第一个非空格光标

    0:移动一行第一字光标处

    f<c>:在当前行向前查找为c的字符

    F<c>:在当前行向后查找为c的字符

    [fF]<c>这两个命令执行后,按 ; 和 , 可以重复执行命令

    %:定位到对称的符号光标处,如[ ],{ }

    <n>G:光标定位在指定的行

    gg:定位到第一行

    G:定位到最后一行

    H:移动到当前可见视图的第一行

    M:移动到当前可见视图的中间行

    L:移动到当前可见视图的最后一行

    CRTL + G : 显示当前位置

    :set number 显示行号

    :set nonumber 关闭显示行号

    CRTL + E : 向下滚动一行

    CRTL + Y : 向上滚动一行

    CRTL + U : 向上滚动半屏

    CRTL + D : 向下滚动半屏

    CRTL + B : 向上滚动一屏

    CRTL + F : 向下滚动一屏

    zz:把当前光标所在的行移动屏中间行

    zt: 把当前光标所在的行移动屏上端

    zb:把当前光标所在的行移动屏下端

    m[az]:把当前光标所在的位置设置一个标记,用a~z之间的一个字符表示,如果在别的地方要马上回到此标记的位置,按 '<m>,如:'s,则回到标记为s的地方  ''   跳回到上次光标位置

    使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退 和 前进 。

    • m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。
    • m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。
    • `{a-z}: 移动到标记位置。
    • '{a-z}: 移动到标记行的行首。
    • `{0-9}:回到上[2-10]次关闭vim时最后离开的位置。
    • ``: 移动到上次编辑的位置。''也可以,不过``精确到列,而''精确到行 。如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i。
    • `": 移动到上次离开的地方。
    • `.: 移动到最后改动的地方。
    • :marks 显示所有标记。
    • :delmarks a b -- 删除标记a和b。
    • :delmarks a-c -- 删除标记a、b和c。
    • :delmarks a c-f -- 删除标记a、c、d、e、f。
    • :delmarks! -- 删除当前缓冲区的所有标记。
    • :help mark-motions 查看更多关于mark的知识。

    查找


    /<find_sequence> : 查找<find_sequence>字符串,注意.*[]^%/\?~$是特殊字符,要用\转义

    按enter执行命令后,可以输入n或N进行正向,或者反向查询下一个

    如果执行查找时一个单词太长不容易拼写,则可以在光标定位到该单词时执行: * 命令,则可以执行查找,# 命令是反向查找

    :set ignorecase可以设置查询是否对大小写敏感

    :set hlsearch 高亮显示所有匹配的行

    :set incsearch 在输入的时候就显示匹配点

    :set wrapscan 找n或N查找的时候到达末尾时,是徇环查找

    编辑文本


     d + <移动命令>:操作从当前光标所处的位置到移动后的光标位置的所有内容,例于:de,删除当前光标到下一个单词结尾的所有内容

    c + <移动命令>:和上面一样,不过会进入插入模式

    一些快捷键:

    x = dl : 删除当前光标内容

    X = dh : 删除光标左边的字符

    D = d$ : 删除到行尾

    C = c$ : 删除到行尾并进入插入模式

    s = cl : 修改一个字符

    S = cc : 修改整行

    r[az]:替换光标定位位置的字符,如rb则把当前光标位置的字符换成b,这比 c 命令的好处在于不用进入插入模式,省下ESC操作

    . : 重复执行上次的操作

    v,V,crtl + v,可分别进入可视模式,行可视模式,块可视模式,选择后按d可以删除选择的内容。在可视模式下,如果想换可变换的光标点,则可以按o和O来进行切换

    y + <移动命令>:复制

    daw:删除一个单词  

    yaw:拷贝一个单词 

    yiw:拷贝一个单词,与前的区别是这个拷贝不包括单词后面的空格字符串

    ~:改变单词大小写

    A:移动在行尾并启动插入模式

    I:移动到行首第一个非空字符并启动插入模式

    R:进入替换模式


    NERDTree

    crtl + ww : 返回到NERDTree操作界面

    :! touch 新增文件

    --——
     
  • 相关阅读:
    FLASH置于底层
    图片等比缩放
    fedora 系统使用 Broadcom BCM4312 无线网卡(转)
    ubuntu语言问题
    轻松安装、卸载Linux软件
    redhat6.0下使用vnc
    http网络安装centos 5.5系统总结
    如何在windows下搭建python的IDE开发环境
    对做技术的一点思考
    C++继承类和基类之间成员函数和虚函数调用机制
  • 原文地址:https://www.cnblogs.com/jcli/p/2847382.html
Copyright © 2011-2022 走看看