我想要一个可以在当前目录中打开终端的键盘快捷键。
以下是我已经做的事情:
open_terminal_here.sh
:
#!/bin/zsh
gnome-terminal --working-directory="$PWD" -- zsh
- 然后添加以下几行
~/.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
。