在当前目录中打开终端的键盘快捷键?

在当前目录中打开终端的键盘快捷键?

我想要一个可以在当前目录中打开终端的键盘快捷键。

以下是我已经做的事情:

  1. open_terminal_here.sh
#!/bin/zsh
gnome-terminal --working-directory="$PWD" -- zsh
  1. 然后添加以下几行~/.zshrc
chmod +x ~/open_terminal_here.sh

然后将其导入。它在终端中确实有效(因此命令配置正确),但是当我将某些东西绑定到它时,它就不起作用了。有什么解决方法吗?

答案1

PWD是一个 shell 变量,当您cd遍历文件系统层次结构时,它会在任何特定的 shell 实例中动态设置...它需要由同一当前工作目录中的相同 shell 实例扩展才能反映该确切状态...为此,您的快捷键/键绑定需要由该特定正在运行的交互式 shell 处理,而不是由任何其他外部方式(如 DE 快捷键/热键处理程序)处理。

这就是说,zsh有一个bindkey您可以使用的内置命令如下:

bindkey -s '^E' 'gnome-terminal --working-directory="$PWD" -- zsh\n'

... 设置Ctrl+的快捷方式E 1启动一个新gnome-terminal窗口,zsh作为其外壳PWD

同样地,bash有一个bind您可以使用的内置命令如下:

bind -x '"\C-E":gnome-terminal --working-directory="$PWD" -- zsh'

注意这些命令可能会被添加到每个 shell 的 rc 文件的末尾,例如分别为 Zsh 和 Bash 添加~/.zshrc~/.bashrc删除,这样每次输入新命令时都会自动设置键绑定交互的shell 的启动方式就像打开一个新gnome-terminal窗口一样。


1)请注意,某些键绑定已被你的 shell 或它所运行的终端仿真器使用……因此,请检查并确保您不使用其中任何一个,以避免冲突

答案2

以下是一些默认的终端键盘快捷键:

  • Ctrl+ Shift+ T:打开新标签在当前目录中
  • Ctrl+ Shift+ N:打开新窗户在当前目录中

默认情况下,这对gnome-terminal和都有效konsole。无需在中手动添加任何内容~/.zshrc

相关内容