如何在Emacs中以术语模式开始命令?

时间:2014-08-11 02:25:36

标签: bash emacs

我在Emacs内的Term: line run模式下运行bash终端。

我经常想要开始一个命令(不是行的开头,包括提示)。 即在下面一行,我想转到s(不是p)。

prompt> some command text here

我是否知道这样做的关键捷径是什么?

1 个答案:

答案 0 :(得分:2)

C-c C-a term-bol)旨在执行此操作。它的工作原理是移动到行的开头,然后跳过提示符,由缓冲区本地term-prompt-regexp变量定义。

然而,该正则表达式的默认值仅为^(因此在这种情况下无效);所以你需要自己设置它。该变量的帮助文本中有一些有用的例子。

一些替代选项是:

  • 改为使用term-char-mode(在这种情况下 C-a 有效)。
    您可以使用 C-c C-k 切换到字符模式,然后使用 C-c C-j 返回行模式。
  • term-line-mode复制 C-a 的相同绑定,以便它在两种模式下都做同样的事情:

    (define-key term-mode-map (kbd "C-a") 'term-send-raw)
    
  • 创建一个执行相同操作的新绑定。 e.g:

    (define-key term-mode-map (kbd "s-a") (lambda () (interactive) (term-send-raw-string (string 1))))
    

    n.b。使用(string 1)因为C-a是ascii值1.请参阅term-send-raw的定义。