无法在MinGW shell中复制/粘贴

107

我刚刚在Windows上安装了MinGW,但是我无法像在Linux或PuTTY中那样进行复制/粘贴。有没有什么方法可以将文本(例如来自Chrome的文本)复制到MinGW shell中?

7个回答

217

右键单击命令窗口的标题栏,选择“属性”,然后在“选项”选项卡中勾选“快速编辑模式”选项,最后点击“确定”按钮。

之后,您可以使用鼠标右键从剪贴板粘贴文本,同时按住鼠标左键高亮文本,并使用回车键复制选定的文本。

此过程适用于Windows 7/8,不适用于Windows 10。


请取消“插入模式”选项。 - Lee
3
奇怪,我的MinGW git bash终端没有“属性”选项。但是它确实有这两个选项:1)按下键盘上的“插入”键进行粘贴,2)右键单击终端->选项->鼠标->“右键单击操作”单选按钮:粘贴以进行rc-paste。 - kayleeFrye_onDeck
1
@kayleeFrye_onDeck 我猜你在使用Windows 10?我的回答适用于Windows 10之前的Windows命令提示符。 - Andreas

37

[备选方案] 对于 Windows 10 中 MINGW64 (mintty 2.7.9) 终端,您可以启用“Ctrl+Shift+字母快捷键”实现复制(Ctrl+Shift+c)和粘贴(Ctrl+Shift+v)。

要启用此功能:

  1. 右键单击命令行窗口
  2. 点击“Keys”
  3. 勾选“Ctrl+Shift+字母快捷键”选项

当您使用 vi/vim 打开文件时:

  • 要复制:选择您想要复制的部分并单击“y”
  • 要剪切:选择您想要剪切的部分并单击“d”
  • 要粘贴:Ctrl+Shift+v

1
@parsecer 很抱歉我的回答没有帮到你,但这是否证明了你的负评?似乎我的回答对很多人来说并不是那么错误。而且,正如我已经在我的回答中添加的那样,我的解决方案不适用于Windows 10。 - Andreas
1
关于vim的部分很有帮助,但是按下“p”来粘贴东西有效,而按下“ctrl”+“shift”+“v”则无效。 - MarkusParker

8
这个 mintty bug CTRL + C & CTRL + V copy paste 已经解决。它允许正常的Control-C、Control-V复制和粘贴,但会改变其他控制字符。因此,要停止运行一个进程,你需要使用 Control-Shift-C;要中断它,你需要使用 Control-Shift-Z;要发送EOT,你需要使用 Control-Shift-D。你可能会发现Windows的复制和粘贴优势胜过缺点。
这种行为需要在.minttyrc文件中设置一个标志。应该如下所示:
CtrlShiftShortcuts=yes
CtrlExchangeShift=yes

1
2019+的正确答案 - deepelement
1
在2021年对我有用。 - Questioning
2022年对我有效。 - Jeff Nyman

7

我使用的是Win7操作系统,运行的是MINGW64 (mintty 2.7.3),这个版本是从Git Bash 2.1.3.0下载并安装的。

如果你想实现右键粘贴功能,可以按照以下步骤进行设置:在命令提示符窗口标题栏上右键点击 > Mouse > 在Click actions下选择Right mouse button > 选择Paste单选按钮。

然而,我惊奇地发现,这样设置后,我的鼠标右键还是不能实现粘贴操作。

这时,我需要同时勾选Application mouse mode > Default click target > Window这三个选项。

将这两个设置都改变后,我就能够成功地实现粘贴了。

所以,似乎新版的Git bash shell具有新的功能,但也可能存在一些缺陷。例如,通过命令行运行可执行文件(比如php -version)会导致输出为空,并强制我重新启动shell。希望等待新的更新,来解决这个问题。


5

@mrt的解决方案是永久性的。这里有一种更快捷的方式适用于Windows中任何16位提示:

复制

点击左上角的图标 > 编辑 > 标记,在文本上右键单击并选择所需的文本

粘贴

与上面类似(使用编辑 > 粘贴)或只需按INSERT键。


1
是的,我的解决方案是永久性的,这就是为什么我认为它比每次需要复制/粘贴时都要点击左上角图标更快的原因。 :) - Andreas

2
我遇到了这个问题,上面的解决方案对于Windows 10无效。这是因为菜单上没有“属性”选项。但是使用上述解决方案的内容,我能够按照以下步骤解决Windows 10的问题: 右键单击MINGW64左上角的图标: 选择“选项” 现在选择“键” 在右侧,您将找到“快捷方式” 如果没有被勾选,请勾选“复制”和“粘贴” 现在始终记住按照以下说明进行复制和粘贴: 复制:Ctrl + Ins(插入) 即在MINGW上复制,只需突出显示要复制的内容,然后按Ctrl Insert键 粘贴:Shift + Ins(插入) 即要粘贴,请将光标放置在要粘贴的位置。然后按Shift Insert键

现在选择“鼠标” 在右边,您将找到鼠标功能 如果没有被勾选,请勾选“选择时复制”和“复制为富文本” 对于鼠标按钮,请勾选“鼠标右键粘贴” 注意:要在MINGW上复制,只需突出显示要复制的内容。然后将光标放置在要粘贴的位置,然后单击鼠标右键。 现在点击保存或应用,然后保存。 我已经尝试过这些,一切正常。 请注意,您还可以从任何其他来源复制并使用上述粘贴说明粘贴到MINGW。


0

我更喜欢在Console2ConsoleZ中运行MSYS2 shell。这样可以像在Linux和PuTTY中一样,在选择时设置右键粘贴和复制。它还将多个MSYS2 shells组合在一个带有选项卡的窗口中。

Windows 11现在也有类似的终端程序,但我还没有尝试过与MSYS2一起使用...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接