标签:emacs

上古编辑器,神的编辑器

win10 将 emacs 添加到任务栏

直接将 emacs pin 到任务栏后,会发现启动 emacs 时弹出黑窗口。

正确的设置方法:右键点任务栏图标,修改快捷方式属性。发现默认启动程序是 emacs.exe ,需要修改为 runemacs.exe 。还可以加添加启动参数,控制 emacs 启动后的大小和位置

D:\emacs\bin\runemacs.exe -fh -g 90x59+600+0

org2blog 无法发布图片问题

升级了某个版本的 orgmode 后,发现 org2blog 无法发布图片了。摸索后,找到解决方法:

修改 org-plus-contrib ox.el , 去掉 file:/// 后面多余的斜杠

(defun org-export-file-uri (filename)
  "Return file URI associated to FILENAME."
  (cond ((string-prefix-p "//" filename) (concat "file:" filename))
  ((not (file-name-absolute-p filename)) filename)
  ((org-file-remote-p filename) (concat "file:/" filename))
  (t
   (let ((fullname (expand-file-name filename)))
     (concat (if (string-prefix-p "/" fullname) "file://" "file://")
       fullname)))))

spacemacs 快速启动方法

一般情况下,spacemacs 启动时要加载 200 多个包,启动时间大约为 10 秒。如果只启动一次,一直开关还行。如果不小心关闭程序,启动次数多了,就难以忍受。

启动时间

图1  启动时间

还好,windows 下的 emacs 支持 server 模式,spacemacs 已经整合了相关的配置。我们需要做的,就是在 .spacemacs 配置文件中,配置这两项:

dotspacemacs-enable-server t
dotspacemacs-persistent-server t

当 emacs 启动过一次后,会驻留在后台。再启动 emacs 时,使用 emacsclient 程序快速启动。可以把这个命令行添加到右键菜单

将下面文件保存为 OpenWithEmacs.reg , 导入注册表

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Emacs]
@="Open with &Emacs"
"Icon"="D:\\emacs\\bin\\emacsclientw.exe,0"

[HKEY_CLASSES_ROOT\*\shell\Emacs\command]
@="D:\\emacs\\bin\\emacsclientw.exe --no-wait -a \"D:\\emacs\\bin\\runemacs.exe\" \"%1\""

还可以定制 listary action,利用 listary 来快速打开文件

listary emacs action

图2  listary emacs action

按键序列

Ctrl Ctrl: 调用 listary 窗口
blog.org: 输入文件名
Ctrl-O: listary 动作
Ctrl-E: emacs client 打开

在 windows 上使用 ag 搜索

安装 chocolately

  • 用管理员登录,打开 cmd.exe ,执行命令

    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

安装 ag

  • 使用 chocolatey 命令行工具

    choco install ag

在 emacs 中使用 ag 搜索

  • 添加目录到 PATH 环境变量

    C:\ProgramData\chocolatey\bin
  • 在 spacemacs 中, SPC s a 是 ag 的操作前缀

emacs 在 ubuntu console 界面下快速启动

后台操作

  • C-z 将 emacs 切换到后台。 evil 模式下为 C-x C-z
  • fg 将最近后台任务切换到前台
  • jobs 查看后台任务列表
  • fg 1 将后台任务 1 切换到前台
  • bg 将任务切换到后台,一般在命令行最后加上 & bg

进程操作

  • ps -e | grep emacs 查看 emacs 进程号
  • kill pid 杀死 emacs 进程

emacs daemon

vim ~/.bashrc
export ALTERNATE_EDITOR=""
alias e="emacsclient -c"