美文网首页
AIX中的vi常用命令

AIX中的vi常用命令

作者: 烧瓶君 | 来源:发表于2019-10-09 21:52 被阅读0次

    本文适用于AIX系统的vi编辑器,不兼容vim

    测试环境: AIX 7.1

    模式

    vi编辑器包括三种模式:

    • 普通模式:浏览、复制、粘贴、删除
    • 编辑模式:插入、替换
    • 命令模式:搜索、设置、执行命令

    在编辑模式/命令模式下,通过ESC返回普通模式

    文件管理

    命令 功能 模式
    vi 打开vi 普通
    vi file 打开文件 普通
    view file 打开文件(只读) 普通
    :q 退出 命令
    :q! 强制退出(不保存) 命令
    :wq 保存并退出 命令
    :w 保存 命令
    :w file 另存为 命令
    m,n w file m-n行另存为 命令
    :e 重新打开(当前文件) 命令
    :e file 重新打开 命令
    Ctrl-g 显示文件信息 普通

    光标移动

    单元移动

    命令 功能 模式
    h 左移一列 普通
    j 下移一行 普通
    k 上移一行 普通
    l 右移一列 普通

    行内移动

    命令 功能 模式
    (n)h 左移n列 普通
    (n)l 右移n列 普通
    0 行首 普通
    ^ 行首 普通
    $ 行尾 普通

    如,右移20列写作20l

    单词移动

    命令 功能 模式
    w 下一单词词首 普通
    W 下一单词词首(长单词) 普通
    e 下一单词词尾 普通
    E 下一单词词尾(长单词) 普通
    b 上一单词词首 普通
    B 上一单词词首(长单词) 普通

    长单词:以空格(space)、制表符(tab)、回车(enter)作为分隔符
    短单词:包括*()-等均视为分隔符
    例如:if(a > 0) 中,长单词包括if(a>0)3个,短单词包括if(a>0)6个

    跨行移动

    命令 功能 模式
    :0 首行 命令
    G 尾行 普通
    :$ 尾行 命令
    :n 第n行 命令

    屏幕移动

    命令 功能 模式
    ctrl-f 向下一屏 普通
    ctrl-b 向上一屏 普通
    ctrl-u 向下半屏 普通
    ctrl-d 向上半屏 普通

    f=forward,b=backward,u=up,d=down
    %适用于大中小三种括号

    搜索

    命令 功能 模式
    /keyword 搜索关键字 命令
    ?keyword 搜索关键字(逆向) 命令
    n 重复上一次查询 普通
    N 重复上一次查询(逆向) 普通
    %(光标至于括号上) 跳转到反括号 普通

    /+n :正向搜索
    /+N :逆向搜索
    ?+n :逆向搜索
    ?+N :正向搜索

    编辑文本

    插入文本

    命令 功能 模式
    i 光标位置插入 普通->编辑
    I 行首位置插入 普通->编辑
    o 在当前行下插入一行 普通->编辑
    O 在当前行上插入一行 普通->编辑
    a 光标位置后插入 普通->编辑
    A 行尾位置插入 普通->编辑
    $a 行尾位置插入 普通->编辑
    s 删除当前字符并插入 普通->编辑
    S 删除整行并插入 普通->编辑

    替换文本

    命令 功能 模式
    r 替换一个字符 普通->编辑
    nr 替换n个字符 普通->编辑
    R 从光标位置开始替换,直到按ESC 普通->编辑
    cw 修改一个单词 普通->编辑
    cc 修改整行 普通->编辑
    c0 修改行首到光标位置 普通->编辑
    c^ 修改行首到光标位置 普通->编辑
    c$ 修改光标位置到行尾 普通->编辑
    ~ 大小写字母切换 普通

    对于组合命令,可以通过ESC取消

    删除、复制和粘贴

    命令 功能 模式
    x 删除光标所在字符 普通
    nx 删除从光标位置开始的n个字符 普通
    X 删除光标前一字符 普通
    dw 删除一个单词 普通
    dd 删除整行 普通
    ndd 删除n行 普通
    yw 复制一个单词 普通
    yy 复制整行 普通
    nyy 复制n行 普通
    p 粘贴 普通
    P 粘贴(光标上一行) 普通

    杂项

    命令 功能 模式
    J 合并两行 普通
    u 撤销 普通
    ctrl-h 删除字符 编辑
    . 重复最后一次操作 普通

    示例:逐词替换

    步骤 命令 说明
    step1 /str1 搜索单词str1
    step2 cw str2 替换str1为str2
    step3 n 继续查询str1
    step4 . 重复替换操作
    step5 重复step3-4

    输入控制字符

    控制字符指ASCII码中0x01-0x1F区间的不可见字符,主要用于程序控制。
    在编辑模式下,输入:crtl-v,ctrl-控制字符
    例如回车(0x0D)输入:ctrl-v,ctrl-m,在vi中显示为^M

    命令模式

    命令 功能 模式
    m,n !sort 将m-n行排序 命令
    m,n d 将m-n行删除 命令
    m,n s/a/b/g/ 将m-n行中的a替换为b 命令
    • g表示每次匹配均进行替换;无此参数时只替换第一个匹配项
    • 范围为全文件时,行号可以写为1,$或%
    • 被替换词如果包括/,可以使用其他符号代替,如 :m,n s,a,b,g
    • 在行尾追加信息时可以使用 :m,n s/$/b/g
    • 被替换词使用正则表达式匹配
    命令 功能 模式
    :! cmd 执行外部命令 命令
    :set all 查看全部配置项 命令
    :set nu/nonu 显示/取消行号 命令
    :set ic/noic 搜索时忽略/取消忽略大小写 命令
    :set ai/noai 自动缩进/取消自动缩进 命令
    :set list/nolist 显示控制字符/取消显示控制字符 命令

    相关文章

      网友评论

          本文标题:AIX中的vi常用命令

          本文链接:https://www.haomeiwen.com/subject/cyoipctx.html