wangz's blog / Tags

Windows Environment

windows-environment-shadow.png

1. Emacs 相关配置

1.1. 使用 Msys2 安装依赖

$ pacman -S --needed base-devel \
  mingw-w64-x86_64-toolchain \
  mingw-w64-x86_64-xpm-nox \
  mingw-w64-x86_64-libtiff \
  mingw-w64-x86_64-giflib \
  mingw-w64-x86_64-libpng \
  mingw-w64-x86_64-libjpeg-turbo \
  mingw-w64-x86_64-librsvg \
  mingw-w64-x86_64-lcms2 \
  mingw-w64-x86_64-jansson \
  mingw-w64-x86_64-libxml2 \
  mingw-w64-x86_64-gnutls \
  mingw-w64-x86_64-zlib \
  mingw-w64-x86_64-harfbuzz

1.2. 编译 Emacs 并安装

笔者写了个脚本,用来编译 Emacs 并安装

#!/usr/bin/env bash

set -e

SCRIPT_PATH="$0"
DIR_PATH="${SCRIPT_PATH%/*}"
EMACS_SRC_DIR="/e/repos/emacs"

cd "$EMACS_SRC_DIR"

./autogen.sh
./configure \
    --without-pop \
    --with-native-compilation \
    --enable-link-time-optimization \
    --with-dbus \
    --with-sound=no

make NATIVE_FULL_AOT=1 -j$(nproc)
make install

# 我统一在一个目录中管理我的所有配置文件,但是 Windows 缺乏对应软链接工具,所以在初始化 Emacs 配置之前,我需要指定真正的配置文件位置
cat <<EOF > "C:/msys64/mingw64/share/emacs/site-lisp/site-start.el"
(setenv "HOME" (concat "C:/msys64/home/" (getenv "USER")))
(setq user-init-file "$DIR_PATH/init.el")
(load user-init-file)
EOF

1.3. 其他设置

1.3.1. 创建快捷方式

  1. 任务栏固定 emacs.exe
  2. 修改属性 (alt + shift + right click),将其中的地址修改为

    C:\msys64\mingw64\bin\emacsclientw.exe -n -c -a ""
    

1.3.2. 禁用 Ctrl-Space

Ctrl-Space 在 Windows 中默认用来切换输入法,但是笔者更习惯使用它来切换选择标记。网上提供了很多方法来对其进行切换,包括使用 AutoHotKey 等软件,但是 Windows 10 中提供设置禁用切换输入法这个功能。

具体方法为:

  1. 在托盘区域的输入法上右键单击。
  2. 进入 设置
  3. 进入 按键 设置
  4. 模式切换 中反选 Ctrl+Space

此时 Windows 就不会拦截该快捷键,可以用于 Emacs 编辑相关的键位绑定中。

1.3.3. 绑定 s-x 启动 Emacs

使用 autoHotKey

LWin & x::
  emacsclient --no-wait -a "" -e "(if (frame-focus-state) (lower-frame) (raise-frame))"
Return
Powered by Org-mode and a fork of org-static-blog