• Vi的三种模式及其指令


    第一部分:一般指令模式可用按键说明,光标移动,复制粘贴、搜索替代

    移动光标的方法:

    移动光标的方法
    h或(左箭头) 光标向左移动一个字符
    j或(下箭头) 光标向下移动一个字符
    k或(上箭头) 光标向上移动一个字符
    l或(右箭头) 光标向右移动一个字符

    多次移动:

    翻页
    【ctrl】+【f】      向下一页,等于PageDown
    【ctrl】+【b】 向上一页,等于Page Up
    【ctrl】+【d】 向下移动半页
    【ctrl】+【u】 向上移动半页
    +                         光标移动到非空格符的下一列
    - 光标移动到非空格符的上一列
    n<space> 向后面移动20个字符的距离
    0或功能键【Home】 行开头
    $或功能键【End】 行末尾
    H 屏幕最上方那一行的第一个字符
    M                          屏幕最中间那一行的第一个字符
    L 屏幕最下方那一行的第一个字符
    G 移动到文件的最后一行
    nG 移动到文件的第n行
    gg 移动到文件的第一行,等于1G
    n<Enter> 光标向下移动n行

    搜索与取代

    搜索与取代
    /word                      向光标之下寻找为word的字符串
    ?word 向光标之上寻找为word的字符串
    n 重复前一个搜寻动作
    N 反向进行前一个搜寻动作
    :n1,n2s/word1/word2/g 在n1和n2行之间寻找word1字符串,将其取代为word2
    :1,$s/word1/word2/g 在第一行到最后一行寻找word1字符串,并将其取代为word2
    :1,$s/woed1/word2/gc 在第一行到最后一行寻找word1字符串,并将其取代为word2,在取代之前提示字符询问是否取代

    删除复制与粘贴:

    删除、复制与粘贴
    x,X

    x:向后删除一个字符,等于【del】

    X:向前删除一个字符,等于【backspace】

    nx 连续向后删除n个字符
    dd 删除游标所在的那一行
    ndd 删除光标所在的向下n行
    d1G 删除光标所在到第一列的所有数据
    dG 删除光标所在到最后一列的所有数据
    d$ 删除游标所在处,到该列的最后一个字符
    d0 删除游标所在处,到该列的第一个字符
    yy 复制游标所在的哪一列
    nyy 复制游标所在的向下n列
    y1G 复制光标所在列到第一列的所有数据
    yG 复制光标所在列到最后一列的所有数据
    y0 复制光标所在字符到行首的所有数据
    y$ 复制光标所在的字符到行尾的所有数据
    p,P 将已复制的数据在光标的下一列贴上,P则为游标的上一列
    J 将光标所在列与下一列的数据合成一列
    c 重复删除多个数据
    u 复原前一个动作
    【ctrl】+r 重做上一个动作
    . 重复前一个动作

    一般指令模式切换到编辑模式可用的按键说明:

     
    i,I

    进入插入模式:

    i 【从目前光标所在处插入】

    I  【从所在行的第一个非空格符处开始插入】

    a,A

    进入插入模式:
    a  【从目前光标所在的下一个字符处开始插入】

    A  【从光标所在列的最后一个字符处开始插入】

    o,O

    进入插入模式:

    o  【在光标所在列的下一列插入新的一列】

    O 【在光标所在列的上一列插入新的一列】

    r,R

    进入取代模式:

    r  【取代光标所在的那个字符一次】

    R   【一直取代光标所在的文字,直到按下Esc键为止】

    【Esc】 退出编辑模式,回到一般指令模式

    一般指令模式切换到指令列模式的可用按键:

    指令模式的存储离开等指令
    :w 将编辑的数据写入硬盘
    :w! 当文件的属性为【只读】时,强制写入该文件。到底能不能写入,与你对文件的权限有关
    :q 离开vi
    :q! 曾修改过文件,又不想存储,使用!强制离开不存储文件
    :wq   存储后离开
    :wq! 存储后强制离开
    ZZ                   文件没有更改,则不存储离开,若文件已被更改,则存储后离开。
    :w【filename】        将编辑的数据存储成另一个文件
    :r[filename] 在编辑的数据中,读入另外一个文件的数据
    :n1,n2w[filename]   将n1到n2的内容存储成filename这个文件
    :!command

    暂时离开vi到指令列模式下执行command的显示结果!例如:【:!ls /home】  在vi中查看当前/home下的ls输出的文件信息

    vim环境的变更

    vim环境的变更
    :set nu 显示行号,设定之后,会在每一列的前缀显示改行的行号
    :set nonu 取消行号

    特别注意在vi中,【数字】是很有意义的!数字通常代表重复做几次的意思!也有可能代表去第几个什么什么的意思。向下移动20列,那就是[20 j]即可。

  • 相关阅读:
    LINQ 笔记
    关于:last-child的一点见解
    webpack 配置IP 和端口号
    echarts.制作中国地图,点击对应的省市链接到该省份的详细介绍
    关于offsetWidth innerWidth的使用
    关于mobiscroll插件的使用
    关于取url或者微信中参数的js
    上传图片
    使用默认图片替代某张图为空时的情况
    在数组中计算和的最大最小值
  • 原文地址:https://www.cnblogs.com/sggggr/p/11989238.html
Copyright © 2020-2023  润新知