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


68

我将要按Enter在终端中运行命令,但是在此之前,我想不使用鼠标将命令复制到剪贴板。

怎么样?

如果您不在终端机之外,请Ctrl+进行Home操作。

有没有一种方法可以在终端中随意选择文本?

编辑:

  • 假设使用其他类似程序screen不是一个好的选择
  • 文本要粘贴到终端外部,因此Ctrl+ y和类似的序列也不能解决它

1
您的意思是Ctrl-Shift-Home?
机械蜗牛

Shift-Home复制到该行的开头。Ctrl-Shift-Home会复制到页面的开头。
Strapakowsky

Shift-Home和Ctrl-Shift-Home对我来说都一样(跳转到终端的开始),它们似乎都没有复制要由Ctrl-Y或Ctrl-Shift-V粘贴的任何内容(也不选择)。但是它确实可以在文本编辑器中工作,而无需复制,只需选择即可。在Virtual Box中使用OpenSUSE Leap 15。答案中提到的所有其他键绑定均有效。
Brambor

Answers:


16

绑定以下快捷方式:

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

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

xsel

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


我想避免使用鼠标。是否可以使用ctrl + shift + v而不是鼠标中键粘贴它?
MrGigu '16

@MrGigu,这使用其他剪贴板(请参见此处)。您需要使用其他快捷方式。默认情况下,它应该为Shift + Insert(请参阅此处
Nykakin '16

哦,谢谢,shift + insert可以做!不知道您可以使用此命令粘贴。
MrGigu '16

关于这里到底发生了什么的任何解释?
亚历山大

或用于xsel -b使用标准剪贴板,即使用Ctrl + V / Ctrl + Shift + V的剪贴板。还值得注意的是,此方法在多行命令上失败。
wjandrea

27

如果您使用的是能理解emacs密钥的外壳程序之一(bash,csh等),则可以通过以下方式复制当前命令:

  1. control-A 将带您到行首。

  2. control-K 将杀死您刚刚输入的整个行。

  3. control-Y 会将文字拉回。

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

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


我知道,但想粘贴到终端外部。编辑为澄清。
Strapakowsky

3
control-U可以直接从命令末尾截取命令
vstepaniuk '18

1
第二命令改变了我的生活。
克里希纳

10

我能想到的最接近的是Ctrl+ uCtrl+ y
这将从光标删除到行的开头,然后从readline缓冲区粘贴。但是,这与剪贴板并不完全相同,但是如果需要的话,您可以将其粘贴到外壳中。


我知道,但想粘贴到终端外部。编辑为澄清。
Strapakowsky

8

有一个名为screen的程序。它创建了一个文本窗口系统,使您可以在多个实例之间切换。但它也允许您选择文本。

sudo apt-get install screen

该命令将安装它。

然后输入 screen

您可以使用ctr-a启动命令序列。然后按esc,您的光标将向任何方向移动。按Enter键开始选择文本,移至终点,再按一次Enter键。那将复制到缓冲区。

然后按ctr-a然后}将粘贴

有关其他命令的更多详细信息,请参见http://www.kuro5hin.org/story/2004/3/9/16838/14935


很好的建议,但是screen由于不同的原因我不喜欢,所以假设使用常规的Ubuntu终端。编辑了我的问题以进行澄清。
Strapakowsky

1
这应该标记为正确答案恕我直言。
eddiewould '16

2

如果您在vim内部,则可以使用Shift+ 直观地选择一个或多个行, v然后使用绑定,例如yy,将选择内容通过管道传递给xclip

将绑定添加到您的vimrc:

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

这需要安装xclip,它在Debian / Ubuntu aptitude存储库中。

xclip存储标准输入,并带有-selection clipboard将标准输入推送到系统剪贴板的选项。

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

cat myfile | xclip -selection clipboard

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

alias cb="xclip -selection clipboard" 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.