想把代码块移到另一个文件?vscode 一键移动!

2023 年 9 月,vscode 支持了

一键把一段代码从一个文件移到另一个文件,且同步更新所有引用和 import

话不多说,大家看官网的 GIF,问题我会在后面指出

操作流程

第一步,点击变量,看到灯泡

第二步, 点击灯泡,选择 Move to file

第三步,选择一个文件,比如 hero.model.ts

第四步,查看 git 变化,路径会自动更改,代码也会移到目标文件

第五步,解决问题

  • 查看目标文件里之前是不是 import 过要移动的代码,这里就是 HeroBase,如果有,把 import 删掉。 这应该是个 bug,不过幸好影响范围不那么大,一次操作只有一个文件可能有问题。
  • import 不会自动去重,比如

如果把 bar 移到 b.ts 里,会出现 x 的重复 import

  • 另一个似乎不影响的小问题,要移动的代码下面的注释也没了,移过去的地方也没有。不过如果注释下面还有代码,这个注释就不会动。

实话说,有了这个功能,移动代码,会省事很多,但目前使用还是建议测试下再提交代码!

其他的重构技巧

选中变量名或文件名, F2 重命名,也会自动同步修改所有引用!

如果想先预览下,Shift+Enter

当然,这个是不是真的能替换所有引用,跟你的项目和框架也有些关系。 像 Angular template 上的变量,经常就无法自动更新。

重构里面的其他选项

选中一段代码,右击,点击 重构或 Refactor

你就能看到一堆重构技巧!

尽情享受!

发布原文

相关推荐
We་ct7 分钟前
JS手撕:DOM操作 & 浏览器API高频场景详解
开发语言·前端·javascript·面试·状态模式·操作·考点
小江的记录本13 分钟前
【RocketMQ】RocketMQ核心知识体系全解(5大核心模块:架构模型、事务消息两阶段提交、回查机制、延迟消息、顺序消息)
linux·运维·服务器·前端·后端·架构·rocketmq
三万棵雪松16 分钟前
【Linux 物联网网关主控系统-Web部分(二)】
linux·前端·物联网
We་ct24 分钟前
LeetCode 137. 只出现一次的数字 II:从基础到最优的两种解法详解
前端·数据结构·算法·leetcode·typescript·位运算
星空27 分钟前
前端--A_3--HTML区块_块元素与行内元素
前端·html
如意猴29 分钟前
【前端】001 前端初识——数字世界的门面
前端
不会写DN34 分钟前
Protocol Buffers(.proto)实战入门:Go 生态最常用的接口定义语言
java·前端·golang
小小小米粒39 分钟前
原生 JS:数据和视图「分离」,必须手动同步原生 JS 里,数据是数据,视图是视图,两者完全没关系
前端·javascript·vue.js
摸鱼仙人~42 分钟前
纯前端 Vue 实现共享预览链接方案
前端·javascript·vue.js