Linux bash shell 使用键盘复制前几行(不是历史记录)

Linux bash shell 使用键盘复制前几行(不是历史记录)

是否可以使用键盘来选择终端窗口中不在当前编辑行中的某些文本?(例如,为了复制先前命令输出的一部分)。

答案1

据我所知,“三大”终端仿真器都无法做到这一点,但它们都screen提供tmux了可以通过键盘访问的回滚缓冲区。

GNU 屏幕

screenPrefix密钥是Ctrl+A默认的,但所有这些都是可定制的,因此使用默认配置:

  1. 使用 进入复印模式Ctrl+A[

  2. 通过动作移动光标vih,,,,,,,,,,,,,,,,,,,全部有效 (有关键绑定 的更多信息请参阅下文)。​jkl0^$HMLwbe/?gGman screencopy

  3. 开始使用 选择Space,移动,然后Space再次使用 停止选择。这将退出复制模式。

  4. 使用 粘贴选定的文本Ctrl+A]

tmux

tmux行为几乎相同,只是它默认使用一些不同的键:

  1. 使用 进入复印模式Ctrl+B[

  2. 使用PgUp等移动光标PgDown(请参阅man tmux | less -p '^WINDOWS AND PANES'复制模式绑定列表)。

  3. 使用 开始选择Ctrl+Space,移动,然后使用 停止选择Meta+w。这将退出复制模式。

  4. 使用 粘贴选定的文本Ctrl+B]

答案2

取决于你使用的终端。在 shell 模式下emacs

答案3

这不完全是你想要的,但是如果你通过 xclip 重定向输出,你可以从剪贴板中提取它并进行编辑。我从来没有想过用它来最大限度地减少键盘的使用。

$ echo "this is the primary buffer" | xclip -selection "primary"
$ cat << EOF > primary.txt
> this is the primary buffer
> EOF

在 gnome-terminal 下,我可以使用 shift-insert 粘贴到此处文件中。从手册页 xclip -selection "clipboard" 执行真正的剪贴板而不是 x 缓冲区。

不过我似乎无法让它与 tee 一起工作......嗯......这很重要。

相关内容