大话Emacs Shell Mode:让工作更轻松的技巧

发表于:2012-3-16 09:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:杨博华    来源:51Testing软件测试网采编

分享:

  第三回 甜蜜约会 -- buffer 篇

  上文描述了在 GNU Emacs 里面通过简单的窗口管理优化 Shell 工作的方法,是不是开始对 Shell 从终端里面搬到 Emacs 里面开始有了一点点的心动了呢? 别着急,这还只是个开始,目前你看到的都还只是外表。接下来让我们和 Emacs 来一个甜蜜的约会吧。

  输入

  我在开头的引子部分曾说过,在 Shell mode 中工作的时候,用户实际上接触的是一个文本缓冲区,实际上并没有直接的跟 Shell 进程打任何交道。这也是和通常的终端模式的工作方法的一个非常大的区别。虽然这个区别看起来似乎不是那么显著(那是因为这个 Shell 缓冲区被设计成了看起来很像一个图形终端的样子),但是实际上这点区别将会带来一些不可替代的优势。让我们来先看一个简单的例子:

  让我们在 Shell 提示符前输入这样一行命令

2 : 2037 : 13:04:40 : ~
dove@bash-4.1$ cd /usr/share/emacs
2 : 2038 : 13:05:05 : /usr/share/emacs
dove@bash-4.1$ ls -1
23.1
site-lisp
site-lisp.tar
2 : 2039 : 13:05:09 : /usr/share/emacs
dove@bash-4.1$

  这个时候让我们把光标移动到 23.1 的前面,输入 ls -1加空格,

2 : 2037 : 13:04:40 : ~
dove@bash-4.1$ cd /usr/share/emacs
2 : 2038 : 13:05:05 : /usr/share/emacs
dove@bash-4.1$ ls -1
ls -1 23.1
site-lisp
site-lisp.tar
2 : 2039 : 13:05:09 : /usr/share/emacs
dove@bash-4.1$

  然后回车。接下来就会看到这样的输出结果出现在缓冲区里面。

2 : 2040 : 13:08:55 : /usr/share/emacs
dove@bash-4.1$ ls -1 23.1
etc
leim
lisp
site-lisp
2 : 2041 : 13:09:06 : /usr/share/emacs
dove@bash-4.1$

  这是一件很有意思的事情,因为我们并没有像在终端当中常见的那样在 Shell 提示符的后面进行命令输入,而是在一个看起来非常随意的地方。神奇的是他居然被正确地执行了。事情的真相其实很简单。

  因为现在我们是在一个被称作 Shell 缓冲区的文本缓冲区里面。这就是一个很普通的文本缓冲区,它具有所有其他文本缓冲区所具有的一切特性。你可以在任何时候,任何位置,对这个缓冲区里的任何文本内容进行任何编辑。因为他就是文本。直到某一刻,你在其中一个文本行上面按下了回车,这时 comint.el 就会负责把当前光标所在行的内容提取出来,发送给 Shell 去执行,然后将 Shell 执行的结果以及 一个提示符(这个提示符实际上也是由 Shell 输出给 comint.el 的)以文本的形式添加到这个缓冲区的末尾。

43/4<1234>
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号