zoukankan      html  css  js  c++  java
  • VI常用命令和按键

    1. 存储及退出文件
    :wq或者:x  存文件,并且退出vi
    ZZ  保存并退出(:x 表示仅在需要时保存,ZZ不需要输入冒号并回车) ZZ = wq
    ZQ  无条件退出
    :e filename 打开文件filename进行编辑[相当于退出当前的并打开另一个文件]
    :e! 放弃修改文件内容,重新载入该文件编辑
    :e 重新载入【类似刷新】
    ctrl+z/fg 暂时挂到后台/跳回编辑页面
    :f 或 Ctrl-g   显示文件名及一些其他信息
    :!command 暂时退出vi并执行shell指令,执行完毕后再回到vi
    :r!command 将命令command的输出结果放到当前行【强大】
    vim -x exam.txt 新编辑的文件加密,会提示输入密码
    :X  文件加密,会提示输入密码
    :map 列出当前已定义的映射(如何定义映射?)
    :jumps 列出关于你曾经跳转过的位置的列表,你最后一个跳转的位置被特别以一个”>”号标记
    :marks 列出自定义的标记,包含VIM内部自定义的标识
    :%!nl  要对包含空行的所有行进行编号(所有行之前插入行号^I)
    :version 显示VIM版本信息,包含特性、编译方式及配置文件目录
    :options 打开一个新窗口, 在该窗口的最开头的注释下面是一个选项列表(do what?)
    :r filename 在光标所在处插入一个文件的内容(read)可加入数字 :nr filename
    :f filename 改变编辑中的文件名(file)相当于复制了一个文件,执行这个命令后,新编辑不会应用于原文件
    gf vim特殊打开文件的方法,打开光标所在处的 word 为名的文件,当然,这个文件要在当前目录内,否则会创建新文件

    2.移动
    (1)单词
    w 光标跳到下个word的第一个字母 [常用]
    W 移到下一个字的开头,忽略标点符号
    b 光标回到上个word的第一个字母
    B 移到前一个字的开头,忽略标点符号 BACK
    e 光标跳到下个word的最后一个字母
    E 移到下一个字的结尾,忽略标点符号 END
    ge 前一个word的词尾
    gE
    (2)行
    n+ 光标下移n行【按上档键 数字shift +】
    n- 光标上移n行
    [[ 文件开始位置——开始行
    ]] 文件结束位置——末尾行
    H  光标移至屏幕顶行    HEAD
    M  移到屏幕的中间行开头 Middle
    L  移到屏幕的最后一行 LAST
    (  光标移至句首
    )  光标移至句尾
    (3)段落
    * 和 #  匹配光标当前所在的单词,移动光标到下(或上)一个匹配单词(*是下一个,#是上一个)
    zf 折叠(需加方向键)
    zo 展开(空格也可以展开)
    (4)屏幕
    Ctrl+u 向文件首翻半屏up
    Ctrl+d 向文件尾翻半屏down
    Ctrl+f 向文件尾翻一屏 forward (fact整屏去两行)
    Ctrl+b 向文件首翻一屏back (fact整屏去两行)
    CTRL-] 跳转到当前光标所在单词对应的主题
    CTRL-O 回到前一个位置
    zz 命令会把当前行置为屏幕正中央(z字取其象形意义模拟一张纸的折叠及变形位置重置)
    zt 命令会把当前行置于屏幕顶端(top)
    zb 命令会把当前行置于屏幕底端(bottom)
    50% 光标定位在文件的中间
    ` 跳转到最近光标定位的位置(只能记忆最近两个位置) 反引号

    3.插入
    I 在当前行首开始插入字符
    A 在光标所在行的最后面开始加字
    s 默认删除光标所在字符,输入内容插入之 = xi
    S 默认删除当前行内容,输入内容作为当前行新内容= dd+o

    4.删除
    (1)字符
    nx 删除由光标位置起始后的n个字符(含光标位置) x =dl(删除当前光标下的字符)
    nX 删除由光标位置起始前的n个字符(含光标位置) X =dh(删除当前光标左边的字符)
    d0 删至行首
    d$ 删至行尾
    dfa 表示删除从当前光标到光标后面的第一个a字符之间的内容
    D 代表d$(删除到行尾的内容)
    C 代表c$(修改到行尾的内容)
    (2)单词
    ndw 删除光标处开始及其后的n-1个字
    ndb 删除光标处开始及其前的n-1个字
    diw 删除当前光标所在的word(不包括空白字符),意为Delete Inner Word 两个符号之间的单词
    daw 删除当前光标所在的word(包括空白字符),意为Delete A Word
    (3) 行
    dG 删除当前行至文件尾的内容
    dgg 删除当前行至文件头的内容
    cw 删除当前字,并进入输入模式 【很好用,快速更改一个单词】 相当于dw+i
    ncw 删除当前字及其后的n-1个字,并进入输入模式\ 修改指定数目的字
    cc 删除当前行,并进入输入模式
    ncc 删除当前行及其后的n-1行,并进入输入模式
    guw 光标下的单词变为小写
    gUw 光标下的单词变为大写
    xp 左右交换光标处两字符的位置
    ga 显示光标下的字符在当前使用的encoding下的内码

    5.复制和黏贴
    (1)复制
    y0 表示拷贝从当前光标到光标所在行首的内容
    y$ 复制从当前位置到行尾
    yfa 表示拷贝从当前光标到光标后面的第一个a字符之间的内容
    yG 复制从所在行到最后一行
    P 复制暂存数据在光标的上一行
    :n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3+1行【n3行的下一行】
    :n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下
    ~ 改变当前光标下字符的大小写
     
    6.查找
    /pattern 从光标开始处向文件尾搜索pattern
    ?pattern 从光标开始处向文件首搜索pattern
    # 向上完整匹配光标下的单词 相当于?word
    * 向下完整匹配光标下的单词 相当于/word
     
    7.替换
    :%s!\s*//.*!!  去掉所有的“//”注释
    :%s!\s*/\*\_.\{-}\*/\s*!!g 去掉所有的“/* */”注释
    :%s= *$== 将所有行尾多余的空格删除(没看懂)
    :g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除


    参考:http://blog.csdn.net/wklken/article/details/7533272

  • 相关阅读:
    logging 用于便捷记录日志且线程安全的模块
    win10安装多个mysql实例
    Windows安装mysql-msi
    webAPI解决跨域问题
    net core通过中间件防御Xss
    导出excel
    DES加密/解密类
    MySQL优化配置
    上传文件到服务器
    HttpWebRequest调用接口
  • 原文地址:https://www.cnblogs.com/xkfz007/p/2496738.html
Copyright © 2011-2022 走看看