• 程序员基础能力系列(1)——vim快捷键总结



    Vim是一种可配置的文本编辑器。相比于鼠标操作,vim只依赖于键盘。这一特点使得vim收到非常多程序员的青睐。使用vim可以一定程度提高程序员的开发效率,可以说是程序员必备的技能之一了。本文总结了vim的常用快捷键,当然,一部分快捷键进行了调整,并非vim的默认快捷键。

    首先,你需要在vscode中安装vim插件

    Normal模式

    功能快捷键
    光标向上k
    光标向下j
    光标向左h
    光标向右l
    移动到行首(含空格)0
    移动到行首(不含空格)H(代替^)
    移动到行尾(含空格)$
    移动到行尾(不含空格)L(代替g_)
    复制当前行yy
    粘贴p
    删除当前行dd
    删除光标字符x
    删除光标前的字符X
    删除光标字符进入inserts
    删除光标所在行进入insertS
    替换一个字符r
    替换多个字符R
    undou
    redoctrl+r

    Insert模式

    功能快捷键
    进入insert模式(光标前)i
    进入insert模式(光标后)a
    进入insert模式(行首)I
    进入insert模式(行尾)A
    进入insert模式(行前)O
    进入insert模式(行后)o

    vim的语法

    操作+动词

    操作包括:

    功能快捷键
    复制y
    删除d
    删除并进入insert模式c

    动词包括:

    功能快捷键
    移动到下一个单词的开头w
    移动到上一个单词的开头b
    移动到下一个单词的结尾e
    移动到上一个单词的结尾ge

    组合使用:

    功能快捷键
    删除当前的单词bcw
    在单词结尾出添加ea

    可视化模式

    语法:选中+操作

    功能快捷键
    字符v
    V
    ctrl+v
    退出可视化模式esc / ctrl+[
    切换可视区的光标位置o
    跨多行编辑ctrl+v+j/k+A/I
    复制/粘贴可视化区域+ctrl+c/v

    文本对象

    语法:

    1. 操作+(内部/外部)+文本对象
    2. 可视化模式+(内部/外部)+文本对象
    功能快捷键
    内部i
    外部a

    文本对象:

    对象快捷键
    单词w
    ()(/)
    ()b
    [][/]
    {}{/}
    {}块B
    XML标签t
    ‘’
    “”"
    ```
    句子s
    段落p
    删除一个函数参数daa
    修改一个函数参数cia

    移动效率

    功能快捷键
    向下滚动一屏ctrl+f
    向上滚动一屏ctrl+b
    向下滚动一行ctrl+e
    向上滚动一行ctrl+y
    配置(向下滚动5行)shift+j
    配置(向下滚动5行)shift+k
    将当前行置于屏幕中央zz
    跳到文件首gg
    跳到文件尾G
    跳到指定行数行数+gg/G

    搜索

    单行搜索

    功能快捷键
    正向移动到下一个字符所在处f
    反向移动到上一个字符所在处F
    正向移动到下一个字符所在处的前一个字符处t
    反向移动到上一个字符所在处的后一个字符处T
    重复上次的字符查找指令;
    反方向查找上次的字符查找指令,

    使用技巧:
    查询的时候用 f,删除的时候结合 c/d 使用 t

    全局搜索

    功能快捷键
    模糊搜索,向后查/+字符+回车
    模糊搜索,向前查?+字符+回车
    向后查n
    向前查N
    查看搜索历史/+方向键+回车
    精确查找(区分大小写),向下查*
    精确查找(区分大小写),向上查#

    数字和点

    语法:数字+操作+范围 / 操作+数字+范围

    点:重复上一次的修改(增加、删除、修改)

    功能快捷键
    行尾加分号jA; 通过 . 来重复操作
    查找手动替换/+字符+n+cw+新字符 通过 . 来重复操作

    多文件间的跳转

    使用场景:写代码过程中,需要去头部进行引用,可暂时标记当前行,gg回头部加引用后,快速跳转回标记处

    功能快捷键
    单文件行标记m+小写字母
    单文件跳转到指定行'+小写字母
    单文件跳转到指定标记处`+小写字母
    多文件行标记m+大写字母
    多文件跳转到指定行'+大写字母
    多文件跳转到指定标记处`+大写字母
    跳转到变量声明和函数定义/引用gd + jk(上下切换) + l(跳转)
    向前跳转ctrl+o
    向后跳转ctrl+i
    查看跳转记录:jumps

    会被记录的跳转包括:文件间跳转/gg/G/标记跳转/gd///?/n/N

    处理包裹字符串

    功能快捷键
    替换包裹字符cs+当前包裹字符+替换后的包裹字符
    添加包裹字符ys+iw+包裹字符
    删除包裹字符ds+包裹字符
    可视化模式下添加包裹字符S+包裹字符

    替换字符串

    公式:

    :[range]s/{pattern}/{string}/[flags]

    range快捷键
    $到尾部
    %全文
    number,number行范围
    flags快捷键
    g全部替换
    c对话框操作

    pattern:正则表达式

    例如,替换 h1abc 和 h2abc 可以如下操作

    h\dabc 或者 h[12]abc

    可视化模式下 range已经有了,不需要重新输入,其他操作一致

    gb,多选当前字符,键入c,同时编辑

    悬浮显示&大小写&注释

    功能快捷键
    悬浮显示gh
    normal小写gu
    normal大写gU
    可视化小写u
    可视化大写U
    大小写互换~
    单行注释gc
    多行(单词)注释gC

    窗口管理

    功能快捷键
    新建窗口ctrl+w+v
    窗口切换ctrl+w+hjkl/w
    关闭窗口ctrl+w+c
    关闭其他窗口ctrl+w+o

    删除函数

    功能快捷键
    匹配括号%
    基于缩进删函数d+a+I
    基于段落删函数d+a+p

    掌握宏

    功能快捷键
    开始录制宏q+字符(寄存器名称)
    结束录制q
    查看录制好的宏:+reg+空格+字符
    使用宏@+字符(寄存器名称)
    调用最后一次执行的宏@@
    重复执行宏数字+@+字符
    追加宏q+大写的字符
    修改宏“+字符+p(从寄存器中把宏粘贴出来) 修改后,”+字符+yy(复制回寄存器)
  • 相关阅读:
    Minecraft 1.16.5 生化8 模组 1.9版本 1.18版本同步
    手写编程语言-实现运算符重载
    高德地图根据两点的经纬度计算两点之间的距离(修正版)
    windows Python3.5.4 环境安装sqlalchemy出现no attribute ‘sort‘
    正式发布!万应低代码入选中国信通院《2023高质量数字化转型技术解决方案集》
    如何基于 Apache Doris 构建新一代日志分析平台
    案例分享-丢失的请求头
    nmap使用指南
    SQL Server数据类型转换函数cast()和convert()详解
    14:00面试,14:06就出来了,问的问题有点变态。。。
  • 原文地址:https://blog.csdn.net/lyandgh/article/details/128177725