数码资讯
在 Emacs 里面使用 Shell
一、shell mode 介绍 下面介绍另外一种使用方式—— Shell mode。这种方式和大家常用的工作方式最大的一个区别,就是在这里完全没有任何 terminal 的存在。 用户实际上是工作在一个 Emacs 的文本缓冲区里面,并不直接和 Shell 进行交互。一切的命令输入都是写入到这个文本
一、shell mode 介绍
下面介绍另外一种使用方式—— Shell mode。这种方式和大家常用的工作方式最大的一个区别,就是在这里完全没有任何 terminal 的存在。
用户实际上是工作在一个 Emacs 的文本缓冲区里面,并不直接和 Shell 进行交互。一切的命令输入都是写入到这个文本缓冲区当中,
经由 comint.el从缓冲区中读取,然后转交给后台的 Shell 进程。Shell 产生的输出再由 comint.el进行收集,然后写入到
用户所用的这个缓冲区当中来。这个缓冲区在 Emacs 当中叫做 Shell 缓冲区 (Shell buffer)。
二、启动
在 Emacs 当中按下 Meta-x 组合键(或者 Alt-x 组合键),然后输入shell 并回车
Emacs 就会启动一个 Shell 进程并且打开一个与之关联的 Shell 缓冲区。
Shell 缓冲区 的名字通常会是 *shell*。具体启动什么样的 Shell 进程 通过 Emacs
配置文件里的 shell-file-name 变量指定,或者由用户的环境变量 SHELL 或 EMACSSHEL
来指定。通常的写法是
<span > (setq shell-file-name "/bin/bash") </span>
或者
<span > export EMACSSHELL=/usr/bin/zsh </span>
另外如果你希望使用一个支持 ANSI color 的 Shell 进程,那么在你的 Emacs 配置
文件里面加入下面两行,以便在执行 ls – color=auto 命令的时候输出的色彩信息
能够被 Emacs 正确解析。
<span > (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t) (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on t)</span>
三、退出
按下Meta-x 组合键(或者 Alt-x 组合键),然后输入exit 并回车
可以看到上面列出了几个选项,选择 exit-splash-screen 即可退出。
当用户退出 Shell 会话之后,Emacs 并不会删除这个 Shell buffer,而是把它留在那里,等待用户的进一步的处理。
<span > dove@bash-4.1$exit exit Process shell finished </span>
如果用户这个时候再次执行
M-x shell命令,Emacs 会再次复用这个 buffer。
<span > dove@bash-4.1$ dove@bash-4.1$exit exit Process shell finished dove@bash-4.1$ </span>