文档章节

GUI版本的emacs

o
 osc_0q9or3wi
发布于 07/01 10:10
字数 813
阅读 17
收藏 0

精选30+云产品,助力企业轻松上云!>>>

概要

之前一直使用 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 就行.
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

找到如下界面, 设置字体:
fcitx字体设置

我设置的是 Hack 字体, 可以根据自己的情况设置.
设置 Hack 字体之后, 我把下载的字体文件放入了系统中.

mv ~/tmp/Hack /usr/share/fonts/truetype

放入字体之后, 下面 2 步非常重要, 我就是因为没有执行下面 2 步, 导致一直排查不出汉字显示成方块的原因.

sudo chmod 755 /usr/share/fonts/truetype/*
sudo fc-cache -fv

总结

使用 GUI 版本的 emacs, 性能上其实差别不是很大, 主要感受如下:

优势

  1. 界面更加美观, 可以显示之前无法显示的有些图标, 字体看上去也更加舒服.
  2. 图片和 latex 公式可以直接展示, 不需要导出 html 之后再查看了
  3. 可以直接和系统的剪贴板共享内容(这个太方便了, 之前是通过鼠标框选来复制, 鼠标右键来粘贴, 也就是终端的复制粘贴方式)

劣势

唯一觉得遗憾的地方是不能使用 windows 的输入法了, 之前因为是 terminal 模式, 使用的就是 windows 系统自带的输入法.

o
粉丝 0
博文 50
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

SequoiaDB监控与开发实践分析

使用背景 公司近期上线了一个新应用,底层数据库采用了国产的分布式数据库 – SequoiaDB。 因为需要将 SequoiaDB 集群纳入到公司的整个监控体系中,所以需要对 SequoiaDB 的状态、性能指标等...

巨杉数据库
22分钟前
6
0
如何导入其他Python文件? - How to import other Python files?

问题: How do I import other files in Python? 如何在Python中导入其他文件? How exactly can I import a specific python file like import file.py ? 我究竟该如何导入特定的python文件......

fyin1314
30分钟前
14
0
小程序上传图片 返回的地址出现回车空格问题

不知怎么回事 ,今天写小程序上传图片 之前是没问题的,今天突然出现很多回车空格问题 那怎么办呢,处理呗 //去掉空格str = str.replace(/\ +/g,""); console.log(str);//"{'retmsg':'suc......

子枫Eric
40分钟前
6
0
Spring Boot + Spring Security自定义用户认证

自定义认证过程 自定义认证的过程需要实现Spring Security提供的UserDetailService接口 ,源码如下: public interface UserDetailsService { UserDetails loadUserByUsername(String use...

心田已荒
今天
12
0
DateTime2与SQL Server中的DateTime - DateTime2 vs DateTime in SQL Server

问题: Which one: 哪一个: datetime datetime2 is the recommended way to store date and time in SQL Server 2008+? 是在SQL Server 2008+中存储日期和时间的推荐方法吗? I'm aware of......

富含淀粉
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部