总算是用WSL的spacemacs给折腾好了,给大家总结一下

就想问问你们windows上的magit卡不卡,比如spacemacs下 spc p f,能等个半分钟, spc g s,也得等等等 。

这个正常啊,windows下git就慢,magit自然也慢

/c/Program\ Files/Sublime\ Merge/smerge.exe . 下个sublime smerge 看看速度怎样,要是smerge不慢的话,就是magit的锅 我现在用的 C:\msys64\usr\bin\git.exe 感觉和mac差不多

smerge 还是可以做backup plan的

wsl下面好很多,基本不卡,和linux比还差那么点意思。

终端下org-mode的一些操作按键有问题,比如C-M-RET,会变成输入字符“u”。很奇妙。

求助:x-window起不来。

现象:emacs -q会在终端里运行,echo $DISPLAY的结果是空白。

调查:.profile/etc/profile里都写了

export DISPLAY=:0
export NO_AT_BRIDGE=1

。xfce4和xorg都装了(装的xorg而非xorg-dev)。MobaXterm的xserver是开启的,在它里面开启一个ubuntu的terminal,echo $DISPLAY是有127.0.0.1:0.0出现的。

……………………

手动在wsl-terminal里面export DISPLAY=:0之后一切都好了,所以是为什么没读到profile的问题……

你试下 xorg-dev,我当时记得就是xorg 有问题,后来才改xorg-dev的。具体我也记不清了,我好久没搞这个了 :rofl:

我的emacs在wsl下乱码,请问有人知道是怎么回事么?

字体从windows导入linux了吗,这个教程里有

多谢!按照教程里的方法,在MobaXterm里显示是正常的,但直接在wsl-terminal里显示就是另外一种乱码,即以/u开头的16进制Unicode乱码,emacs的这个编码问题经常出现,尤其是在spacemacs中,上次我用原始emacs和spacemacs对比sdcv.el的功能,就发现在emacs中显示正常,但在spacemacs中就因为乱码功能失效,迄今都没明白问题出在哪里。一直觉得编码方式是emacs中的一个大坑

你好!

我这边照着你的方式修改了./tools/5-add-open-with-vim-menu.js 的脚本. 将 vim.exe 修改为 emacsclient.exe, 右键过后也出现了 “open with emacs in wsl-terminal” , 但是菜单图标是空的, 而且点击菜单后还要让我选择打开方式. 我修改成默认的vim模式, 是正常的,能在wsl-terminal中用vim打开文件.

这可能是哪儿出了问题呢? wsl中我已经安装了emacs.

你可以到wsl-terminal的项目里看下,有可能是项目代码更新了吧

emacs原来还有内置的输入法。

哈哈,几个借助PowerShell实现的高仿程序

1.在windows下截图(当然是Snipaste)简单编辑后复制到剪贴板,往emacs里粘贴图片文件到当前文件目录下的images里(暂时不会自动插入链接,需要时再动手加),写笔记时截图感觉好用啊,哈哈哈

(defun my-yank-image-from-win-clipboard-through-powershell()
  "to simplify the logic, use c:/Users/Public as temporary directoy, and move it into current directoy"
  (interactive)
  (let* ((powershell "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe")
         (file-name (format-time-string "screenshot_%Y%m%d_%H%M%S.png"))
         ;; (file-path-powershell (concat "c:/Users/\$env:USERNAME/" file-name))
         (file-path-wsl (concat "./images/" file-name))
         )
    ;; (shell-command (concat powershell " -command \"(Get-Clipboard -Format Image).Save(\\\"C:/Users/\\$env:USERNAME/" file-name "\\\")\""))
    (shell-command (concat powershell " -command \"(Get-Clipboard -Format Image).Save(\\\"C:/Users/Public/" file-name "\\\")\""))
    (rename-file (concat "/mnt/c/Users/Public/" file-name) file-path-wsl)
    ))
  1. 接下来,在wsl的emacs中打开win10的文件管理器,看名字就知道,仿的谁… …
(defun xah-open-in-desktop-from-wsl()
  "open desktop by send command from wsl into powershell"
  (interactive)
  (let* ((powershell "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe")
         (directory (replace-regexp-in-string "/mnt/\\([a-zA-Z]\\)" "\\1:" default-directory))
         )
    (shell-command (concat powershell " -command \"start " directory "\""))
    )
  )
  1. 再次高仿,使用win10下的默认程序打开文件
(defun xah-open-in-xternal-app-from-wsl()
  "open desktop by send command from wsl into powershell"
  (interactive)
  (let* ((powershell "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe")
         (directory (replace-regexp-in-string "/mnt/\\([a-zA-Z]\\)" "\\1:" default-directory))
         (-file-list
          (if (string-equal major-mode "dired-mode")
              (dired-get-marked-files)
            (list (buffer-file-name))))
         )
    (shell-command (concat powershell " -command \"start " (replace-regexp-in-string "/mnt/\\([a-zA-Z]\\)" "\\1:" (nth 0 -file-list)) "\""))
    )
  )
6 个赞

看到了国外网友的博客上的一个设置: Launching WSL Programs from a Right Click Windows Menu — Nick Janetakis 。跟上面的知乎专栏的内容功能差不多。

您好,请问一下不直接用Emacs for windows,在msys2里单独安装使用Emacs有什么额外的好处吗?我自己感觉好像在msys里加载慢一些,dotfile加载也有点bug,但是还是看到有人在用,所以请教一下。

听说官方版emacs windows就是msys编译的,那这样两个应该就是一样的,我使用过msys2版,除了home,path路径不一样,也没发现什么区别

用msys2的话,安装其他依赖软件更方便

楼主请问一下,为什么不在shell command里使用shell脚本呢?我看到另一个类似MacOS脚本也是在call-shell-command以后调用了Applescript脚本,不用shell是有什么特殊的考量吗

我也不知道啊,仅是有这个想法后,又刚好知道可以这么实现,就这么干了