zoukankan      html  css  js  c++  java
  • Linux笔记:vi常用命令

    vi编辑器是所有Unix及Linux系统下标准的编辑器,在很多时候我们都需要使用vi修改服务端配置,vi其实非常强大,只要命令使用熟练的情况下,编辑速度并不亚于现在的图形化编辑器,这里简单地介绍一下它的使用方法和部分常用指令。

    VI状态模式

    Vi有三种基本的工作模式:指令行模式、文本输入模式、行末模式。
    指令模式 ( Command Mode) 下输入 a、i、o 进入文本输入模式 ( Input Mode )
    文本输入模式 ( Input Mode ) 下按 ESC 进入指令模式(Command Mode)
    指令模式 ( Command Mode)下输入 : 进入末行模式(Last line Mode)
    末行模式(Last line Mode)下指令错误则返回指令模式 (Command Mode)

    状态模式关系图示:

    注:图片来源 https://www.cnblogs.com/dengmj/p/5031498.html

    VI常用命令

    进入VI

    vi filename # 打开或新建文件,并将光标置于第一行首
    vi +n filename # 打开文件,并将光标置于第n行首
    vi + filename # 打开文件,并将光标置于最后一行首
    vi +/pattern filename # 打开文件,并将光标置于第一个与pattern匹配的串处
    vi -r filename # 在上次正用vi编辑时发生系统崩溃,恢复filename

    保存退出

    w  # 保存当前文件 
    x 或 wq  # 保存并退出 
    q  # 退出 
    q!  # 退出不保存 
    w /tmp  # 另存为 /tmp 
    10,50w /tmp # 仅将10-50行之间的内存另存为 /tmp

    插入

    i  # 在光标前 
    I  # 在当前行首 
    a  # 光标后 
    A  # 在当前行尾 
    o  # 在当前行之下新开一行 
    O  # 在当前行之上新开一行 
    r  # 替换当前字符 
    R  # 替换当前字符及其后的字符,直至按ESC键 
    s  # 从当前光标位置处开始,以输入的文本替代指定数目的字符 
    S  # 删除指定数目的行,并以所输入文本代替之 

    删除

    %d  # 删除全部内容 
    1,$ d  # 删除全部内容
    n1,n2 d  # 将n1行到n2行之间的内容删除 
    x  # 删除光标后的一个字符
    X  # 删除光标前的一个字符
    do  # 删至行首 
    d$  # 删至行尾 
    Ctrl+u  # 删除输入方式下所输入的文本 

    复制粘贴

    yy  # 复制当前行 
    nyy  # 复制当前行开始的n行 
    先按 v 然后方向键选择区域,按 y 复制选中行 
    dd  # 剪切当前行 
    p  # 在当前光标处下面粘贴内容 
    P  # 在当前光标处上面粘贴内容 

    查找

    /abc # 从光标开始处向文件尾搜索abc 
    ?abc # 从光标开始处向文件首搜索abc
    n  # 下一个,在同一方向重复上一次搜索命令 
    N  # 上一个,在反方向上重复上一次搜索命令 

    替换

    s/abc/bgm/  # 替换当前行第一个 abc 为 bgm
    s/abc/bgm/g  # 替换当前行所有 abc 为 bgm
    n,$s/abc/bgm/g   # 替换第 n 行开始到最后一行中每一行所有 abc 为 bgm
    %s/abc/bgm/g   # 替换每一行的每一个 abc 为 bgm
    g/abc/s//bgm/g  # 将文件中所有 abc 均用 bgm 替换 

    光标

    h  # 光标左移一个字符 
    l  # 光标右移一个字符 
    k  # 光标上移一行 
    j   # 光标下移一行 
    w  # 向前移动一个单词
    b  # 向前移动一个单词
    e  # 向前移动一个单词,且游标指向单词的末尾
    )  # 光标移至句尾 
    (  # 光标移至句首 
    }  # 光标移至段落开头 
    {  # 光标移至段落结尾 
    nG  # 光标移至第n行首 
    n+  # 光标下移n行 
    n-  # 光标上移n行 
    n$  # 光标移至第n行尾
    H  # 光标移至屏幕顶行 
    M  # 光标移至屏幕中间行 
    L  # 光标移至屏幕最后行 
    0  # 光标移至当前行首 
    $  # 光标移至当前行尾 

    翻屏

    Ctrl+u  # 向文件首翻半屏 
    Ctrl+d  # 向文件尾翻半屏 
    Ctrl+f  # 向文件尾翻一屏 
    Ctrl+b  # 向文件首翻一屏 
    nz  # 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部 

    作者:朝雨忆轻尘
    出处:https://www.cnblogs.com/xifengxiaoma/ 
    版权所有,欢迎转载,转载请注明原文作者及出处。

  • 相关阅读:
    SQL注入
    SQL注入
    CSRF
    Docker官方Tomcat映像修改Server.xml
    github+jenkins+maven+docker自动化构建部署
    Docker下的Jenkins
    拿来即用学PYTHON:序
    Python-字典
    Python-列表与元组
    程序员英语轻松学1
  • 原文地址:https://www.cnblogs.com/xifengxiaoma/p/9437416.html
Copyright © 2011-2022 走看看