不使用鼠标在终端中选择文本

不使用鼠标在终端中选择文本

我即将按下回车键在终端中运行一个命令,但在执行此操作之前,我想在不使用鼠标的情况下将命令复制到剪贴板。

如何?

如果您在终端以外的其他地方,则Ctrl+Home可以执行此操作。

有没有办法在终端中任意选择这样的文本?

編輯:

  • 假设使用其他程序screen不是一个好的选择
  • 文本要粘贴到终端外面,所以Ctrl+y和类似的序列也不能解决这个问题

答案1

如果你正在使用可以理解 emacs 键的 shell(bash、csh 等),那么你可以通过以下方式复制当前命令:

  1. control-A将带您到队列的开头。

  2. control-K将会删除你刚刚输入的整行。

  3. control-Y将把文本拉回来。

参见man bash,然后当它出现时,输入/emacs后跟几个n's(下一个)即可前进到 READLINE 部分。

答案2

绑定以下快捷方式:

bind '"\C-p": "\C-e\C-u xsel <<"EOF"\n\C-y\nEOF\n\C-y"'

现在使用Crtl+后P,您的行将被复制到剪贴板。您可以使用以下命令将其粘贴到终端中:

xsel

然后使用鼠标中键或Shift+进入任何 X 应用程序Insert

答案3

我能想到的最接近的方法是Ctrl+ u, Ctrl+y
这会从光标处删除到行首的内容,然后从 readline 缓冲区粘贴。虽然这和剪贴板并不完全相同,但是如果您需要的话,您可以在 shell 中粘贴。

答案4

Shift如果你在 vim 中,你可以使用+直观地选择一行或多行 v,然后使用绑定(例如yy)将选择内容传输到剪辑

将绑定添加到你的 vimrc:

vnoremap yy :w !xclip -selection clipboard<CR><CR>

这需要剪辑要安装,它位于 Debian/Ubuntu aptitude 存储库中。

xclip存储标准输入,使用该-selection clipboard选项还可将标准输入推送到系统剪贴板。

因此,您也可以xclip从终端以通用方式使用,例如将整个文件复制到系统剪贴板:

cat myfile | xclip -selection clipboard

如果您还可以选择创建别名,例如:

alias cb="xclip -selection clipboard" 

相关内容