zoukankan      html  css  js  c++  java
  • vi 使用介绍

    参考 <<vi编辑器使用介绍>>
    文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice ,文本模式下的编辑器有vi、vim(vi的增强版本)和nano,
    vi和vim是我们在Linux中最常用的编辑器


    vi 的三种命令模式
    Command(命令)模式,用于输入命令;
    Insert(插入)模式,用于插入文本;
    Visual(可视)模式,用于视化的的高亮并选定正文;


    文件的保存和退出
    Command 模式是vi或vim的默认模式,如果我们处于其它命令模式时,要通过ESC键切换过来。
    当我们按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令;
    :w 保存;
    :w filename 另存为filename;
    :wq! 保存退出;
    :wq! filename 注:以filename为文件名保存后退出;
    :q! 不保存退出;
    :x 应该是保存并退出 ,功能和:wq!相同


    光标移动
    当我们按ESC进入Command模式后,我们可以用下面的一些键位来移动光标 (在Command模式下
    gg        : 跳转到文件头
    Shift+g   : 跳转到文件末尾
    行数+gg   : 跳转到指定行,例跳转到123行:123gg
    ctrl+b    :  向上移动一屏
    ctrl+f    :  向下移动一屏
    向上箭头 向上移动;
    向下箭头 向下移动;
    向左箭头 向左移动;
    向右箭头 向右移动;
    j 向下移动一行;
    k 向上移动一行;
    h 向左移动一个字符;
    l 向右移动一个字符
    我们编辑一个文件时,对于 j、k、l和h键,还能在这些动作命令的前面加上数字,比如 3j,表示向下移动3行。


    删除
    x 一个字符;
    dd 删除一行
    dw 删除一个单词
    #x 删除几个字符,#表示数字,比如3x;
    #dw 删除几个单词,#用数字表示,比如3dw表示删除三个单词;
    #dd 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行;
    d$ 删除光标到行尾的内容;
    J 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起;


    撤销
    u 撤消修改或删除操作;必须在Command(命令)模式下才有作用
    按ESC键返回Command(命令)模式,然后按u键来撤消删除以前的删除或修改


    可视模式
    按ESC键,然后按v就进入可视模式;退出可视模式,还是用ESC键
    可视模式为我们提供了极为友好的选取文本范围,以高亮显示;在屏幕的最下方显示有;
    -- 可视 --

    --VISUAL--

    进入可视模式,我们就可以用前面所说的命令行模式中的光标移动指令,可以进行文本范围的选取。

    我们可以对某部份删除作业,按d键就删除了我们选中的内容
    选中内容后,我们按y就表示复制;按d表示删除;
    值得一提是的删除的同时,也表示复制
    我们返回到命令模式,然后移动光标到某个位置,然后按shift+p键,就把刚才删除的内容贴上了(必须在Command模式下粘贴)。


    复制和粘帖
    p 在光标之后粘帖都是在Command模式下
    shift+p 在光标之前粘帖:都是在Command模式下

    来举一例:
    比如我们想把一个文档的第三行复制下来,然后帖到第五行的后面,我们应该怎么做呢?有两种方法;
    第一种方法:
    先把第三行删除,把光标移动到第三行处,然后用dd动作,接着再按一下shift+p键。这样就把刚才删除的第三行帖在原处了。
    接着我们再用k键移动光标到第五行,然后再按一下p键,这样就把第三行的内容又帖到第五行的后面了;
    第二种方法;
    进入可视模式,按ESC键,然后按v键。移动鼠标指针,选中第三行的内容,然后按y键复制;再移动指针到第五行,最后按p键;

    复制和粘贴操作,是命令模式、插入模式及可视模式的综合运用;我们要学会各种模式之间的切换,要常用ESC键;
    更为重要的学会在命令模式下移动光标;


    查找
    首先,我们要进入ESC键,进入命令模式;我们输入/或?就进入查找模式了;
    /SEARCH 注:正向查找,按n键把光标移动到下一个符合条件的地方
    ?SEARCH 注:反向查找,按shift+n 键,把光标移动到下一个符合条件的

    举一例:比如我想在一个文件中找到swap单词,我应该如下做;
    首先按ESC键,进入命令模式,然后输入;
    /swap

    ?swap


    替换
    按ESC键进入命令模式;
    :s /SEARCH/REPLACE/g 注:把当前光标所处的行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示;
    :%s /SEARCH/REPLACE 注:把文档中所有SEARCH替换成REPLACE;
    :#,# s /SEARCH/REPLACE/g 注:#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE;
    注:在这之中,g表示全局查找;我们注意到,就是没有替换的地方,也会把SEARCH高亮显示;

    举例说明:
    比如我们有一篇文档要修改;
    我们把光标所在的行,把所有单词the,替换成THE,应该是:
    :s /the/THE/g
    我们把整篇文档的所有的the都替换成THE,应该是:
    :%s /the/THE
    我们仅仅是把第1行到第10行中的the,替换成THE,应该是;
    :1,10 s /the/THE/g

  • 相关阅读:
    Codeforces 722C. Destroying Array
    Codeforces 722D. Generating Sets
    【BZOJ】3436: 小K的农场
    数论四·扩展欧几里德
    数论三·约瑟夫问题
    数论二·Eular质数筛法
    #1287 : 数论一·Miller-Rabin质数测试
    树的维护
    可持久化线段树
    【NOIP2016】天天爱跑步
  • 原文地址:https://www.cnblogs.com/lijunamneg/p/3556575.html
Copyright © 2011-2022 走看看