在 ubuntu 22.04 当中安装 emacs :
编译安装
sudo apt install libcairo2-dev libharfbuzz-dev libgtk-3-dev librsvg-2-dev libmagickwand-dev make texinfo libxpm-dev libgif-dev libgnutls28-dev libncurses-dev libwebkit2gtk-4.1-dev
./autogen.sh
./configure –with-x-toolkit=gtk3 –with-mailutils –with-rsvg –with-imagemagick –with-xwidgets –with-gnutls 2>&1|tee configure.log
[Desktop Entry]
Name=Emacs
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=env GTK_IM_MODULE=emacs XMODIFIERS=@im=emacs emacs %F
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupNotify=true
StartupWMClass=Emacs
emacs 启动时增加两个环境变量就可以了:GTK_IM_MODULE=emacs XMODIFIERS=@im=emacs emacs &
配置优化
sudo apt install cmake libtool-bin pass isync gtags fzf meson libmime-3.0-dev libxapian-dev rime-data-pinyin-simp gnome-tweaks
我的配置加的太多了。这次完全是在一个新的电脑上用我的配置: https://gitee.com/allinaent/onlyconfig
优化到可以用就行。
all-the-icons 用的是 git 子模块
没必要。变成普通的版本管理方式。
还有,doom-modeline 没必要使用 all-the-icons 显示 gui 的图标,一点也不好看。也不简洁,所以去掉它。
将我的 mydata/orgmode 日程放到了 github 的私有项目中
github 已经可以免费使用私有仓库,且创建没有数量的限制,可以说一个面向全世界的免费网盘。当然安全性也是不可能保障的。因为微软是美国的企业。但我是一个没什么重要秘密的普通人。也不会把重要的信息上传到自己的日程表当中。
写的都是可以公开的信息。并且初始化的时候增加了判断的条件。
判断条件的增加
(if (file-exists-p "~/.emacs.d/site-lisp/emacs-application-framework/")
(progn
(add-to-list 'load-path "~/.emacs.d/site-lisp/emacs-application-framework/")
(require 'eaf)
)
)
增加一个简单的判断条件非常地简单。
eaf 和 eaf-mindmap 这两个东西是同样的道理。
vterm 使用 CMake
这个倒是不重要,要求提前安装 cmake 和 libtool-bin 这两个包即可。
aweshell 这个目录
同 all-the-icons 类似,这个也从 git module 改成一般的 git 目录。
lsp-python-ms
这个需要安装 anaconda ,这个正好是我要用的,但是要保证,如果没有安装的话,不要加载这个插件,因为 anaconda 这个也是个大包,比较难装。增加 ~/.conda 目录的判断条件。
comany
这个多处用了。还使用 use-package 和 require 两种写法。第一次使用 company-backends 这个变量前,必须先 require 一下。这些问题的出现都是因为自己对 lisp 并不熟悉才出现的。
image-roll 找不到
(latex-preview-pane-enable) ;;不可用于 xelatex,别用这个了
cape.el
版本有关吧,一个函数找不到了。
(keymap-global-set “C-c p e” (cape-interactive-capf #’elisp-completion-at-point)) 这一行去掉。
real-auto-save
这个包注释掉了,这个是需要的,不应该注释掉。
mu 和 mu4e
nix 和 mu 这两个包需要安装。
nix 的安装不要使用包管理器。有这个:
curl –proto ‘=https’ –tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s – install
这个比官方的安装快一些, .bashrc 也需要更新一下。安装完成之后需要:
nix-channel –update 这个时间比较长。
nix-env -iA nixpkgs.mu 这个的时间也比较长。
nix 这个安装时间太长了,这一点比较烦人。
然后又遇到了问题。
sudo mkdir /nix/var/nix/profiles/per-user/uos
sudo touch /nix/var/nix/profiles/per-user/uos/profile.lock
sudo chown -R uos:uos /nix/var/nix/profiles/per-user/uos
mu/mu4e 1.12.1 版本,这个手动更新一下。之前用的是 1.10.6 ,没想到 mu 这个小众的软件更新还是很快的,所以说开源社区的大佬有不少的项目和人是值得期待的。
sudo apt install meson libmime-3.0-dev libxapian-dev
最后发现 mu4e 最适合的是编译安装:https://github.com/emacsmirror/mu4e 将 build 文件夹中产生的 mu4e 的 el 文件存到。
到了现在邮件还是不能用的。还需要安装 pass
后面 gpg –full-generate-key
pass init xxxxxxx(key)
pass add …
dumb-jump
这个包是不用的,直接删掉就好了。
2FA 验证
小米需要搜时间设置:自动设置时间,这个要打开。2FA 的验证是和时间有关系的。如果手机的时间不准确,永远也无法通过 github 的 2FA 验证。现在 github 需要手机登陆了。安全性有了很大的提高。另一个与时间有关的是 v2ray 。
latex 环境的安装
nix-env -iA nixpkgs.texliveFull
gtags 相关
安装 gtags 包就可以了。
bbdb 源文件 bbdb-autoloads.el 不存在
这个问题换了一下,使用 melpa-orig 这个手动重新安装这个包解决了一个小报错。第三方包的问题,原因未知。
输入法相关
系统层面的输入法,还需要加上 /etc/environment 的配置,这样系统的输入法才好用
OSFONTDIR="/usr/share/fonts/:/usr/local/share/fonts/"
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
# SDL_IM_MODULE DEFAULT=fcitx
GLFW_IM_MODULE=ibus
emacs 包使用的 emacs-rime 也需要下载:sudo apt install librime-dev gnome-tweaks
通过 gnome-tweaks 设置 fcitx5 开机自起动。
查找配置文件:
ls -a |grep "^\..*"|grep -vE "^\.\.$|^\.$"|xargs -I{} find {} -name "*.yaml"
这个非常地好。我的五笔反查的配置到底是哪里做的?
rime 五笔的项目在 https://github.com/rime/rime-wubi 当中,这个里面提到了五笔反查的核心包是 pinyin-simp
sudo apt install rime-data-pinyin-simp
关闭四字自动上屏
diff --git a/.local/share/fcitx5/rime/wubi86.schema.yaml b/.local/share/fcitx5/rime/wubi86.schema.yaml
index 6410de4..527f105 100644
--- a/.local/share/fcitx5/rime/wubi86.schema.yaml
+++ b/.local/share/fcitx5/rime/wubi86.schema.yaml
@@ -50,9 +50,9 @@ speller:
delimiter: " ;'"
#max_code_length: 4
- max_code_length: 4 # 最长4码
- auto_select: true # 顶字上屏
- auto_select_unique_candidate: true # 无重码自动上屏
+ #max_code_length: 4 # 最长4码
+ #auto_select: true # 顶字上屏
+ #auto_select_unique_candidate: true # 无重码自动上屏
emacs 不使用系统输入法
Exec=env GTK_IM_MODULE=emacs XMODIFIERS=@im=emacs emacs %F
搜索相关
sudo apt install fzf
去掉 emacsclient 的干扰
sudo mv /usr/share/applications/emacsclient.desktop /usr/share/applications/emacsclient.desktop.bak
sudo update-desktop-database
去除守护进程的影响
systemctl --user list-units
#systemctl --user disable emacs
#systemctl --user stop emacs
systemctl --user disable ljemacs
systemctl --user stop ljemacs
hugo
需要安装来 golang ,这个解压即安装:
.bashrc 中增加 golang 的代理:
export GO111MODULE=on export GOPROXY=https://goproxy.cn
cd ~/INSTALL/ && mkdir hugo && cd hugo
git clone [email protected]:SDLMoe/hugo.git
go build
sudo cp hugo /usr/local/bin/
这样就可以直接 win + em 打开 emacs 了。
shutter
安装 shutter 并设置截图压缩率,为了加快博客的访问速度。
快捷键设置 shutter -s ,但是发现 ubuntu 的 22.04 版本使用的是 wayland 桌面。那么, sudo vim /etc/gdm3/custom.conf ,设置 WaylandEnable=false ,强制使用 wayland 来显示桌面。 sudo systemclt restart gdm3 。X11 还是要比 wayland 的兼容性要更好。
公式图片的包
sudo apt install dvisvgm
sudo apt install dvipng
还有更改 imagemagick 的权限:
sudo vim /etc/ImageMagick-6/policy.xml
<policy domain=“coder” rights=“read|write” pattern=“PDF” />
emacs 和系统相关的修改很多,我也很难完全迁移过来。
查找和全局替换
grep -RiIl 'search' | xargs sed -i 's/search/replace/g'
这个全局搜索和替换的功能非常地好用。以后要牢记。
写在结尾
总的来说我的 emacs 的配置的完全迁移到另外一台机器上是比较花时间的。像邮件这种一定要加一个判断是否安装了相关的软件,没有安装就不必加载。邮件也不是一个很重要的功能。
非博客
并非所有的东西都要写在博客上。如果有一些东西是不想让别人知道的,那么。我新建了一个 mydata 的私有项目托管在 github 的私有仓库里,比如在这个里面写一些考研的东西。摸鱼有风险,上传需谨慎。