• VIM-->基础操作汇总


    插入

            i       在Normal模式按下,在当前光标所选字符之前插入
    I 在Normal模式按下,在当前光标所选行首插入
    a 在Normal模式按下,在当前光标所选字符之后插入
    A 在Normal模式按下,在当前光标所选行尾插入
    o 在Normal模式按下,在当前光标所在行之后插入
    O 在Normal模式按下,在当前光标所在行之前插入

    分隔窗口

    :split

    1、将当前文件进行上下分隔编辑,使用CTRL-w-w进行切换。

    2、若在:split后跟了其他文件名,表示打开指定文件,与当前文件进行上下分隔。

    3、若在split前加数字,代表新分隔窗口的行数占用

    4、将split替换为vsplit既为左右分隔,其他特征一样。

    :close 关闭当前光标所在窗口
    :only 关闭除当前窗口以外的其他窗口
    :new

    1、上下分隔的方式打开一个新窗口并编辑空缓存区

    2、将new替换为vnew则是垂直分隔编辑新缓存

    CTRL-w  

    当进行很多分隔时,为了快速切换,CTRL-w 后面加上方向键就可以快速定位。

    当方向键换为大写字母,则代表移动窗口。

    CRTL-w-h  到左边窗口  CRTL-w-H  向左移动窗口

    CRTL-w-j  到下面窗口   CRTL-w-J  向下移动窗口

    CRTL-w-k  到上面窗口  CRTL-w-K  向上移动窗口

    CRTL-w-l  到右边窗口   CRTL-w-L  向右移动窗口

    CRTL-w-t  到顶部窗口

    CRTL-w-b  到底部窗口

    :qall

    退出所有窗口并退出vim,当有未保存文件,可以用 :wqall 先保存退出,或者用 :qall! 强制退出

    vim -o FileName

    启动vim时使用此指令表示以水平分隔方式打开所有FileName文件,当o为大写,则是垂直分隔

    :all

    :all为后面指定文件水平分隔并编辑,:vall 则为垂直分割

    vimdiff file1 file2

    1、以垂直分割的方式比较两个文件不同,相同位置会自动折叠。在折叠行使用 zo 展开,用 zc 折叠。

    2、经常使用 :diffupdate ,高亮显示两个文件不同

    补全

    CTRL-p 向下查找word补全
    CTRL-n 向上查找word补全
    CTRL-x-f 补全文件名
    CTRL-x-l 补全整行
    CTRL-x-d 补全宏定义
    CTRL-x-i 补全include
    CTRL-x-k 补全来自字典文件的word
    CTRL-x-t 补全来自thesaurus的word
    CTRL-x-j 补全tags
    CTRL-x-v 补全vim命令行

    移动

    w

    光标移动到下一个单词的第一个字母

    w前加数字代表向后移动几个单词

    b

    光标移动到前一个单词的第一个字母

    b前加数字代表向前移动几个单词

    e

    光标移动到下一个单词的最后一个字母

    e前加g代表移动到前一个单词的最后一个字母上

    e/eg前面加数字代表向后/向前第几个单词最后一个字母上

    $

    移动到行尾与[End]按键一样

    可以在前面加数字,代表移动到下n-1行尾

    ^

    移动到第一个非空白字符上

    0

    移动到行首与[Home]按键一样

    f

    f后跟字符代表移动到当前行的字符上

    前面可以加数字,代表移动到第几个字符

    将f大写'F',则为反方向搜索

    使用";"重复,","为反向重复

    t

    与f类似,不过是移动到字符的前一个字符上

    同样可以大写反方向搜索

    使用";"重复,","为反向重复

    %

    1、跳到匹配的括号上去

    2、前面加数字,代表移动到文件百分之多少的位置

    3、在程序中,在#ifdef这类结构上使用,会循环跳转到#else,#endif处

    G

    G前加数字,代表移动到对应行去

    不加数字则到最后一行

    gg为快速跳转到第一行

    CTRL-u

    向上滚动半屏

    CTRL-d

    向下滚动半屏

    CTRL-e

    向上滚动一行

    CTRL-y

    向下滚动一行

    CTRL-f

    向下滚动一屏

    CTRL-b

    向上滚动一屏

    zz

    把当前行置于屏幕中央

    zt

    把当前行置于屏幕顶端

    zb

    把当前行置于屏幕底端

    ``

    将光标定位到跳转之前的位置

    可以将第二个返单号"`"替换为一个字母,这个字母代表mark

    mark使用如下:

    1、在当前处使用m+字母标记,比如"ma"

    2、在其他位置跳转回标记处,比如"`a"

    3、也可以使用单引号,比如"'a",代表跳转到mark行首

    4、使用:marks 查看已经有的标记

    默认存在以下标记:

     '      此次跳转之前的起跳点

    "      上次编辑该文件时光标最后位置

    [       最后一次修改的起始位置

    ]       最后一次修改的结束位置

    [#

    在#if-#endif结构中是,使用"[#"跳转到#if,使用"]#"跳转到#else或#endif

    [[

    移动到上一个代码块首

    []则为移动到上一个代码块尾

    ]]

    移动到下一个代码块首

    ][则为移动到下一个代码块尾

    [/

    跳转到注释/**/首

    ]/则为跳转到注释尾

    折行

    zf 创建折行
    zo 打开当前折行
    zc 关闭当前折行
    set foldmethd=syntax 基于缩进或语法进行代码折叠
    set nofoldenable 启动vim时取消折叠

    复制

    nyy 赋值包括当前行在内的n行,当n=1时,可以忽略
    byw 复制当前光标下的单词,“b”是为了回到单词首

    替换

    格式如下:

    :[range]s/from/to/[flags]
    #将from替换为to

     range:指定替换范围

    %:替换所有行的第一次发现的目标

    空:仅替换当前行的第一次发现的目标

    n,m:替换n到m行

    n:替换第n行

    `a,`b:从标记a到标记b的范围

    `<,`>:visual模式选择的范围

    flags:指定替换规则

    g:替换一行的发现的所有目标

    p:列出被替换的行

    c:替换前需要用户确认

    查找 

    本文件查找:

    在normal模式下,移动到需要查到的字符串,按下[SHIFT]+[*]即可自动捕捉,但这仅仅对于单词而言。

    如果要跨单词,需要使用传统的"/"命令输入方式

    匹配操作

    ci/a+符号 对配对符号内的内容更改,当i为a时,连同符号一起操作
    di/a+符号 对配对符号内的内容删除,当i为a时,连同符号一起操作
    yi/a+符号 对配对符号内的内容复制,当i为a时,连同符号一起操作
    vi/a+符号 对配对符号内的内容选中,当i为a时,连同符号一起操作

    大小写转换

    gu+符号 将符号指定区域大写转小写,符号即为:w,0,$等等
    gU+符号 将符号指定区域小写转大写
    ~ 将光标下字母大小写替换

    大块操作

    1、多行操作:使用[CTRL]+V选中多行,在选中的第一行进行一般的编辑操作,[ESC]后,操作便复制到其他行。

  • 相关阅读:
    结构层HTML + 表现层CSS
    移动端:项目实战
    移动端:开发技巧
    两个对象数组,把其中相同的name的before相加,不同的对象添加到数组里
    js中遍历数组和遍历对象
    css学习笔记一
    Angular2父子组件数据传递之@ViewChild获取子组件详解
    css知识点总结
    js中的apply,call,arguments,callee,caller详解
    javascript中的排序
  • 原文地址:https://www.cnblogs.com/KcMeterCEC/p/5390245.html
Copyright © 2020-2023  润新知