是否可以使用键盘来选择终端窗口中不在当前编辑行中的某些文本?(例如,为了复制先前命令输出的一部分)。
答案1
据我所知,“三大”终端仿真器都无法做到这一点,但它们都screen
提供tmux
了可以通过键盘访问的回滚缓冲区。
GNU 屏幕
screen
的Prefix密钥是Ctrl+A默认的,但所有这些都是可定制的,因此使用默认配置:
使用 进入复印模式Ctrl+A[。
通过动作移动光标
vi
:h,,,,,,,,,,,,,,,,,,,全部有效 (有关键绑定 的更多信息请参阅下文)。jkl0^$HMLwbe/?gGman screen
copy
开始使用 选择Space,移动,然后Space再次使用 停止选择。这将退出复制模式。
使用 粘贴选定的文本Ctrl+A]。
tmux
tmux
行为几乎相同,只是它默认使用一些不同的键:
使用 进入复印模式Ctrl+B[。
使用←、↓、↑、→、PgUp等移动光标PgDown(请参阅
man tmux | less -p '^WINDOWS AND PANES'
复制模式绑定列表)。使用 开始选择Ctrl+Space,移动,然后使用 停止选择Meta+w。这将退出复制模式。
使用 粘贴选定的文本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 一起工作......嗯......这很重要。