在不使用鼠标的情况下在终端中选择文本

我即将按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,那么您可以通过以下方式复制当前命令:

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

  2. control-K会杀死刚进入的整行。

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

然后您可以control-Y将文本拉回以将文本作为输入插入到shell命令行编辑器中。

请参阅man bash ,然后在出现时,键入/emacs然后输入几个n (下一个),以转到READLINE部分。

我能想到的最接近的是Ctrl + uCtrl + 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"