• vim快捷键收藏版


    总述

    附加一篇介绍文哈,关于vim快捷键的介绍。vim和vscode 到底谁更好用,大家争得不可开交,然后我就在vscode里面装了一个vim插件,完美得解决了这个问题,用完之后觉得真香,所以我就整理一份终端命令的快捷键,所以大家赶紧收藏起来吧。

    作者:良知犹存

    转载授权以及围观:欢迎添加微信公众号:羽林君

    一:初识VI/VIM

    刚开始用 VIM 打开文件的时候,需要从宏观的去了解一下 VIM 这个编辑器。

    VIM 有四个模式:

    • 正常模式 (Normal-mode)

    • 插入模式 (Insert-mode)

    • 命令模式 (Command-mode)

    • 可视模式 (Visual-mode)

    正常模式:

    启动vim后默认处于正常模式。不论位于什么模式,按下<Esc>键(有时需要按两下)都会进入正常模式。

    插入模式:

    在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。

    命令模式:

    在正常模式中,按下:(英文冒号)键,会进入命令模式。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。

    常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。

    可视模式:

    在正常模式中按下v, V, <Ctrl>+v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。

    注:vimrc是vim的配置文件,可以修改两个位置,通过修改vimrc改变vim的配置

    1./etc/vim/vimrc

     

    2.~/.vimrc

     

    ~/.vimrc优先级高

    二:命令模式下的快捷操作

    单键操作:

    Y y 拷贝 P p复制

    E e 跳转字符

     

    CTRL + E CTRL +Y

    CTRL+F CTRL+B

     

    CTRL+V 进行复制

    CTRL+N 智能补码

     

    X x删除 S s 删除

    L 屏幕末尾

    H屏幕初始

    / ? 搜索

    N n下一个

    J合并两行

    I 插入模式

    Esc编辑模式和命令模式

    | 行首 键盘上END 行尾

    < >反缩进 缩进

    U u撤销

    O o换行

     

     

    组合按键操作:

    1.全选并复制(区分大小写!!!)

    • 全部删除:

      按esc键后,先按gg(到达顶部),然后dG
    • 全部复制:

      按esc键后,先按gg,然后ggyG
    • 全选高亮显示:

      按esc键后,先按gg,然后ggvG或者ggVG
    • 单行复制:

      按esc键后,然后yy
    • 单行删除:

      按esc键后,然后dd
    • 粘贴:

      按esc键后,然后p

    :vim只能粘贴50行的问题:

    在当前用户主目录(~)编辑~/.vimrc(如果不存在,新建这个文件),添加一行

    :set viminfo='1000,<500

    至于为什么要输入输入’1000,这个其实不重要,最主要的是输入<500,它是设置寄存器保存的行数的,即最大值为500。

     

    ggVG*y

    解释一下上面的命令:

    ggVG ——全选

    *y —— 复制到剪贴板

    gg是光标定位到文件首行

    V是进入可视模式

    G是跳转到文件最后一行

    这个时候你就将文本全选了

    然后使用*y来复制到剪切板上也可以通过配置使用y直接复制到剪切板

     

    注意:这些命令需在输入模式下执行0

    1、set shiftwidth=4(设定自动缩进为4个字符,底行模式下)



    2、gg=G(自动格式化全部代码)



    3、mG=nG(自动格式化第m到第n行)



    4、==(格式化当前行)

    2.跳转行

    比如想跳转到文本的第12行,可以执行如下命令:

     

    1、12gg / 12G



    2、:12



    3、打开文件时输入vim +12 filename

     

    3.高亮方法:

    用vim时,想高亮显示一个单词并查找的方法,将光标移动到所找单词.

    1: shift + "*" 向下查找并高亮显示

    2: shift + "#" 向上查找并高亮显示

    3: "g" + "d" 高亮显示光标所属单词,"n" 查找!

    4.取消高亮的方法:

    使用vim的高亮搜索功能之后,如果不取消的话,代码中就会有像补丁一样的一块一块的高亮。之前用的方法很土,就是找一个再重新搜索一个很少用到的字符,万一不幸,在源码中存在的话,那就换下一个,这样一直换下去。后来觉得这样不行,太low了,网上搜了一下,很简单,在命令状态下直接输入:

    :noh

     

    5.分屏操作:

     

    1>.开启分屏

    1、使用大写的O参数来垂直分屏 vim -On file1 file2 ...



    2、使用小写的o参数来水平分屏 vim -on file1 file2 ...

    2>.关闭分屏

    1.      关闭当前窗口。Ctrl+W c



    2.      关闭当前窗口,如果只剩最后一个了,则退出Vim。Ctrl+W q

    3>.分屏细节

    (1)上下分割当前打开的文件。

    Ctrl+W s
    (2)上下分割,并打开一个新的文件。
    :sp filename
    (3) 左右分割当前打开的文件。
    Ctrl+W v
    (4) 左右分割,并打开一个新的文件。
    :vsp filename

    4>.移动光标

    Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W

    (1)把光标移到右边的屏。

    Ctrl+W l
    (2) 把光标移到左边的屏中。
    Ctrl+W h
    (3)  把光标移到上边的屏中。
    Ctrl+W k
    (4)把光标移到下边的屏中。
    Ctrl+W j
    (5) 把光标移到下一个的屏中。.
    Ctrl+W w

    5>.移动分屏

    这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。

    (1) 向右移动。

    Ctrl+W L
    (2) 向左移动
    Ctrl+W H
    (3) 向上移动
    Ctrl+W K

    (4)向下移动

    Ctrl+W J

     

    6>.屏幕尺寸

    下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用[Ctrl+W <]或是[Ctrl+W >],但这可能需要最新的版本才支持。

    (1) 让所有的屏都有一样的高度。

    Ctrl+W =

    (2) 增加高度。

    Ctrl+W +
    (3)减少高度。
    Ctrl+W -

     

     

    6.跳转实现:

    [+ctrl+i 跳转到函数、变量和#define   用ctrl+o 返回



    [+ctrl+d 跳转到#define处用ctrl+o 返回



    ctrl+i 向前跳到前几次光标位置



    ctrl+o 向后跳到后几次光标位置

    (1)函数体跳转:

    [[



    ]]



    []



    ][



    {}

     

    (2)括号跳转

    小括号的跳转:跳到句子的下头,句子以句号或者空行结束,英文中的句号为 “.”。

     

    (          (左小括号) 移到这个句子的开头



    )         (左小括号) 移到下一个句子的开头

    中括号的跳转:跳到函数的开头或者结尾。

     

    [[         跳往上一个函式的起始大括号



    ]]         跳往下一个函式的起始大括号



    []         跳往上一个函数的结束大括号



    ][         跳往下一个函数的结束大括号

    大括号的跳转:跳到段落的开头,段落以空行划分

    {         (左大括号) 跳到上一段的开头



    }         (右大括号) 跳到下一段的的开头

    三:快捷键高清示意图

    由于发表文章会令图片像素降低,大家可以后台回复vim快捷键获得相应的高清图。

     

     

    img

     

    img

    这就是我分享的vi/vim快捷键,如果大家有什么更好的思路,欢迎分享交流哈。

    ***END*

    推荐阅读

    【1】c++nullptr(空指针常量)、constexpr(常量表达式)

    【2】嵌入式底层开发的软件框架简述 必读
    【3】CPU中的程序是怎么运行起来的
    【4】C++的匿名函数(lambda表达式)
    【5】阶段性文章总结分析

    本公众号全部原创干货已整理成一个目录,公众号后台回复【资源】即可获得

    更多分享,扫码关注我

  • 相关阅读:
    MySQL不支持事务处理的解决方法
    一般是HTTP_ACCEPT这个服务器变量中如果包含如下几个字符串,就可以判断是手机
    传入http请求的UserAgent 根据它判断是手机还是电脑发送过来的请求
    pageHtml.cs
    分享QQ空间js代码
    sql游标模板
    IIS 7.5 配置伪静态-
    C:WindowsSystem32driversetc
    在 IIS7 URLRewriter重写配置
    [ASP.net教程]vs2012创建mvc4项目部署iis所遇到的问题
  • 原文地址:https://www.cnblogs.com/conscience-remain/p/13889171.html
Copyright © 2020-2023  润新知