有没有一种快速的方法(键盘快捷键)来打开终端模拟器(在我的例子中是 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)
运行您选择的终端模拟器或当前缓冲区目录中的任何其他外部程序。