怎么在Iterm2, 点击文件, 在emacs打开对应行

说起来, 有点搞笑…几个月前我配置好了…手贱把脚本给清理掉了, 没备份…然后不会配置了…

搞了一晚上的配置… 基本上也能用, 就是当Emacs没启动的时候, 要点好几次才能启动Emacs, 启动后还需要继续点一下… 之前的配置可以直接打开…

#!/bin/bash

# exec &> ~/logfile.txt

# In iTerm2 Session preferences <Advanced> pane setup Semantic History to:
#
# [Run coprocess...]
# ~/dot/item2_open_file_in_emacs.sh +\2 \1

if [[ $1 == "+" ]]; then
    shift
fi

/usr/local/bin/emacsclient -q -n -a "" $1 $2 || open -a /Applications/Emacs.app/Contents/MacOS/Emacs &


虽然不太明白是干什么,但这句话正常的逻辑应该是:

open -a /Applications/Emacs.app/Contents/MacOS/Emacs --deamon && /usr/local/bin/emacsclient -q -n -a "" $1 $2

我试一下你这个方法哈. 谢谢.

这里逻辑有问题:已经用了 -a "" 处理 Emacs Server 没在运行的情况,后面的 open ... 还有机会运行吗?需要留意这两种情况

  • Emacs Server 有没有运行
  • Emacs 有没有运行

不完全等价。emacsclient 用不了不代表 Emacs 没在运行。

这么写的话 --daemon 是传给 open 的,要传给 Emacs,得用个 --args 隔开

open -a Emacs --args --daemon

但是这么做会产生一个没窗口的 Emacs,占用 Dock 和 Command+Tab,非常讨厌。

是挺讨厌的,来来来,看看我的Dock的截图,大约能逼死强迫症小孩 :joy:

(我开了两个server,对应不用的主题,一个亮色用来写latex,一个暗色用来编代码;至于那个spacemacs的图标的,只是用来骚transparent titlebar的而已,是独立app打开的。通常用client,计划写个帖子介绍下怎么搞不同的主题,我觉得还是蛮实用的,暗色写文章不太爽。)

49

哈哈, 偶然间又打开了这个帖子, 目前我的脚本已经进化成这样了.

https://gist.github.com/young40/8813cb05c672f7a06804af2164f2af68