我即将按下回车键在终端中运行一个命令,但在执行此操作之前,我想在不使用鼠标的情况下将命令复制到剪贴板。
如何?
如果您在终端以外的其他地方,则Ctrl+Home可以执行此操作。
有没有办法在终端中任意选择这样的文本?
編輯:
- 假设使用其他程序
screen
不是一个好的选择 - 文本要粘贴到终端外面,所以Ctrl+y和类似的序列也不能解决这个问题
答案1
如果你正在使用可以理解 emacs 键的 shell(bash、csh 等),那么你可以通过以下方式复制当前命令:
control-A
将带您到队列的开头。control-K
将会删除你刚刚输入的整行。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"