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

sor*_*ush 6 command-line gnome-terminal zsh shortcuts 22.04

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

这是我已经做过的:

  1. open_terminal_here.sh:
#!/bin/zsh
gnome-terminal --working-directory="$PWD" -- zsh
Run Code Online (Sandbox Code Playgroud)
  1. 然后在中添加这些行~/.zshrc
chmod +x ~/open_terminal_here.sh
Run Code Online (Sandbox Code Playgroud)

然后采购它。它确实在终端中工作(因此命令配置正确),但是当我对它进行按键绑定时,它就不起作用。有什么解决方法吗?

Raf*_*ffa 5

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

也就是说,zsh有一个bindkey内置命令,您可以使用它,例如:

bindkey -s '^E' 'gnome-terminal --working-directory="$PWD" -- zsh\n'
Run Code Online (Sandbox Code Playgroud)

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

同样,bash有一个bind内置命令,您可以使用它,例如:

bindkey -s '^E' 'gnome-terminal --working-directory="$PWD" -- zsh\n'
Run Code Online (Sandbox Code Playgroud)

请注意,这些命令可能会添加到每个 shell 的 rc 文件的末尾,例如分别~/.zshrc用于Zsh 和 Bash,以便每次启动新的交互式~/.bashrcshell时(例如打开新窗口时)自动设置键绑定。gnome-terminal


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