Terminal

如何從過去的終端輸出中導航和複製一些文本?

  • December 21, 2020

問題

很多時候,當我使用時,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)?
  • 如果我想像的方式沒有解決方案:僅使用鍵盤實現相同的方法有哪些?

而且我討厭從鍵盤切換到觸控板/滑鼠。

我也是。

有沒有辦法導航過去命令的終端輸出(沒有滑鼠/觸控板)?

是的,使用GNU Screentmux。例如,在 GNU 螢幕中,您需要按Control-j [進入複製模式並使用 j/k/h/l 鍵在終端中導航。您還可以複製一些文本並粘貼到另一個 GNU 螢幕視窗中,或者將類似的內容添加到 ~/.screenrc 以將選定的文本複製到 X 剪貼板(儘管 X 在 macOS 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 不依賴於終端模擬器。

如果我想像的方式沒有解決方案:僅使用鍵盤實現相同的方法有哪些?

dabbrev-expand在 xterm 中,如 https://unix.stackexchange.com/a/139016/72304所述。這正是你想要的。我不知道 iTerm 中是否有類似的功能。

引用自:https://unix.stackexchange.com/questions/625535