如何从过去的终端输出中导航和复制一些文本?

如何从过去的终端输出中导航和复制一些文本?

问题

我经常在工作时git需要从最后一个命令的输出中复制一些内容。我讨厌从键盘切换到触控板/鼠标。

情况1

...
➜  extract_ttc git:(feature/simplify-gha-workflows) git push
fatal: The current branch feature/simplify-gha-workflows has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin feature/simplify-gha-workflows

我需要git push --set-upstream origin feature/simplify-gha-workflows手动复制才能执行,所以我从键盘切换到鼠标/触控板

案例#2

...
➜  extract_ttc git:(feature/simplify-gha-workflows) git push --set-upstream origin feature/simplify-gha-workflows
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 16 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 1.16 KiB | 1.16 MiB/s, done.
Total 6 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'feature/simplify-gha-workflows' on GitHub by visiting:
remote:      https://github.com/fontist/extract_ttc/pull/new/feature/simplify-gha-workflows
remote:
To github.com:fontist/extract_ttc.git
 * [new branch]      feature/simplify-gha-workflows -> feature/simplify-gha-workflows
Branch 'feature/simplify-gha-workflows' set up to track remote branch 'feature/simplify-gha-workflows' from 'origin'.

我需要https://github.com/fontist/extract_ttc/pull/new/feature/simplify-gha-workflows再次复制才能执行open

问题

  • 有没有办法导航过去命令的终端输出(无需鼠标/触控板)?
  • 是否有一些不依赖于终端应用程序的方法(例如我在 OSX 上使用 iTerm)?
  • 如果没有按照我想象的方式解决方案:有哪些可能的方法可以仅使用键盘实现相同的目的?

答案1

我讨厌从键盘切换到触控板/鼠标。

我也是。

有没有办法导航过去命令的终端输出(无需鼠标/触控板)?

是的,使用GNU 屏幕或者 多路复用器。例如,在 GNU 屏幕中,您需要按Control-j [进入复制模式并使用 j/k/h/l 键在终端中导航。您还可以复制一些文本并粘贴到另一个 GNU 屏幕窗口中,或者将类似的内容添加到 ~/.screenrc 以将所选文本复制到 X 剪贴板(尽管 macOS 上不再使用 X AFAIK):

bind b eval writebuf 'exec /bin/sh -c " xsel -i < /tmp/screen-exchange"' 'exec /bin/sh -c "killall xsel"'

是否有一些不依赖于终端应用程序的方法(例如我在 OSX 上使用 iTerm)?

GNU screen 和 tmux 不依赖于终端模拟器。

如果没有按照我想象的方式解决方案:有哪些可能的方法可以仅使用键盘实现相同的目的?

达布列夫-展开在 xterm 中,如所述 https://unix.stackexchange.com/a/139016/72304。这样就可以了确切地你想要什么。不知道iTerm中是否有类似的功能。

答案2

韦兹的航站楼, AGPU 加速的跨平台终端仿真器和多路复用器由@wez并实施于,有一个特殊的快速选择模式为了这

快速选择模式允许您快速突出显示与常用复制模式匹配的文本,通过键入一两个字符前缀来选择匹配项并将其复制到剪贴板。

按键QuickSelect分配用于进入快速选择模式;默认情况下它绑定到CTRL- SHIFT- SPACE

WezTerm 快速选择模式演示

相关内容