在不使用鼠标的情况下在终端中选择文本
我即将按Enter键在终端中运行命令,但在此之前,我想将命令复制到剪贴板而不使用鼠标。
怎么样?
如果你在终端以外的地方, Ctrl + Home就可以了。
有没有办法随意选择终端中的文字?
编辑:
- 假设使用像
screen
这样的其他程序不是一个好的选择 - 文本将被粘贴到终端之外,因此Ctrl + y和类似的序列也不能解决它
绑定以下快捷方式:
bind '"\Cp": "\Ce\Cu xsel <<"EOF"\n\Cy\nEOF\n\Cy"'
现在使用Crtl + P后,您的线将被复制到剪贴板中。 您可以使用以下方法将其粘贴到终端
xsel
并使用鼠标中键或Shift + Insert进入任何X应用程序。
如果您正在使用其中一个了解emacs密钥(bash,csh等)的shell,那么您可以通过以下方式复制当前命令:
-
control-A
将带您到行的开头。 -
control-K
会杀死刚进入的整行。 -
control-Y
会将文本拉回来。
然后您可以control-Y
将文本拉回以将文本作为输入插入到shell命令行编辑器中。
请参阅man bash
,然后在出现时,键入/emacs
然后输入几个n
(下一个),以转到READLINE部分。
我能想到的最接近的是Ctrl + u , Ctrl + y
这将从光标删除到行的开头,然后从readline缓冲区粘贴。 这与剪贴板不完全相同,但是你可以在shell中粘贴,如果这是你需要的。
有一个叫做屏幕的程序。 它创建了一个文本窗口系统,允许您在多个实例之间切换。 但它也允许您选择文本。
sudo apt-get install screen
该命令安装它。
然后键入screen
您使用ctr-a启动命令序列。 然后按esc键,光标将向任何方向移动。 按enter键开始文本选择,移动到终点,再次按enter键。 那将复制到缓冲区。
然后ctr-a然后}将粘贴
有关其他命令的更多详细信息, 请访问http://www.kuro5hin.org/story/2004/3/9/16838/14935
如果您在vim内部,可以使用Shift + v在视觉上选择一行或多行,然后使用绑定(例如y y)将选择管道传递给xclip 。
将绑定添加到vimrc:
vnoremap yy :w !xclip -selection clipboard
这需要安装xclip ,它位于Debian / Ubuntu aptitude存储库中。
xclip
存储stdin,使用xclip
-selection clipboard
选项,它还将stdin推送到系统剪贴板。
因此,您也可以从终端以通用方式使用xclip
,例如将整个文件复制到系统剪贴板:
cat myfile | xclip -selection clipboard
如果您还可以选择创建别名,例如:
alias cb="xclip -selection clipboard"