• VIM


    光标移动

    操作指令具体内容
    h或向左箭头(←) 光标向左移动1个字符
    j或向下箭头(↓) 光标向下移动1个字符
    k或向上箭头(↑) 光标向上移动1个字符
    l或向右箭头(→) 光标向右移动1个字符
    h或向左箭头(←) 光标向左移动1个字符
      对以上,若在指令前输入n则移动n位,如30j则表示向下移动30行
    [ctrl]+[f] 向下移动一页
    [ctrl]+[b] 向上移动一页
    [ctrl]+[d] 向下移动半页
    [ctrl]+[u] 向上移动半页
    + 光标移动到非空格的下一列
    - 光标移动到非空格的上一列
    n 向右移动n位
    0或功能键[HOME] 移动到这一行的最前面
    $或功能键[END] 移动到这一行的最后面
    H 移动到第一行第一个字符
    G或L 移动到最后一行
    M 移动到中间一行
    nG或 :n 移动到第n行
    gg 移动到第一行

    搜寻和替代

    操作指令具体内容
    /word 向下查询word字段
    ?word 向上查询word字段
    n 向下重复上一个查询字段
    N 向上重复上一个查询字段
    :s/old/new/ 将当前行第一个old字段替换为new字段
    :s/old/new/g 将当前行所有old字段替换为new字段
    :n,$s/old/new 将第n行开始,到最后一行中的每一行的第一个old字段替换成new字段
    :n,$s/old/new/g 将从第n行开始,到最后一行中每一行的所有old字段替换成new字段
    若n为.表示从当前行开始替换  
    :%s/old/new/ 等同于 :g/old/s//new/ 替换每一行的第一个 old 为 new
    :%s/old/new/g 等同于 :g/old/s//new/g 替换每一行中所有 old 为 new
    :n1,n2s/old/new/g 将n1到n2行中所有的old字段替换成new字段
    :%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ) /oradata/apras/替换成/user01/apras1/
    :s#vivian/#sky/#使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符 替换当前行第一个 vivian/ 为 sky/

    删除、复制和粘贴

    操作指令具体内容
    x 向后删除一个字符
    X 向前删除一个字符
    dd 删除当前行
    ndd 向下删除n行
    d1G 删除光标所在到第一行数据
    dG 删除光标所在到最后一行数据
    d$ 删除光标所在到本行的最后一个字符
    d0 删除光标所在到本行的第一个字符
    yy 复制当前行
    nyy 向下复制n行
    y1G 复制光标所在行到第一行的所有数据
    yG 复制光标所在行到最后一行的所有数据
    y0 复制光标到本行行首的所有数据
    y$ 复制光标到本行行尾的所有数据
    p 将复制数据粘贴在光标的下一行
    P 将复制数据粘贴在光标的上一行
    J 将光标所在行和下一行数据合成一行
    u 复原上一个动作
    [ctrl]+r 重做上一次动作

    其他常用操作

    操作指令具体内容
    :w 将编辑的数据储存成另一个档案(类似另存新档)
    :n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
    :! command 暂时离开 vi 到指令列模式下执行 command 的显示结果,如:! ls ~
    : r !command 将command命令的执行结果插入到文本当前行的下一行
    : 3 !command 将文本中第三行的内容输入到命令command中进行处理,并将第三行的内容替换为命令的执行结果
    :1,3 !command 将文本中第一行到第三行的内容输入到命令command中进行处理,并将第一行到第三行的内容替换为命令的执行结果
    :3 w !command 将文本中第三行的内容输入到命令command中进行处理,不改变当前编辑文件的内容.
    :1,3 w !command 将文本中第一行到第三行的内容输入到命令command中进行处理,不改变当前编辑文件的内容
    :shell 切换到shell,此时vim在后台运行,在shell中输入命令exit,切换回vim

    多文件编辑

    操作指令具体内容
    vim filename1 filename2 同一个窗口显示多个文件(打开后暂时只显示filename1的内容
    :n 切换到下一个文件
    :N 切换到上一个文件
    :n filename2 切换到文件filename2
    :ls 列出vim打开的所有文件的信息,包括文件名,buffer id等
    :b2 切换到buffer id为2的buffer
    :bn 切换到当前buffer的下一个buffer
    :bp 切换当前buffer的前一个buffer
    :bd 关闭当前buffer,对应文件也随之关闭
    :bd2 关闭buffer id为2的buffer,对应文件也随之关闭
    :e file 打开新文件,但不会分割窗口
    :sp file 打开新文件,并且将会水平分割窗口
    :vsp file 打开新文件,并且将会垂直分割窗口

    分割窗口,显示多个文件

    操作指令具体内容
    vim -o filename1 filename2 水平分割窗口
    vim -O filename1 filename2 垂直分割窗口
    [ctrl] + ww 实现串口间的切换

    其中,水平分割的示意图如下所示: 
    水平切割示意图 
    垂直分割的示意图如下所示: 
    垂直切割示意图

  • 相关阅读:
    [PHP] laravel框架注意bootstrap/cache
    [git] git拉取远程分支代码
    Prometheus监控系统(4)pushgateway及自定义脚本
    k8s 学习
    pxc /Galera Cluster详解
    Percona Monitoring and Management
    etcd获取所有key
    kubernetes Pod驱逐迁移drain用法
    kubernetes etcd数据管理
    办公环境下k8s网络互通方案
  • 原文地址:https://www.cnblogs.com/wxj-106/p/7886735.html
Copyright © 2020-2023  润新知