概要

之前一直使用 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, 性能上其实差别不是很大, 主要感受如下:

优势

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

劣势

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

GUI版本的emacs的更多相关文章

  1. Mac下好用的编辑器VIM GUI版本 VimR 推荐

    vim号称是编辑器之神,轮其功能和扩展性的确少有编辑器能比,但是大多数编辑器都有的文件浏览功能它确没有,虽然有些插件可以实现,但用起来都不是很方便,偶然发现了一个GUI版本的VIM,与普通的GUI版本 ...

  2. 四则运算GUI版本功能展现

    对于四则运算的GUI版本实现支持批量出题,由于我的不积极导致教师没找到对应的连接,现在重新补上链接 http://www.cnblogs.com/liquan/p/5978687.html codin ...

  3. 四则运算GUI版本

    要求:用户界面新增支持 Windows GUI,同时保留原有命令行下所有功能.提示: 先测试驱动开发,然后重构代码,以GUI为目标修改"核心"函数,把与GUI/Console相关的 ...

  4. python猜数字GUI版本V0.2

    使用类方式编写猜数字游戏GUI版本. 思路:初始化数字以及初始化wegdits,编写button click event判断代码的函数,每猜一次点击button调用一次该函数,并计算猜的次数.如果猜对 ...

  5. Appium(二):Node.js下载与安装、非GUI版本appium下载与安装、GUI版本appium下载与安装

    1. 下载并安装Node.JS 进入官网:https://nodejs.org/en/. 由于我们是新手嘛,所以肯定是越稳定越好啦,所以选择下载LTS版本. 进入文件下点击文件就进入安装界面了,点击n ...

  6. python猜数字GUI版本V0.1

    非常简单的GUI版猜数字游戏,后面有时间好好研究下 # -*- coding: utf-8 -*-"""Created on Mon Jan 28 16:30:17 20 ...

  7. Segger Real Time Terminal RTT JLINK 客户端软件 GUI 版本

  8. vim终端配色(非gui版本)——Monokai

    啥也别说,先上图. 具体配置: 1. 将molokai.vim文件(下面贴出)放到 ~/.vim/colors 目录下,如没有此文件夹需自行创建. 提示:~ 代表用户主目录,如我的用户名是 akaed ...

  9. Emacs的一些事情(与Vi的争议及使用)

    一年成为Emacs高手(像神一样使用编辑器)推荐文章 http://ftp.gnu.org/gnu/emacs/windows/http://blog.csdn.net/redguardtoo/art ...

随机推荐

  1. 跟着兄弟连系统学习Linux-【day02】

    day02-20200528 p6.vmvare安装与使用         官网下载安装包,个人学习的时候要求不高,所以不用安装最新版本,用不到那么多的功能,保证稳定版本就好了,然后傻瓜式安装.注意安 ...

  2. leetcode刷题-73矩阵置零

    题目 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [  [1,1,1],  [1,0,1],  [1,1,1]]输出: ...

  3. 购书网站前端实现(HTML+CSS+JavaScript)

    购书+阅读静态网页设计与实现 一.主页设计HTML 1.效果展示及实现 2.完整代码 二.主页样式布局CSS 三.空间功能实现Javascript 主要功能 Javascript完整代码: 总结 购书 ...

  4. 看图学习 ArrayBuffers 和 SharedArrayBuffers

    原文地址:A cartoon intro to ArrayBuffers and SharedArrayBuffers 原文作者:Lin Clark 译者:黑黑 校对者:Bob 在上一篇文章中,老司机 ...

  5. jmeter的用途

    1.可以测接口 2.测试连数据库 3.可以进行压测 4.可部署分布式

  6. 原生js实现懒加载并节流

    像淘宝网站等,页面中有着大量图片,一次性全部加载这些图片会使浏览器发送大量请求和造成浪费.采用懒加载技术,即用户浏览到哪儿,就加载该处的图片.这样节省网络资源.提升用户体验.减少服务器压力. 方法1: ...

  7. maximo入门---开发者提要

    1.添加控件 在一个程序设计器里添加控件,控件必须要和这个程序对象(这个程序关联的表)的一个属性绑定 ps maximo挺高级的,比如一个date类型的输入框,会自动给他补上时间控件 2.复制程序 复 ...

  8. Netty之ChannelOption的各种参数

    ChannelOption.SO_BACKLOG, 1024 BACKLOG用于构造服务端套接字ServerSocket对象,标识当服务器请求处理线程全满时,用于临时存放已完成三次握手的请求的队列的最 ...

  9. Powershell编程基础-001-基本语法

    变量的定义:$a="abc"         变量的引用也是echo $a 注释: 1.单行注释:单行注释是在每行的开头键入井号#的注释. #符号右边的所有内容都将被忽略,也可以在 ...

  10. Centos-显示或修改系统时间与日期-date

    date 显示或者修改系统时间与日期,只有超级用户才能用date命令设置和修改时间,普通用户只能显示时间 相关参数 -s 设置设置时间,格式为 Y-m-d H:M:S -d    对日期进行运算, + ...