从 emacs 打开终端

从 emacs 打开终端

有没有一种快速的方法(键盘快捷键)来打开终端模拟器(在我的例子中是 urxvt)同一目录作为当前 emacs 缓冲区中的文件?

答案1

该组合M-!允许您启动 shell 命令。您可以使用它来启动单独的urxvt.

M-! urxvt RET

我刚刚尝试过xterm(我没有urxvt),它确实在与缓冲区中的文件相同的目录中打开。

如果您想定义快捷方式,请在初始化文件中添加类似的内容:

(global-set-key (kbd "C-c s") (kbd "M-! urxvt RET"))

就我而言,我将快捷方式绑定到:Ctrl+ C- S

答案2

我通常使用M-x term.

您还可以结账:

  • M-x terminal
  • M-x shell

M-x term正在有效地启动一个用 elisp 编写的终端模拟器。来自帮助:

学期
MX ... RET 在新缓冲区中启动终端模拟器。 (术语计划)

term 是“term.el”中的交互式编译 Lisp 函数。

在新缓冲区中启动终端模拟器。缓冲区处于Term模式;看‘术语模式’用于在该缓冲区中使用的命令。

键入 Cc b 切换到另一个缓冲区。

答案3

emacs 命令M-x shell将在新的缓冲区中启动 shell(或者切换到现有的 shell 缓冲区,如果有的话)。如果它是一个新的 shell 缓冲区,它将在当前缓冲区中正在访问的文件的目录中启动。如果它是现有的 shell 缓冲区,它仍然位于您上次使用它后留下的目录中。为了始终获得您想要的行为,请记住在完成后杀死 shell 缓冲区 ( C-x k)

如果M-x shell输入太多,您可以设置一个全局键来为您启动 shell。像(global-set-key (kbd "C-x S") 'shell)你的启动文件中的东西应该可以做到这一点(但要小心不要用你的快捷方式掩盖另一个有用的命令!)

另外,请注意这是一个“哑终端”,因此一些命令(例如git commit需要选项-m和密码)将以纯文本形式显示在屏幕上。

答案4

如果您helm安装了完成框架,则可以用来helm-run-external-command (C-x c C-c C-x)运行您选择的终端模拟器或当前缓冲区目录中的任何其他外部程序。

相关内容