• VI的使用


    最近写过一次awk脚本,发现vi的使用居然忘了,又重新温习了一遍,现在把之前的整理基本用法记录下来。

    Vi是Linux/unix系统默认的编辑器,就像是windows下的notepad一样。但是vi编辑器如果熟练使用,效率不知道比notepad快多少倍!

    vi有三种工作模式,分别是命令行模式、插入模式、末行模式,我们经常是在插入模式下编辑文字的。三种模式的转换方式如下:

     

     我们每次启动vi都是以命令模式开始,在vi编辑器下是区分大小写的。如果不确定是处在什么模式下,则连续按两次ESC就可以处在命令行模式下了。下面讲述vi的基本使用:

    一、光标移动

    在非插入模式下,k,j,h,l四键分别代表光标的向左、向下、向上、向右移动,下面说明其他键的使用:

      ^ 将游标放在该行的开始处

    $ 将游标放在改行的结尾处

    w 将游标移动到下一个单词的开始

    b 将游标移动到上一个单词的开始 

    将游标移动到当前句子的开始处

    将游标移动到当前句子的结尾处 

    ctrl+F 将游标向前滚动一屏

    ctrl+B 将游标向后滚动一屏

    G 将游标移动到最后一行

    :x(x为数字) 将游标移动到第x行 

    二、编辑

    我们需要键入i/a/o/I/A/O 将命令行模式转换为插入模式,

    i 在当前光标前插入

    I 在当前行的最开始处插入

    a 在当前光标后插入

    A 在当前行的行尾插入

    o 在当前行下面创建新行

    O 在当前行的上面创建新行插入

    cc 删除整个一行,该行变为空行,变为插入模式

    cw 删除整个单词,直到下个单词,变为插入模式

    r 替换光标所在的字符

    R 覆盖光标所在的字符,按ESC停止覆盖

    s 删除光标所在的字符,变为插入模式

    S 删除光标所在的行,该行变为空行,变为插入模式

    x 删除光标所在位置的字符

    X 删除光标所在位置前的字符

    dw 从当前字符开始删除,直到下一个单词开始

    D 从当前字符开始删除,直到行结束

    dd  删除整个行的内容,光标移动到下一行的开头 

    J 将当前行与下面的行合并到一起

    可将d与光标移动的字符结果使用,删除相应位置的文字。 

    三、复制粘贴

      yy 复制当前行的内容

    yw 复制光标所在的单词

    p 将复制的内容,粘贴在光标的后面

    P 将复制的内容,粘贴在光标的前面 

    四、查找替换

    vi采用 / 和 ?,进行查找,如/love向下查找love,按n进行下一个查找,使用?进行向上查找。

    采用s来进行替换,如 :s /misspelled  /spelled correctly  /g

    /g 是进行全局替换, $表示最后一行,%表示要替换每一行的第一个目标,c代表需要确认,#表示出现/不作为分隔符

    :1,$ s/doyouloveme? /i love you /gc     全局替换,从第1行到最后一行,带确认替换doyouloveme?为 i love you。

    :%s /you /me  把每一行的you替换为me

    :s#spring/#Spring/# 将当前行的spring/替换为Spring/

    五、保存退出

      vi使用w表示保存,q表示退出,!表示强制,如果在命令行中输入:e filename ,会在当前的编辑窗口编辑新文件,使用crtl + ^ 来切换文件,使用 n也可转换文件。

    六、定制

      vi编辑器还可以定制特征, 如显示行号,自动缩进,设置字符编码等。常见的有:

    syntax on   设置语法高亮

    set linespace =0 设置字符间插入的像素行数目

      set noerrorbells 不让vim发出讨厌的滴滴声

    set ignorecase 在搜索的时候忽略大小写
      set autoindent 继承前一行的缩进方式,特别适用于多行注释

    set tabstop=4  制表符为4

    等等,vi还可以使用ctag ,方便程序猿。

     

     

  • 相关阅读:
    014 要区分好slice,splice和split,方法如下
    108 shutil模块(了解)
    107 pathlib模块(了解)
    106 collections模块
    105 typing模块
    104 re模块
    103_01 matplotlib模块
    102 pandas模块
    101 numpy模块
    SQLserver找出执行慢的SQL语句
  • 原文地址:https://www.cnblogs.com/kingcucumber/p/2872556.html
Copyright © 2020-2023  润新知