Mac OS X 中 Emacs.app 的命令行启动以及调试模式的开启

http://easior.is-programmer.com/posts/43547.html


Mac OS X 中自带 emacs 与 vi 等编辑器,不过这些编辑器只是命令行模式的。换而言之,只能在打开 Terminal.app 等终端应用之后,输入命令行才能用。例如开启 emacs,在由 Terminal.app 提供终端中输入

?
1
$ emacs

启动的 Emacs 也只是以文本模式运行在终端环境中。但是对于习惯图形化操作的用户来说,必然会从例如 http://emacsformacosx.com 等网站下载安装 Emacs for Mac OS X 之类的图形化 Emacs,这些应用一般会提供一个名为 Emacs.app 的程序文件,只需要将该文件拖入 /Applications 文件夹即可完成安装。打开它们的办法如同打开 Terminal.app 一样,只需在 Launchpad 中点击 Emacs.app 对应的图标。 那么如何在命令行中开启图形化的 Emacs 呢?这就需要用到 Mac OS X 提供的命令行 open 了。更准确地说,若要在终端打开由 Emacs.app 提供的图形化 Emacs,可执行

?
1
$ open -a /Applications/Emacs .app

它本质上与

?
1
$ /Applications/Emacs .app /Contents/MacOS/Emacs

是一样的。此种方式打开的 Emacs 与在 Launchpad 中点击应用图标别无二致。另外,命令行 open 还能传递一些参数到 Emacs.app,例如很多时候,Emacs 的配置文件有问题,需要调试,通常需要将参数 --debug-init 传给 Emacs,若直接在终端执行

?
1
$ emacs --debug-init

恐怕启动的并非是我们需要的 Emacs.app。为此,可执行

?
1
$ open -a /Applications/Emacs .app --args --debug-init

当然,若不嫌弃繁复的命令,也可

?
1
$ /Applications/Emacs .app /Contents/MacOS/Emacs --debug-init

其实,open 还有更多的功能,例如,还想多打开一个图形化 Emacs 实例,可执行

?
1
$ open -n /Applications/Emacs .app

为了免去命令行中每次输入那么多参数才能启动图形化 Emacs 的麻烦,建立 alias 是一个方法,例如

?
1
$ echo alias emacs= 'open -a /Applications/Emacs.app "$@"' >> ~/.bashrc

但是缺点也是显而易见的。下面介绍另一种图形化 Emacs 的打开方法,能够弥补 alias 的不足。先在家目录下建一个可执行文件目录,例如 ~/.local/bin,然后做一个 Bash 封装脚本:

?
1
2
3
4
5
6
$ mkdir -p ~/. local /bin
$ echo " #!/bin/bash
exec /Applications/Emacs .app /Contents/MacOS/Emacs $*" > ~/. local /bin/emacs
$ echo " #!/bin/bash
exec /Applications/Emacs .app /Contents/MacOS/bin/emacsclient --alternative-editor= '' $*" > ~/. local /bin/emacsclient
$ chmod +x ~/. local /bin/emacs {,client}

由于启动的是图形化程序,需要将 ~/.local/bin 路径加至 PATH 变量以及 ~/.MacOSX/enviroment.plist,例如

?
1
2
3
4
5
6
7
8
9
10
11
12
$ cat >> ~/.bash_profile << EOF
export PATH=~/. local /bin :$PATH
 
## Enviroment Variables for GUI Apps
if [ ! -e $HOME/.MacOSX /environment .plist ]; then
     if [ ! -d $HOME/.MacOSX ]; then
         mkdir -p $HOME/.MacOSX
     fi
     touch $HOME/.MacOSX /environment .plist
fi
defaults write $HOME/.MacOSX /environment .plist PATH "$PATH"
EOF

这样便实现了 Emacs.app 替代 Mac OS X 自带命令行 emacs,也能在其他应用中直接调用 Emacs.app。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值