分享 大家好哇! 我的 Emacs 脚本终于发布到 github 了.

zw963 · 2012年04月08日 · 最后由 weikent 回复于 2012年10月11日 · 6437 次阅读

已经发布到 github, 欢迎对 Eamcs 感兴趣的 XD 们下载试用,并提供建议。

最近有点事儿比较忙,一直拖到现在,代码也没整理,暂时没空写帮助,稍后,我会补上详细的使用帮助以及功能。

注意:在 windows 下部分程序需要自己来找客户端,因为较大的缘故,我没有放到 github 上,例如:aspell, w3m, Graphviz 你可以单独向我索要。

使用很简单,直接解压缩到${HOME}下面即可。如果之前使用过 Emacs, 注意事先备份改名你的~/home/.emacs.d 目录。

my-customize-???.el, 是分类的配置脚本,它们被~/.emacs.d/.emacs 调用。而.emacs, 在启动时自动被~/.emacs.d/init.el 调用。注意:我的.emacs 是在~/.emacs.d/目录内,而不是在~/下

Mac 以及 linux 下强烈建议使用 daemon 方式运行。否则也发布不了 Emacs23 的优势不是?而且因为加载的东西太多,每次启动,你肯定受不了... 不过我一天也就是早上开机时启动一次。

建议开机脚本.bashrc 里添加以下内容:

# 这个是自动检测是否有daemon, 有的话, 不再运行.
ps -el |command grep emacs &>/dev/null
if [ "$?" == "1" ]; then
    command emacs --daemon=zw963
fi

# 创建一个别名: 方便启动emacsclient.
alias e=(emacsclient -c "$@"&) &>/dev/null









如果你不用.bashrc(貌似 linux 下这样的人不多吧?), 也可以考虑创建一个 bash wrapper 来实现类似功能

新建一个文件,名字就是一个小写字母 e, 运行 chmod +x e, 使其可执行,并编辑该文件:

#! /bin/bash

# 这个脚本附带了一些通过ssh或telnet连接远程linux主机emacs daemon的配置.
function run_emacsclient () {
    case $TERM in
        "xterm")
            if [ "$DISPLAY" != "" ];then
                (emacsclient -s zw963 -c "$@"&) &>/dev/null
            else
                emacsclient -s zw963 -nw "$@"
            fi
            ;;
        "linux")
            emacsclient -s zw963 -nw "$@"
    esac
}

# 如果指定一个文件名作为参数, 则打开该文件或新建文件, 否则运行dired.
if [ "*$@" == "*" ]; then
    run_emacsclient "."
else
    run_emacsclient "$@"
fi








这样的话,启动时会自动加载 Emacs daemon(Windows 下无效), 需要使用 Emacs 的时候,只需要按下 e 就可以打开了一个新的 emacs frame. (秒开啊~ 只比 Vim 快!!)

下载链接: https://github.com/zw963/alternative-emacs

主席 辛苦啦~ 来碗红烧肉补一下:)

匿名 #2 2012年04月08日

主席,恭贺一下

我写的 emacs-dwim for Linux 和 emacs-dwim.mac 会自动启动 daemon,编辑完成后会切换到之前的窗口。mac 版本还可以通过 Automator 创建个 Emacs Client.app,可以放到 Accounts Login Items 里自动启动,可以作为 File open handler,放在 Dock 上可以把文件拖放到 Emacs Client.app 的 icon 上就会在 Emacs 里打开。

我来看看。。

主席,又把头像改回来了呀~

#1 楼 @skandhas

谢谢支持~~

#3 楼 @doitian

我只是简单的实现,你的那个好完整啊。精彩。

#3 楼 @doitian 嗨~~

你有没有 skype 啊?我有有关 Emacs 的一个问题向你请教呢。

貌似咱社区,就咱俩折腾 Emacs 还多一些。
给个联系方式吧,发到我邮箱吧。[email protected]

匿名 #9 2012年04月10日

#3 楼 @doitian 看过您的配置,非常精彩!

#9 楼 @hbin

是啊~ doitian 的脚本真的很强大哦。第一次见到比我还能折腾 Emacs 的人,而且明显甩我好几条街啊~

话说你的呢?我们的都放出来了,你该不会也是不会用 github 吧。哈哈。

匿名 #11 2012年04月10日

#10 楼 @zw963 er... 我当然也是用 Github 管理了,不过是 Railser 新人,一些 Rails 的配置还在调,之前一直在忙公司离职的事了(搬家、手续好多),整理差不多就马上 upload 上去。

#10 楼 @zw963 长沙网友发来贺电。

匿名 #13 2012年04月11日

#10 楼 @zw963 #3 楼 @doitian 使用 git submodule 管理插件,现在 .emacs.d 文件夹居然有 151M 之巨,而我自己的配置其实不过 104k,请问各位有什么更好的方法组织插件?

#13 楼 @hbin 可以试试 package.el + melpa https://github.com/milkypostman/melpadev,包比较全不过都是 snapshot,可能不够稳定,也可以自己 clone 下来建个自己的 repository

我前段时候写了个命令行下管理用的工具 https://github.com/doitian/eler ,不过目前只支持 elpa packages,打算是能够支持 emacswiki, http, git

我自己的配置也没占那么多,大部分都是 submodule 里的.git,像 org-mode 就是 70M,而且我还是用的 el-get,安装的时候还会再 clone 到 el-get 目录下去,整个安装完有 200 多 M

匿名 #15 2012年04月11日

#14 楼 @doitian melpa 非常感谢! 看来大家的 Emacs 配置都不小。Git 的 submodule 有时候还是不太方便,update 的时候都会把历史也一起 clone 下来,比如 nxhtml-mode 原本只有 2 M 多一点,可是 submodule 下来的却有 38 多!helm 最近更新非常频繁,现在已经 19 M 了!

#13 楼 @hbin

不至于吧。我觉得你可以学习 doitian 的哪种方式,或者你可以参考 emacs-starter-kit 的源码。 他们都是使用 elpa 的 packages.el 来动态安装所需插件的。不过我不知道 Emacs24 的服务器如何,Emacs23 的那个服务区很不稳定,经常稍大点的插件,卡死在那里。

#14 楼 @doitian 我不知道你们说的是什么东西,org-mode, 70M, 有那么大么?压缩包也就是三四兆,解压缩也就是 不到 10 兆,为什么会是 70M ?? #15 楼 @hbin helm 我的确用的太少,没有太多的插件,不过我的只有 4 兆,还是解压缩后,一压缩,就没多少了。

#16 楼 @zw963 因为 git 是分布式的,所以 clone 包含所有 branch 的所有历史信息

@doitian 如何用 automator 创建 emacsclient.app,并放到 dock 中呢。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号