Visual Studio 2017模板字面量换行光标跳转异常求助
这问题我之前帮同事排查过类似的,VS2017对ES6模板字面量的编辑器支持确实存在一些老版本bug,给你几个可行的解决思路:
更新VS2017到最新可用版本
VS2017的早期版本对ES6语法的编辑器交互支持不完善,尤其是模板字符串的光标定位逻辑,微软后续在补丁中修复过这类问题。你可以通过菜单栏的工具 > 获取工具和功能,检查并安装所有可用的更新包,把IDE升级到15.9.x版本(VS2017的最终稳定更新版本)。重置或修复VS编辑器设置
有时候编辑器的配置文件损坏会引发奇怪的光标行为,试试这两步:- 菜单栏选择
工具 > 导入和导出设置 > 重置所有设置,可选择先备份当前设置再重置,完成后重启VS测试。 - 如果重置无效,打开Visual Studio Installer,找到已安装的VS2017,点击
修改 > 修复,修复过程会自动替换损坏的IDE文件。
- 菜单栏选择
排查第三方扩展冲突
第三方代码格式化、语法高亮类的扩展可能和VS原生编辑器内核冲突,导致光标异常。你可以:
按住Ctrl+Shift+P打开命令面板,输入Disable All Installed Extensions禁用所有扩展,重启VS后测试模板字符串的换行行为。如果问题消失,再逐个启用扩展,定位到冲突的插件并卸载。切换到TypeScript驱动的JavaScript语言服务
VS2017提供了两种JavaScript语言服务,旧的默认服务对ES6+语法支持有限:
打开工具 > 选项 > 文本编辑器 > JavaScript/TypeScript > 语言服务,勾选使用TypeScript语言服务处理JavaScript文件,确定后重启VS。这个新服务对模板字面量这类ES6语法的处理更稳定。临时替代方案(紧急场景)
如果上面的方法暂时没生效,急需写代码的话,可以先用字符串拼接替代模板字面量,比如:var foo = ' a b ' + '<- here for example c ';等编辑器问题解决后再换回模板字面量写法。
内容的提问来源于stack exchange,提问作者ʞᴉɯ

