ctrl对于 Ubuntu 和 Fedora,如果通过+ alt+打开窗口终端t,则可以通过shift+ ctrl+打开新选项卡t。假设存在一个带有 5 个选项卡的窗口终端。alt如果可能的话,通过+转到其中任何一个#(其中#
可以是 1-5)...
现在,如果 Window 终端有更多选项卡,例如 9,10 ...
问题
- 如何知道当前选项卡是什么?它的数量或位置。
它可以处理以下几种情况:
- 如何知道稍后返回到哪里(假设当前选项卡是8,我们转到3,稍后需要它返回到8)。所以需要知道/得到 8。
- 当前选项卡的下一个/上一个选项卡是什么(假设当前选项卡是 7,需要转到下一个选项卡 8)。所以需要知道/得到 7。
我尝试了该tty
命令,但如果当前选项卡是 5,它会显示/dev/pts/4
. 正如你所看到的N-1
。直到这里可以应用一个简单的数学....有时会显示预期的直接值,例如/dev/pts/5
。我不知道为什么会有这种差异。所以返回的值并不总是准确的。
更重要的是,如果在其他工作区中存在其他带有一些选项卡的Window Terminal,如果执行该tty
命令,会出现一个随机数,它通常是前一个Window Terminal的最高选项卡+ 1的延续。因此,如果第一个窗口终端中的第一个选项卡有 5 个选项卡,第二个窗口终端中的第一个tty
选项卡则显示/dev/pts/5
(N-1) 或 直接/dev/pts/6
。但符合预期/dev/pts/1
,因此如果打开新选项卡,相关性应从 1 开始。
观察考虑是否有任何选项卡被移动(拖放)到其他位置,“命令”应反映新的位置/编号
注意即使这tty
不是正确的命令,什么命令可以实现此目标?
我假设您正在使用
gnome-terminal
,因为这是您在 Gnome 中使用的默认设置,Gnome 是这些平台上的默认桌面环境。(可能是因为你会说如果你使用不同的终端模拟器!)据我所知,没有这样的命令。在选项卡中执行的程序(在您的情况下,主要是 shell)对该选项卡知之甚少。这是不应该的!另外,“选项卡”和“虚拟控制台”(gnome 终端服务器,技术上可以用于在一个、多个或根本没有选项卡中显示某些 ptty)之间有一层间接层,所以,嗯,假设你总是在一个特定的选项卡中,这通常是行不通的。不过,它可能适用于您关心的情况。
您可以做的是使用
$GNOME_TERMINAL_SCREEN
环境变量来获取有关正在运行的终端模拟器会话的信息。它包含一个 dbus 路径,但就“快速”内省告诉我们,我们可以获得打开的选项卡列表,可以在选项卡中执行命令,但仅此而已。因此,除了不存在这样的命令之外,看来您想要的东西是不可能的。
解决您想要实现的目标:
您可以手动设置选项卡的当前标题(右键单击选项卡的标题,“设置标题...”),以便您知道哪个在哪里
但老实说,这一切听起来就像您是一个“高级用户”,使用大量虚拟终端,并且
gnome-terminal
可能不是为您管理所有这些的工具。可以有多个可以一次显示的tmux
所谓窗格,并且您可以有多个包含窗格的窗口(不要与 X11/wayland 意义上的窗口混淆),您可以对它们进行重命名、移动、重新排序、打开、接近……你内心的渴望。所有这一切都发生在单个 gnome-terminal 实例中。tmux
对于来自图形世界的人来说有点令人困惑(我猜,每个人都是 1987 年之后出生的),但它的入门指南实际上还可以,当你从上到下阅读它并且不要试图跳进去时它的中间。您可以做一些聪明的事情,例如“嘿,我记得我正在其中运行一个窗格nvim
,您可以在所有窗口中搜索该窗格吗?”。或许可以尝试一下。安装 tmux,然后
tmux
在 gnome 终端中运行。迎接您的是正常的 shell 和一条奇怪的小状态线。运行
top
以获得持续运行的系统负载监视器。因为我们想记住这是带有系统监视器的窗口,所以我们点击ctrl+ b,然后点击,。注意状态线!现在它要求我们为该窗口起一个新名称。我认为“系统监控”有效。由你决定。好吧,很好,似乎有键盘快捷键。我不记得很多键盘快捷键。所以我更喜欢 tmux 命令界面:按ctrl+ b,然后按:。您现在可以输入命令。我输入split -h
,然后点击Enter(还有tab自动完成功能)。扎克,现在你的窗口中有两个窗格(h
顺便说一下,水平分割)。我想监视磁盘上的可用空间,因此在新窗格中运行watch df -h
。好的。现在我想要一个新的 tmux“窗口”。我记得组合键,ctrl+ bc(
c
如c
reate)。我在其中运行我最喜欢的编辑器(在我的情况下,这将是nvim
,但在你的情况下,它可能是emacs
,,,,,vim
......我不判断。)。 因为我想记住我在这里做了什么,所以我重命名了我的窗口。但这一次,我没有使用键盘快捷键(+ ),而是简单地运行什么的)。vi
nano
ed
ctrlb
tmux rename-window "config edit"
现在,我可以玩这个游戏一段时间,并在我的会话中拥有数百个窗口。状态栏列出了这些,但这真的有帮助吗?当然,使用ctrl+bf我现在可以搜索窗口,在我的编辑器变得缓慢之前,我开始给我奶奶写信,我检查了系统监视器,然后开始编辑一些配置文件......你明白了。
^
dbus-send --session --print-reply --type=method_call --dest=org.gnome.Terminal "$GNOME_TERMINAL_SCREEN" org.freedesktop.DBus.Introspectable.Introspect
²
dbus-send --session --print-reply --type=method_call --dest=org.gnome.Terminal /org/gnome/Terminal/screen org.freedesktop.DBus.Introspectable.Introspect
Konsole
使用环境变量。我不知道其他终端模拟器。看起来您需要使用
SESSION
/WINDOW
元组来标识唯一的窗口,并且session
= 选项卡。考虑
tmux
使用更强大的工具来执行此操作。