在 Emacs 里面使用 Shell

在 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 变量指定,或者由用户的环境变量 SHELLEMACSSHEL

来指定。通常的写法是

<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>

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部