• vi常用命令


    ^        移动到该行第一个非空格的字符处
    w 向前移动一个单词,将符号或标点当作单词处理
    W 向前移动一个单词,不把符号或标点当作单词处理
    b 向后移动一个单词,把符号或标点当作单词处理
    B 向后移动一个单词,不把符号或标点当作单词处理
    0 到行首
    $ 到行尾
    gg 到页首
    G 到页末
    行号+G 跳转到指定行
    Ctrl+g 查询当前行信息和当前文件信息


    CTRL+U 向上滚动半屏
    CTRL+D 向下滚动半屏

    ZZ:退出vi并保存
    ZQ: =:!q

    dw:删除光标之后的单词剩余部分。



    rx:将当前光标下的字符更改为x(x为任意字符)
    ~: 更改当前光标下的字符的大小写

    u: 撤销最后执行的命令
    U: 修正之前对该行的操作
    Ctrl+R:Redo

    / + 字符串:即可在当前文件查找相应的字符串。
    .*[]^%~$ 在Vi中具有特殊含义,若需要查找则应该加上转义字符"/"

    % 查找配对的括号。

    s/old/new/g:替换old为new,若没有g则表示只替换一个。
    若要每个替换都向用户询问则应该用gc选项



    对代码自动格式化 gg=G
    |a|     N  a    在光标后添加文本 (N 次)
    |A|     N  A    在行末添加文本 (N 次)
    |i|     N  i    在光标签插入文本 (N 次) (亦: <Insert>)
    |I|     N  I    在当前行的第一个非空白字符前插入文本 (N 次)
    |gI|    N  gI   在第一栏中插入文本 (N 次)
    |o|     N  o    在当前行下方开始新行,添加文本 (N 次)
    |O|     N  O    在当前行上方开始新行,添加文本 (N 次)



    |:shell| :sh[ell] 开启一个 shell
    |:!| :!{command} 通过一个 shell 执行命令 {command}


    |p| N p 将一个寄存器的内容放置在光标位置后 (N 次)
    |P| N P 将一个寄存器的内容放置在光标位置前 (N 次)
    |]p| N ]p 如 p, 但调整当前行的缩进
    |[p| N [p 如 P, 但调整当前行的缩进
    |gp| N gp 如 p, 但将光标留在新文本之后
    |gP| N gP 如 P, 但将光标留在新文本之后
    v_y vy 将加亮的文本剪切至一个寄存器

    |v| v 开始加亮字符 } 移动光标或使用
    |V| V 开始以行方式加亮文本 } 操作符来影响被
    |CTRL-V| CTRL-V 开始以块方式加亮文本 } 加亮的文本
    |v_d| {visual}d 删除加亮的文本
    |v_~| {visual}~ 翻转高亮文本的大小写
    |v_u| {visual}u 改高亮的文本为小写 (U大 u小)

    |v_aw| N aw 选择 "一个单词"
    |v_iw| N iw 选择 "内含单词"
    |v_aW| N aW 选择 "一个字串"
    |v_iW| N iW 选择 "内含字串"
    |v_as| N as 选择 "一个句子"
    |v_is| N is 选择 "内含句子"
    |v_ap| N ap 选择 "选择一个段落"
    |v_ip| N ip 选择 "内含段落"
    |v_ab| N ab 选择 "一个块" (从 "[(" 至 "])")
    |v_ib| N ib 选择 "内含块" (从 "[(" 到 "])")
    |v_aB| N aB 选择 "一个大块" (从 "[{" 到 "]}")
    |v_iB| N iB 选择 "内含大块" (从 "[{" 到 "]}")




    :map :ma[p] {lhs} {rhs} 在普通及可视模式下将 {rhs} 映射为 {lhs}
    :map! :ma[p]! {lhs} {rhs} 在插入及命令行模式下将 {rhs} 映射为 {lhs}


    |:set| :se[t] 显示所有被改动的选项
    |:set| :se[t] all 显示所有非 termcap 选项
    |:set| :se[t] termcap 显示所有 termcap 选项
    |:set| :se[t] {option}? 显示 {option} 的值
    |:set| :se[t] {option}& 重置 {option} 为其缺省值。

    OPTIONS :
    |'cindent'| |'cin'| 实现 C 程序的缩进
    |'number'| |'nu'| 行前打印行号
    |'smartindent'| |'si'| C 程序智能自动缩进


    |:mkexrc| :mk[exrc][!] [file] 将当前的键盘映射, 缩写, 及设置
    写入文件 [file] (缺省: ".exrc";
    使用 ! 覆盖文件)
    |:mkvimrc| :mkv[imrc][!] [file]
    如 ":mkexrc", 但缺省为 ".vimrc"


    :split 将窗口分割成两部分
    :vsplit {file} 同上,但垂直分割
    和vimdiff一样
    1. Ctrl-w K(把当前窗口移到最上边)
    2. Ctrl-w H(把当前窗口移到最左边)
    3. Ctrl-w J(把当前窗口移到最下边)
    4. Ctrl-w L(把当前窗口移到最右边)

    Ctrl-w, w

    复制vi里的东西:

    在Select或visual模式下按 "*y 这三个键,就把你选择的内容拷到剪贴板里去了,然后<c-v>就可以了

    看16进制:

    :%!xxd

    :%!xxd  -r    回来

    删除掉所有的空行:

    只有一个回车 :g/^$/d
    行中只有一些空格  :g/^/s*$/d

    http://blog.csdn.net/zqy2000zqy/article/details/1137899

  • 相关阅读:
    spring-boot整合freemarker 出现404
    java rmi的基本使用
    spring的Autowired、Resource、Inject的使用
    RabbitMQ topic 交换器
    RabbitMQ direct交换器
    RabbitMQ java 原生代码
    RabbitMQ基本概念
    消息中间件
    设计模式——模板模式
    设计模式——代理模式
  • 原文地址:https://www.cnblogs.com/adodo1/p/4328121.html
Copyright © 2020-2023  润新知