概要
之前一直使用 terminal 版本的 emacs, 性能和顯示方面其實也還不錯.
唯一的遺憾在於對圖片和 latex 公式的展示.
terminal 版的 emacs 無法直接顯示圖片和公式的最終效果, 只能導出之后再查看.
鑒於此, 決定更換為使用 GUI 版本的 emacs.
emacs 配置
我的 emacs 是遠程使用的, 本機是 windsows10, emacs 在一個 linux 服務器上(Debian10) 通過 SSH 連接到遠程服務器上使用 emacs.
之前使用的是 terminal 版本的 emacs, 直接使用 putty 連接上去就行了.
但是, 使用 GUI 版本的 emacs 時, 需要 X11 Server 提供服務.
如果使用 putty 的話, 需要本機再安裝一個 X11 Server, 很麻煩. 所以我就改用了 MobaXTerm 這個客戶端.
MobaXTerm 免費版本已經足夠我使用, 它自帶了 X11 Server, 非常方便.
X11 配置
創建 session 的時候, 選擇 X11-forwarding 就行.
輸入法配置
切換到 GUI 版本之后, 最大的問題是不能使用本機的輸入法了.
於是在服務器上安裝了 fcitx 輸入法:
1 sudo apt install fcitx
2 sudo apt install fcitx-pinyin
我使用的是 zsh, 配置 ~/.zshenv 如下:
# fcitx
export GTK_IM_MODULE=xim
export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE=xim
spacemacs 中的配置
我用的是 spacemacs, 如果是 emacs, 配置也差不多
dotspacemacs-configuration-layers
'(
... 省略 ...
(chinese :variables
chinese-enable-fcitx t
chinese-enable-avy-pinyin t)
... 省略 ...
)
(defun dotspacemacs/user-config ()
... 省略 ...
(setq fcitx-active-evil-states '(insert emacs hybrid))
(fcitx-aggressive-setup)
(fcitx-prefix-keys-add "M-m")
(fcitx-prefix-keys-turn-on)
(global-set-key (kbd "C-\\") nil) ; 切換輸入法的快捷鍵, 禁用是為了防止和emacs的快捷鍵沖突)
... 省略 ...
)
fcitx 漢字顯示方塊的問題
整個配置和軟件安裝都非常順利, 只是最后使用的時候發現, 輸入法的候選詞都顯示成方塊,
這個問題調查了至少 3 個小時, 最后的解決方法如下:
首先, 確保 fcitx 使用的字體是系統中已經有的, 通過
fcitx-configtool
找到如下界面, 設置字體:
我設置的是 Hack 字體, 可以根據自己的情況設置.
設置 Hack 字體之后, 我把下載的字體文件放入了系統中.
mv ~/tmp/Hack /usr/share/fonts/truetype
放入字體之后, 下面 2 步非常重要, 我就是因為沒有執行下面 2 步, 導致一直排查不出漢字顯示成方塊的原因.
sudo chmod 755 /usr/share/fonts/truetype/*
sudo fc-cache -fv
總結
使用 GUI 版本的 emacs, 性能上其實差別不是很大, 主要感受如下:
優勢
- 界面更加美觀, 可以顯示之前無法顯示的有些圖標, 字體看上去也更加舒服.
- 圖片和 latex 公式可以直接展示, 不需要導出 html 之后再查看了
- 可以直接和系統的剪貼板共享內容(這個太方便了, 之前是通過鼠標框選來復制, 鼠標右鍵來粘貼, 也就是終端的復制粘貼方式)
劣勢
唯一覺得遺憾的地方是不能使用 windows 的輸入法了, 之前因為是 terminal 模式, 使用的就是 windows 系統自帶的輸入法.