zoukankan      html  css  js  c++  java
  • VIM使用学习笔记 : 按键说明

    VIM有三种模式:
    一般模式
        上下左右移动光标,删除字符或删除整行,复制粘贴
    编辑模式
        i I i O a A r R 进入编辑模式
    命令模式
        在一般模式种输入 : / ?,可以将光标移动到最下面那一行。在这个模式种,可以提供你查找数据的操作,而读取、保存、大量替换字符、离开vi、显示行号等的操作都是在这个模式中。


    按键说明:
    =========================================
      一般模式:光标移动、复制粘贴、查找替换
    =========================================
    移动光标的方法:
    -----------------------------------------
        hjkl 和方向键:上下左右移动光标,前面可以加数字:20j,代表向下移动20行。
        ctrl + f : pagedown
        ctrl + b : pageup
        ctrl + d : 屏幕向下移动半页
        ctrl + u : 屏幕向上移动半页
        n<space> : 20<space> 光标后移20个字符距离
        0或home键 : 移到行首
        $或end键 : 移到行末
        H : 光标移动到这个屏幕的最上方那一行的第一个字符
        M : 光标移动到这个屏幕的中央那一行的第一个字符
        L : 光标移动到这个屏幕的最下方那一行的第一个字符
        G : 移动到这个文件的最后一行
        nG : 移动到这个文件的第n行: 20G,移动到20行,可配合:set nu
        gg : 移动到这个文件的第一行,相当于1G
    -----------------------------------------
    查找与替换的方法:
    -----------------------------------------
        /word : 向下查找一个名称为word的字符串
        ?word : 向上查找一个名称为word的字符串
        n : 重复前一个查找的操作,向下
        N : 重复前一个查找的操作,向上
        :n1,n2s/word1/word2/g : n1和n2为数字。在n1与n2行之间寻找word1这个字符串,并将该字符串替换成word2。比如:在100与200行之间查找vbird并替换为VBIRD则用“100,200s/vbird/VBIRD/g”
        :1,$s/word1/word2/g : 从第一行到最后一行查找word1字符串,并将该字符串替换为word2
        :1,$s/word1/word2/gc : 从第一行到最后一行查找word1字符串,并将该字符串替换为word2.且在替换前显示提示字符给用户确认是否需要替换
    -----------------------------------------
    删除、复制与粘贴
    -----------------------------------------
        x,X : 在一行字中,x = Delete, X = Backspace
        nX,nX : 删除n个字符,比如:10x,10X,含义同上
        dd : 删除光标所在那一行
        ndd : 删除光标那行开始的向下n行
        d1G : 删除光标所在行到第一行的所有数据
        dG : 删除光标所在行到最后一行的所有数据
        d$ : 删除从光标所在处到该行的最后一个字符
        d0 : 删除从光标所在到该行的第一个字符
        yy : 复制光标所在行
        nyy : 复制光标所在的向下n行,例如20yy则是复制20行。
        y1G : 复制光标所在行到第一行的所有数据
        yG : 复制光标所在行到最后一行的所有数据
        y0 : 复制光标所在字符到该行行首的所有数据
        y$ : 复制光标所在字符到该行行尾的所有数据
        p,P : p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标上一行。
        J : 将光标所在行与下一行的数据接合成同一行
        c : 重复删除多个数据,例如向下删除10行,10cj
        u : 撤消
        ctrl+r : 恢复
        . : 重复前一个操作
    =========================================
    第二部分:一般模式切换到命令行模式的可用的按钮说明
    -----------------------------------------
        i,I : 进入插入模式,i为从目前光标所在处插入,I为从光标所在行的第一个非空格字符处开始插入
        a,A : 进入插入模式,a为从目前光标所在的那一个字符处插入,A为从光标所在行的最后一个字符处开始插入
        o,O : o为在目前光标所在的下一行处插入新的一行;O为在目前光标所在处的上一行插入新的一行
        r,R : r只会替换光标所在的那一个字符一次;R会一直替换光标所在的文字,直到按下Esc为止。
    =========================================
    第三部分:一般模式切换到命令行模式的可用的按钮说明
    -----------------------------------------
        w : 写入
        w! : 若文件属性为只读时,强制写入该文件。能否写入成功,还是与该文件的文件权限有关。
        q : 退出
        q! : 放弃修改并退出
        wq : 保存后离开
        wq! : 强制保存后离开
        ZZ : 若文件没动,则不保存离开,若文件已经被更动过,则保存后离开
        w[filename] : 将编辑的数据保存为另一个文件,比如: w newfile.txt
        r[filename] : 在编辑的数据中,读入另一个文件的数据,即将"filename"这个文件内容加到光标所在行后面
        n1,n2 w [fielname] : 将n1到n2的内容保存成filename这个文件
        ! commond : 暂时离开vi到命令行模式下执行commond的显示结果。例如:! ls /home 即可在vi中查看/home下面以ls输出的文件信息
        set nu : 显示行号
        set nonu : 取消行号
        

    =========================================
    以管理员身份保存文件
    -----------------------------------------
    :w !sudo tee %
  • 相关阅读:
    响应式布局
    Margin是什么?
    分布式系统设计(1)
    Hadoop处理大量小文件的问题和解决方法
    Facebook揭密:如何让MySQL数据库集群自主运行
    大数据营销的优势
    LevelDB系列之SSTable(Sorted Strings Table)文件
    LevelDB系列之Log文件
    LevelDB系列之整体架构
    LevelDb系列之简介
  • 原文地址:https://www.cnblogs.com/liushijie/p/4712912.html
Copyright © 2011-2022 走看看