VSCode的F2快捷键失效问题
发布于:(更新于:)
使用 VSCode
进行开发的时候,有时候会遇到 F2
快捷键失效,让人很不爽,以为是哪个app又搞了全局快捷键影响了VSCode快捷键(当然,当你阅读本文的时候真的有可能是某个全局快捷键占用了,这个就需要你自己去排查了~), 关了所有的应用,仅保留VSCode或是重启电脑还是不行。
于是,被逼进行了深入的研究,你也可以根据我的方式进行排查。
- 检查了编辑器快捷键设置是否有过变更,默认是
F2
- 检查是否有第三方应用使用了全局快捷键造成冲突(默认开启全局快捷键的应用的产品设计都是垃圾)
- 检查你当前开发环境,尝试针对不同的代码写法,或者文件进行测试
注意,第三点的操作会需要反复尝试,比如开启一个
js
、ts
或是html
文件进行测试,当然F2
的快捷键定义是Rename Symbol
(因为我用的英文版不知道中文翻译是啥- -) ,所以,理论上选中一个变量,按F2
就应该会自动触发一个修改输入框,进行修改。
而我通过反复的测试,发现问题,VSCode编辑器没有问题,快捷键也没有冲突,在某些文件下可以正常操作,某些不行,例如 *.vue
文件。原因大致是编辑器对JS代码的解析机制来检测变量定义的。然而,vue文件解析我们都是用 Vetur
的,这个暂时无法支持。更多资料我也查了一下,这段摘自Explore TS Plugin support in Vetur by integrating znck/developer-experience's refactor support #2016的描述写的很清楚了:
Vetur currently has limitations that can only be solved by a TS Plugin. For example, rename/refactor in JS/TS files should generate changes across a project's JS/TS/Vue files, but with Vetur's current approach it won't support Vue files, so renaming might create compiler errors.
那么,文中也提到, Vue 3
是支持的,对于Vue 3正式版一下有了更多的期待。至此,VSCode编辑器下F2失效的原因就算整明白了。如果是Vue2的话,暂时小心翼翼的使用 Ctrl/Cmd + d
来操作修改吧~
whidy
一名爱折腾的前端开发工程师,喜欢打篮球和分享 ฅʕ•̫͡•ʔฅ