从终端中启动emacs会导致终端无法继续使用(如下图)这时只能再开一个新的Tab,而记得之前使用vim的时候没有这种问题,不知道大神们有什么好的解决方案。
从终端启动emacs,此时这个Tab处于无法使用的状态。 新建一个Tab,启动vim。 vim启动后这个Tab还是可用的,这样就避免了再开一个Tab的麻烦。 去网上找了各大论坛也没有发现和自己一样的问题,不知道诸位是不是也是这样的状况,或者我这只是个特例?emacs &
哇……超简洁的解决方法 厉害了
我改了emacs自带的启动脚本,在最后加了一个&。 他现在长这样
#!/bin/bash
exec /usr/local/Cellar/emacs/26.1_1/Emacs.app/Contents/MacOS/Emacs “$@” &
但是,当我在某个目录下输入 emacs ***.c的时候,emacs会到~目录下寻找.c文件,大神有没有办法让emacs正确的接收参数,找到文件呢? 小白求教
为什么不用 /usr/local/bin/emacs
这两个是一样的啊…… 就是个连接而已,都连接到/usr/local/Cellar/emacs/26.1_1/bin/emacs
你换成 /usr/local/bin/emacs
就会知道为什么不一样了
刚才说错了,我现在emacs就是绑到了/usr/local/bin/emacs
……
那么,为什么需要 exec 呢
这个是那个脚本文件里的内容啊
就是/usr/local/bin/emacs
连接到了/usr/local/Cellar/emacs/26.1_1/bin/emacs
而,这个文件的内容就是我上面写的那个……
启动脚本干嘛改它,自己写个
#!bin/sh
emacs "$@" &
放 PATH 里就行了
这样跟我的那个是一样的啊…… 而且这样写会导致找不到emacs…… 会导致文件路径有问题……
试过了?没试过?
试过了,找不到emacs……
把脚本中最后的&去掉再手动在emacs ***.c后面加上&就可以正常找到文件。但是再通过修改脚本的方法就不行……
不知道发生了啥……
脚本中把 exec
去掉试试,怀疑这个过程中改了 PWD
这个环境变量。
另外为何不直接从图标启动呢?
发现$@会直接被展开成/Users/……
的形式直接判断一下用户有没有自己写路径就解决了。
原来的脚本无法处理多参数的情况,现在处理一下
现在启动脚本长这个样子
#!/bin/bash
args=
for arg in $@
do
if [ ${arg:0:1} == / ] || [ ${arg:0:1} == - ]
then
if [ $args ]
then
args="$args $arg"
else
args="$arg"
fi
else
if [ $args ]
then
args="$args `pwd -P`/$arg"
else
args="`pwd -P`/$arg"
fi
fi
done
if [ $args ]
then
exec /usr/local/Cellar/emacs/26.1_1/Emacs.app/Contents/MacOS/Emacs "$args" &
else
exec /usr/local/Cellar/emacs/26.1_1/Emacs.app/Contents/MacOS/Emacs "$@" &
fi
从图标启动还要点一下…… 而且,我习惯编辑完一个文件直接关emacs,下次要编辑的时候直接从终端再打开…… 所以每次都点图标的话会很不舒服……
感觉用alias会更方便一点