效率神器: vscode+vim键盘流,效率直升1.5倍

1,955 阅读4分钟

效率神器: vscode+vim键盘流,效率直升1.5倍

自我介绍

大家好,我是 思哲Lee 一名前端开发人员,从业快两年,主要在公司写vue

前言

接触 vscode 快捷键 + vim 操作vscode已经快一年了, 已经可以做到90%的场景脱离鼠标,只用键盘即可快速完成跳转和切换操作,效率上也有了非常大的提升,因此给大家分享一下

介绍

vscode(Visual Studio Code - Code Editing. Redefined) 一款代码编译器,主要活跃于前端,通过插件配置可完成其他端语言编写(如,c,java等)

vim 一款活跃于linux平台的编辑器,用于快速完成文本,光标等操作

高效操作实例

vim_vscode-1

vim操作

这里我将介绍我在开发中常用到的vim操作指令,并将它们分为以下几类 移动,操作,插入 (仅分享我在实战中使用频率较高的操作符)

  • 移动类的包括以下

    h(←) j(↓) k(↑) l(→) 都是一个字符级别操作

    e(下一类字符的结尾) w(下一类字符的开头) b(上一类字符的结尾) 如数字和字符(a-zA-Z是一类) 空格是一类 操作符是一类( - 单独为一类 )

    ^ 移动到光标行的头部,&移动到光标行的尾部,0移动到本行头部

    gg 移动到文件头部 ,G 移动到文件尾部

    ctrl+[ 跳转到上一个空白行位置

    ctrl+] 跳转到下一个空白行位置

  • 操作类的包括以下

    d 删除操作

    c 删除且进入文本编辑状态

    y 复制操作

    v 选中操作

    p 粘贴vim记录的选中内容(ydc进行的操作都会被vim记录)

    u 撤销(一般我喜欢使用ctrl+z ,ctrl+y 进行撤销和恢复)

  • 插入类的包括以下

    a 进入文本编辑状态 光标后移1个字符

    i 进入文本编辑状态 光标前移一个字符

以上就是在开发中常用到的基础vim操作,看起来并不多,下面我将分享它们的组合使用方式

  • 操作符+移动(以下以d为例子,还可以是dcyv,不同的操作前缀字符对应不同操作)

    de 删除下一类连续字符

    ce 删除下一类连续字符 进入编辑文本状态

vim_vscode-3

  • 数字+移动符

    执行n次移动操作,如5j(向下移动5行),通常使用 数字e | w | b | j | k 完成移动操作(用的较少)

vim_vscode-2

  • 操作符+数字+移动符(以下以d为例子,操作符还可以是dcyv,移动符还可以是(hjklcwb),不同的操作前缀字符对应不同操作)

    d5j 删除光标所处位置的向下5行数据

vim_vscode-3

  • 移动到指定行数 数字+gg

    200gg 移动到第200行

vim_vscode-3

  • 操作符+插入符+字符((){}[]<>) 可完成区域指定范围的操作

    vi{ 选中这个区间范围(i为不包含边界,a为包含边界字符)

    vim_vscode-3

vim包装插件

官方版本

image-20240530113606189

cxr包装版本(做了vim的保证增强,引入了快速移动的解决方案,将在下面介绍),作者地址space.bilibili.com/175301983/d…

image-20240530113554249

  • cvim引入了快速移动插件,让我们可以在可视屏幕内即可快速完成光标跳转,十分好用(经常使用)

    使用方法为 f进入查询模式,输入想要查询的子串,此时屏幕上会出现跳转点,输入对应的字符即可完成跳转,如我想要跳转到 273行的data位置,我输入 fdatax(f查询模式,’data’查询子串,x对应的移动点位(不固定为对应的屏幕跳转点字符))即可完成跳转

vim_vscode-3

vscode操作

ctrl+p 工程级别文件搜索

ctrl+f 查询

ctrl+h 替换

ctrl+b 打开/关闭 导航栏

ctrl+shift+[ 折叠代码块

ctrl+shift+] 展开代码块

ctrl+` 打开/关闭 终端

ctrl+shift+` 开启一个新终端

ctrl+数字(1-9) 分配和切换屏幕

ctrl+shift+f 全局搜索

ctrl+shift+h 全局替换

ctrl+f4 关闭当前聚焦文件

vim+vscode高效开发展示

vim_vscode-3

总结

到此本文的分享就结束了,总得来说vim是用来快速完成光标移动和定位的,配合不同的编辑器可以达到不同的预期效果,本篇主要展示了在vscode平台下碰撞的一些效果展示

如果觉得文章对你有用,请有点赞,评论和关注回应我,谢谢

往期精彩文章

react实现简易xiaomi日历 - 掘金 (juejin.cn)

Vue3实现简易typora - 掘金 (juejin.cn)

关于js迭代器的一个面试题 - 掘金 (juejin.cn)