• 08vi使用


    基本框架:

    a)         Vi的三种工作模式

    b)         编辑模式

    c)         插入模式

    d)         命令模式

    1、 Vi的三种工作模式

          

                 

                        

    2、 编辑模式:不能所见即所得

    l  光标定位

     k              上移;

    j              下移;

    h              左移;

    l              右移。

    ctrl+f          在文件中前移一页(相当于page down)。

    ctrl+b          在文件中后移一页(相当于page up)。

    H               将光标移到屏幕上的起始行(或最上行);

    M               将光标移到屏幕中间;

    L               将光标移到屏幕最后一行。

    gg               文件的开头

    G                文件的末尾

    0               数字0,左移光标到本行的开始;

    $               右移光标,到本行的末尾;

    l  搜索字符串

    /str1               正向搜索字符串 str1

    n                   继续搜索,找出 str1 字符串下次出现的位置

    ?str2               反向搜索字符串 str2

    l  替换和删除

    rc              用 c 替换光标所指向的当前字符

    nrc             用 c 替换光标所指向的前 n 个字符

    x               删除光标所指向的当前字符

    dd              删除光标所在行,并去除空隙

    ndd             删除 n 行内容,并去除空隙

    其他常用的删除命令是:

    d$              从当前光标起删除字符直到行的结束;

    d0              从当前光标起删除字符直到行的开始;

    dgg             文件开头到当前光标

    dG              当前光标到文件尾

    J               删除本行的回车符,并和下一行合并。

    l  剪切和粘贴

    小写字母 p       将缓冲区的内容粘贴到光标的后面

    大写字母 P       将缓冲区的内容粘贴到光标的前面

    yy               复制当前行到内存缓冲区

    nyy              复制 n 行内容到内存缓冲区

    l  撤销和重复

    u               撤消前一条命令的结果

    .               重复最后一条修改正文的命令

               

    3、 插入模式  可以所见即所得

    i               在光标左侧插入正文

    a               在光标右侧插入正文

    o               在光标所在行的下一行增添新行

    O               在光标所在行的上一行增添新行

    I               在光标所在行的开头插入

    A               在光标所在行的末尾插入

    4、 命令模式

    退出命令

    : q                 在未作修改的情况下退出

    : q!                强制退出,放弃所有修改

    :wq                保存退出

    另外在编辑模式下可以按大写的ZZ也能保存退出

    行号与文件

    : n             将光标移到第 n 行

    :1,.w file      将第 1 行至当前行写入 file 文件

    :1,$w file      将所有内容写入 file 文件,  相当于 :w file 命令

    :w file         将当前编辑的内容写到 file 文件里,保持原有文件的内容不变

    :e file         编辑新文件

    字符串搜索

         跟编辑模式类似

    正则表达式

    ^               放在字符串前面,匹配行首的字;

    $               放在字符串后面,匹配行尾的字;

    <              匹配一个字的字头;

    >              匹配一个字的字尾;

    .             匹配任何单个正文字符;

    [str]           匹配str中的任何单个字符;

    [^str]          匹配任何不在str中的单个字符;

    [a-b]           匹配a到b之间的任一字符;

    *               匹配前一个字符的0次或多次出现;

                   不管后面的字符的特殊含义。

    正文替换

    :s/str1/str2/       替换当前行中所有出现的字符串 str1

    :s/str1/str2/g      替换当前行中首次出现的字符串 str1

    :1,$ s/str1/str2    替换全文中所有出现的字符串 str1

    删除正文

    :d                  删除光标所在行

    :3d                 删除第 3 行

    :.,$d               删除当前行至正文的末尾

    :/str1/,/str2/d     删除从字符串 str1 到 str2 的所有行

    选项设置

     如果想要显示行号,首先切换到用户的家目录,然后 vi 任意一个新文件,然后在命令行输入mk,目的是为了生成 .exrc文件,然后在.exrc文件中添加 set number

    shell切换

    :! command          执行完 command后回到 vi

        另外也可以在vi命令行输入sh,然后就切换到shell环境,在shell环境中输入exit就能退回到vi环境。

    5、 如何进行多窗口的编辑

     

    l  打开多文件:

    Vim –o filename1 filename2   横向显示多文件

    Vim –O filename1 filename2   纵向显示多文件

    如果已经打开一个文件,可以用:     sp +  文件名   上下多窗口显示

    vs +  文件名   左右多窗口显示

    也可以用new, vnew 来实现相同的功能

    l  多窗口间切换:

    Ctrl + w+ w 在多窗口间进行切换

    也可以通过在命令行输入first,wnext,last使相应的文件切换到当前窗口

    l  显示当前编辑的文件信息:

    :f      打印当前文件名称和状态,如文件的行数、光标所在的行号等

    另外跟f命令功能相近的有:args,ctrl + g(在编辑模式下输入)

    l  退出:

    exit, quit(q), close : 关闭一个窗口

    wquitall(wqall):  保存并关闭多个文件

    6、其它细节:

    zo   展开折叠处

    zm   进行折叠

    gg=G  代码对齐(在编辑模式下输入)

  • 相关阅读:
    操作系统的发展史
    多线程的些许理解(平台x86,具体考虑linux,windows)
    C++ 11 智能指针
    C++虚函数和纯虚函数
    Qt之excel 操作使用说明
    查找之二叉排序树
    图的一些总结
    树的一些总结
    直接插入排序
    冒泡和选择排序
  • 原文地址:https://www.cnblogs.com/xieyang/p/3919528.html
Copyright © 2020-2023  润新知