在 gnome-terminal 中制作 Ctrl+C 复制文本?

use*_*686 90 gnome-terminal clipboard

是否有可能对我作出Ctrl+C执行复制命令,如果有高亮文本在终端?
否则,它应该保留其正常行为。

(如果除了 gnome-terminal 之外还有一个可以执行此操作的终端,那也可能没问题。)

enz*_*tib 91

您可以更改键绑定进行剪切,从默认粘贴Ctrl+ Shift+ CCtrl+ Shift+V你说什么,也就是Ctrl+ CCtrl+ V,在修改?键盘快捷键菜单。尽管您还应该更改与Ctrl+ C(中断)关联的默认终端含义,例如以这种方式

stty intr ^J
Run Code Online (Sandbox Code Playgroud)

(我选择Ctrl+J是因为我不记得它是与某些动作相关联的,但是您可以自己做出选择。)

我认为只有在没有突出显示文本时才能保留Ctrl+的默认中断操作C

  • 正如@Pithikos 在 mangoDrunk 的回答中所指出的,将 Copy 快捷方式重新映射到 Ctrl+C 后,您可以使用 Ctrl+Shift+C 进行中断,而无需配置任何其他内容。 (6认同)
  • 我将其设置为 ^Q 因为它通常是“解冻/启动”,很少使用,有害并且更接近 CTRL。如果有人也决定这样做,他们一定不要忘记首先重新映射“start”,例如: stty start ^J (2认同)
  • 我不知道这究竟是如何实现的。但是在终端的想法中,您可以根据上下文使用 Ctrl+C 作为复制和中断。 (2认同)

Dan*_*Dan 41

Ctrl+C已分配给另一个命令,该命令会中断终端中正在运行的程序。例如,ping www.google.com 将开始 ping Google,直到您告诉它停止为止。你这样做的方式是按Ctrl+C

因此,他们不能仅仅改变该组合的分配。

突出显示要复制的文本,按Ctrl+ Shift+ 将C其复制到剪贴板。Ctrl+ Shift+V然后你粘贴它。

如果它不起作用,请告诉我...

  • 与其说这些键绑定在终端中具有其他特定含义,不如说各种控制台应用程序希望能够使用它们可能更正确,因此如果终端模拟器没有将它们传递给它可能会使这些应用程序无法使用. (18认同)
  • OS X is a bit smarter: when some text is selected it interprets `Ctrl+C` as copy and when no text is selected it interprets it as interrupt. (8认同)
  • 实际上,OS X 并不智能。复制键盘快捷键是 Cmd-C,而不是 Ctrl-C。 (6认同)

man*_*unk 40

如前所述,Ctrl+C通常用于中断程序。但是,而不是使用Ctrl+ Shift+C复制,这是我做的机会大大多于中断过程中,我将设置更改为具有Ctrl+C复制和Ctrl+ Shift+ C,以中断。

您可以在 GNOME 终端中执行此操作,方法是转到“编辑”->“键盘快捷键...”并将“复制”操作映射到Ctrl+C并将“粘贴”操作映射到Ctrl+ V。中断命令会自动重新映射到Ctrl+ Shift+ C

  • 它对我来说是自动发生的。我所做的只是将 Copy 设置为 Ctrl+C,保存后,Ctrl+Shift+C 成为中断。 (17认同)
  • @mangoDrunk,原因是按住“Shift + Ctrl + <key>”本质上会打印与“Ctrl + <key>”相同的字符。您可以使用“read”进行测试 (3认同)

Ser*_*gey 31

除了@Dan 所说的之外,还有另一种在 Linux 中复制粘贴文本的选项,我发现它更快且更易于使用,因为无需从鼠标(您用来进行选择)切换到键盘:

  • 用鼠标选择文本将其复制到剪贴板
  • middle-click 粘贴它。

此功能在终端中特别有用,例如当从屏幕上已经存在的文本位组合命令时。

这适用于所有应用程序,因此可以将文本从网页复制粘贴到终端等。

用于middle-click复制粘贴的剪贴板缓冲区与用于Ctrl+ C/ Ctrl+的剪贴板缓冲区是分开的V,这使得可以同时复制两个不同的文本位。


小智 5

要使剪切和粘贴(Ctrl+ VCtrl+ C)在控制台或终端中工作,请将以下代码放入终端中以自动更改键绑定:

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/copy "<Control>c"

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/paste "<Control>v"
Run Code Online (Sandbox Code Playgroud)