VS Code 咋扩展?定义新命令

用 VS Code 好几天了,不清楚咋扩展?咋定义命令?必须要写扩展吗?

比如我想写个命令,在行尾插个分号?

比如我想运行 Shell 命令,类似 Emacs 的 M-! 和 M-|,那 VS Code 怎么定义 shell-command 和 shell-command-on-region 命令呢?

比如合并两行?类似 M-^。

比如把选中内容发送到终端执行?

比如交换2个窗口的文件?

比如用 node 运行当前文件?最好用 Task 吗?

比如 C-h k 怎么实现?

我也想知道 vscode 怎么写插件

我也想知道vsc的自定义快捷键能不能调用shell,能不能调用任意自由组合的命令,或者有没有类似emacs的hydra这样的插件

用习惯了Emacs的 C-h k,是用别的编辑器(号称也有大量keybinding的)最不适应的,每次只能打开设置在一大坨快捷键里狂找。

根据这个里面的就可以vs的插件,如果自己用可以生成vsix文件

还是emacs直接拿起来就可以写比较爽

1 个赞

官方推荐用 TypeScript?我还不会,JavaScript 倒是会一点。等下试一试。

上来就写扩展,难道 VS Code 用户都不折腾自己的配置吗?还是所有用户的 VS Code 都差不多?除了外观、快捷键、所安装的插件。

有没有 Emacs 转 VS Code 的经验分享?

vscode用户一般是维护自己的一份json文件,可以用一个插件直接备份,可以配置布局、快捷键、插件等很多东西,比较简单,基本就是增增减减开开关关,ts其实也挺简单的,你会js再去写ts 能很快上手(我是vscode转emacs用户…)

我感觉vscode挺像doom的,大部分用户就简单改改,或者对着api搞搞,但想像emacs那样深入捣鼓就比较麻烦了

也有很多可以配置,C-S-p,然后搜settings,开始可以用UI这个,JSON那个很多东西应该没写,得完全自己搜

我之前是有一些特殊的要求,所以自己写了一个插件的

settings就像是emacs已有的一些可配置的东西,比如设置tab长度之类的,也有一些插件也允许进行配置,这些配置也可以写在settings里面

如果你有一些特殊的需要还找不到插件,这个时候才需要自己写插件

总体来说没emacs灵活

比如说,我自定义一个快捷键,这个快捷键执行的操作是:先保存当前buffer(vsc版的),然后在执行一个shell(并传一些参数如当前文件名),最好这个shell是异步执行不弹出窗口,执行完后在minibuffer(vsc版的)输出一个简短的提示消息,这个需求不知道是不是也属于特殊需求,需要写扩展插件实现,如果能在只写配置文件json的情况下实现那就好了

我觉得可以通过这个去实现

用 Tasks 吧,用 tasks.json,不需要写扩展,有些类似 M-x compile

  • 不知道有没有办法查看按键绑定的命令?类似于 Emacs 的 C-h k
  • 还有命令的代码?find-function-on-key
  • 还有查看命令函数的文档、参数、返回值。C-h f
  • C-k C-s : open keyboard shortcuts
  • Electron 应用很难直接看到裸代码吧
  • 简单的命令函数文档可以这样:把鼠标在快捷键界面某个条目上,有基本说明,详细说明可能要去vscode官方文档网站里找吧