[苯办法]windows emacs使用vsc补全结果的简易操作(gif动图)

lsp-mode,eglot, manateelazycat的nox都可以实现emacs使用vsc的补全,不过在windows上原生emacs使用这些包时总会遇到些问题,不知道怎么处理,又觉得vsc补全确实不错,两个都想用,于是就把vsc复制,emacs粘贴这个操作简化了一下,感觉属于瞎折腾,发出来给大家乐呵一下
gif演示 1 实现

(defun yas-file-php-emacvs()
  (interactive)
  (insert-file "d:/t/emacvs/emacvs.php")
  (kill-line 1);删除第一行
  (indent-for-tab-command)(next-line)
  (indent-for-tab-command)(next-line)
  (indent-for-tab-command)(next-line);通常最多插入三行
  (previous-line 3);缩进好后回到插入处
  (write-region "<?php #vsc补全结果在emacs中插入\n" nil "d:/t/emacvs/emacvs.php"))

然后vsc打开d:/t/emacvs/emacvs.php 这个文件用vsc补全写好代码,保存(用vsc的自动保存不错),emacs绑定快捷键调用上面个函数即可,我的是C v,也可参照我的快捷键用法

不知道有没有人也这么做过,虽然不是个好办法,但实现简单,如果是EXWM用户(可惜windows不支持)还可以把vsc的窗口调整下也嵌入emacs里面,这样更方便切换,应该更好操作

可以两个编辑器打开一个文件来编辑,Emacs支持auto-revert(监听磁盘上文件变化自动更新buffer),如果VSC也支持,那么这两者可以协同编辑.

1 个赞

这个atuo-revert功能确实不错,我在Windows上就是这样干活的 :grinning:

两个编辑器打开一个文件还好,但我emacs buffer通常是50+以上,两个编辑器都打开有点麻烦了,我vsc通常只会打开几个文件,用于emacs的文件在emacs插入之后自动删除第一行以外的内容,vsc始终保持干净