将剪贴板内容粘贴到命令提示窗口的键盘快捷方式(Win XP)[关闭]


303

是否存在用于将剪贴板内容粘贴到Windows XP上的命令提示符窗口(而不是使用鼠标右键)的键盘快捷键?

典型的Shift+ Insert似乎在这里不起作用。



帮个忙,在此页面上查看“链接”答案。ctrl-v等。
bdumtish

2
@pylover于2015年修复。
Franck Dernoncourt,2015年

1
@pylover否则,对于<10,您可以使用剪贴板管理器。(当然,我同意,荒谬的cmd在<10上没有ctrl + c)
Franck Dernoncourt

4
@pylover Shame on Microsoft,即使菜单中声称 Ctrl + V粘贴,在2016年,我们也必须使用鼠标将其粘贴到Bash中。
迈克尔

Answers:


162

我个人使用一些AutoHotkey脚本来重新映射某些键盘功能,对于我使用的控制台窗口(CMD):

; Redefine only when the active window is a console window 
#IfWinActive ahk_class ConsoleWindowClass

; Close Command Window with Ctrl+w
$^w::
WinGetTitle sTitle
If (InStr(sTitle, "-")=0) { 
    Send EXIT{Enter}
} else {
    Send ^w
}

return 


; Ctrl+up / Down to scroll command window back and forward
^Up::
Send {WheelUp}
return

^Down::
Send {WheelDown}
return


; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !{Space}ep
return

#IfWinActive 

当它们在ConsoleWindow内运行时,它们会干扰Cygwin。我对此技巧感到很兴奋,但不幸的是我不得不将其卸载。
piyo

2
@piyo:也许您可以通过其标题栏排除Cygwin控制台?例如:如果控制台标题栏显示“ ConsoleWindow”,则可以添加WinGetTitle sTitle \ n If(sTitle =“ ConsoleWindow”){\ n return \ n} \ n ---
PabloG

好主意。(+1)是的,如果窗口标题不变,那将是可行的。我觉得我对Cygwin中的窗口标题有更多的控制权,所以也许我可以为AHK的过滤添加一些静态但不可见的提示文本。
piyo 2010年

@piyo:cygwin薄荷味(不涉及X)对于cygwin壳来说
真是太好了

1
HowToGeek建议使用“ SendInput {Raw}%clipboard%”而不是替代空格ep。然后你摆脱闪烁,以及
Vegar的Westerlund

428

是的..但是很尴尬。链接

alt+ Spaceek< -用于复制和
alt+ Spaceep< -用于粘贴。


18
并非完全符合我的期望,但是当然可以。其他一些提示:如果您已将ALT + SPACE映射到应用程序启动器(例如Launchy),请使用ALT-SHIFT-SPACE代替如果您使用的是非英语版本的Windows,则最后两个键当然会有所不同(例如B + E用于粘贴德语)
sme

4
还要解释一下选择:ALT + SPACE + E + K <-复制。并使用箭头Shift +右箭头<-向上,向下,向左,向右导航,以选择文本ALT + SPACE + E + P <-进行粘贴。
Yordan Georgiev

6
复杂,我没有足够的手指来完成这项工作
pylover 2012年

5
我发现这个答案最有用,最直接。琴键序列不会令我震惊,因为Emacs和弦序列比这差得多。实际上,由于存在视觉反馈(带下划线的字符),因此窗口菜单快捷键Alt + Space足以理解下一步要按下的内容。
2012年

2
对于落地窗:[Alt] + [Space],[m],[c]复制,[Alt] + [Space],[m],[o]粘贴
Deleplace 2014年

137

并不是真正的编程相关,但是我在Google上发现了这一点它没有直接的键盘快捷键,但是使它更快一些。

要启用或禁用快速编辑模式:

  1. 打开MS-DOS程序或命令提示符。
  2. 右键单击标题栏,然后按属性。
  3. 选择选项选项卡。
  4. 选中或取消选中“快速编辑模式”框。
  5. 按确定。
  6. 在“将属性应用于快捷方式”对话框中,仅当您只想更改此窗口的该会话的“快速编辑”设置时,才选择“将属性应用于当前窗口”,或者选择“修改启动此窗口的快捷方式”以更改以后所有调用的“快速编辑”设置命令提示符或MS-DOS程序。

快速编辑

在启用QuickEdit时复制文本:

  1. 单击鼠标指针并将其拖动到所需的文本上。
  2. 按Enter键(或在窗口中的任意位置单击鼠标右键)以将文本复制到剪贴板。

在启用QuickEdit时粘贴文本:

  1. 右键单击窗口中的任何位置。

在禁用QuickEdit时复制文本:

  1. 用鼠标右键单击标题栏,在菜单上按编辑,然后按标记。
  2. 将鼠标拖到要复制的文本上。
  3. 按Enter键(或在窗口中的任意位置单击鼠标右键)以将文本复制到剪贴板。

在禁用QuickEdit时粘贴文本:

  1. 用鼠标右键单击标题栏,在菜单上按编辑,然后按粘贴。

14
我们正在谈论键盘快捷键。
pylover'4

11
右键单击对我来说似乎很短
Jay Sullivan

19
将您的手从键盘移到鼠标时,将其取消资格为“相当短”。
Ross Presser 2014年

嘿,太酷了。这是我的使用方法:我在桌面上创建了cmd.exe快捷方式,然后右键单击它以将其“固定到任务栏”-然后从桌面上删除该快捷方式...然后我在桌面上右键单击它任务蝙蝠,然后在显示cmd时再次右键单击,然后选择“属性”。我进入“高级”,然后告诉它以管理员身份运行。然后,返回确定并选择选项选项卡,然后按照此处所述启用QuickEdit。瞧,无论何时我使用任务栏中的黑色CMD图标,都始终可以通过在提示处单击鼠标右键来完成粘贴。
SDsolar '17

35

谢谢Pablo,正是我想要的!但是,如果我可以自由地稍微改善一下脚本,建议您将^ V宏替换为以下内容:

; Use backslash instead of backtick (yes, I am a C++ programmer).
#EscapeChar \

; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
SendInput {Raw}%clipboard2%
return

使用SendInput的优点是

  • 它不依赖于具有“ Alt + Space E P”菜单项的命令提示符系统菜单进行粘贴(适用于英语和西班牙语,但不适用于所有语言)。
  • 它避免了菜单创建和销毁时出现的讨厌闪烁。

请注意,在剪贴板恰好包含“!”,“ +”,“ ^”或“#”的情况下,在SendInput命令中包括“ {Raw}”非常重要。

注意,它使用StringReplace删除多余的Windows回车符。感谢hugov的建议!


2
好人,总是欢迎改进!
PabloG

1
优秀的!默认答案闪烁了弹出菜单,这很烦人
Eugene Burmako 2012年

谢谢,这给ctrl-v控制台带来了一种“本土”的感觉
jettico

当我按下ctrl+v它时,它会正确粘贴,但也会开始执行字符串(就像enter之后按下一样)。我该如何预防?
LoMaPh

18

还有一个很棒的开源工具clink,它通过许多功能扩展了cmd。其中之一是能够使用ctrl + v插入文本。


clink的大多数功能都很棒,但它破坏了IMO的一项有用功能。cmd.exe的自动完成功能会循环浏览文件。当多个文件以相同名称开头时,clink会显示一个列表。对于以相同名称开头的长文件名,cmd.exe具有更好的自动完成功能。
ChaimG '16


8

是一个免费工具,将在Windows上执行。我更喜欢它,因为它易于设置。它可作为快速的本机应用程序运行,可在XP及更高版本上运行,并具有允许重新映射命令窗口的复制/粘贴/选择键的配置设置:

在此处输入图片说明

另外,我认识开发人员。


4

最简单的方法就是将要粘贴的文本复制到cmd中,然后打开cmd转到“属性” --->“选项”选项卡---->选中(给定刻度)“ quickEdit mode”,然后单击“确定” ...现在,您可以通过用鼠标右键单击从剪贴板粘贴任何文本。

谢谢..


4

感谢Pablo提及AutoHotkey实用程序。由于我已经安装了使用Alt+的Launchy,因此Space必须对其进行修改,但要添加Shift密钥,如下所示:

; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !+{Space}ep
return

3

这实际上不是捷径,而是快速访问控制菜单:Alt-space EP

如果可以使用鼠标,则在我尝试时,在cmd窗口上单击鼠标右键将作为粘贴。


是的,右键单击可以正常工作,但这就是我要避免的事情。
sme

结果显示出四次击键,将手移至鼠标。该解决方案也很成功,因为它可以在任何机器上使用。
尼克

3

从理论上讲,DOS提示中的应用程序具有自己的剪贴板和快捷方式。从Windows剪贴板导入文本是“额外的”。但是,您可以使用Alt-Space打开“提示”窗口的系统菜单,然后按E,P选择“编辑”,“粘贴”菜单。但是,MS可以使用Win-key提供快捷方式。没有机会在DOS应用程序中使用。


1
就像一个旁注:当您通过RDP连接看到cmd时,它是Alt-Del而不是Alt-Space。
Bowi

2

我花了一些时间才弄清楚为什么您的AutoHotkey脚本对我不起作用:

; Use backslash instead of backtick (yes, I am a C++ programmer).
#EscapeChar \

; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
SendInput {Raw}%clipboard2%
return

实际上,它依赖于击键,因此也依赖于键盘布局!因此,当您像我一样不幸仅拥有一个AZERTY键盘时,您的建议就是行不通的。更糟糕的是,我发现没有简单的方法可以替换SendInput方法或扭曲其环境来解决此问题。例如,SendInput“ 1”只是不发送数字1。

我必须将每个字符转换为其unicode才能使其在我的计算机上工作:

#EscapeChar \

; Paste in command window.
^V::
StringReplace clipboard2, clipboard, \r\n, \n, All
clipboard3 := ""
Loop {
    if (a_index>strlen(clipboard2))
     break 
    char_asc := Asc(SubStr(clipboard2, a_Index, 1))   
    if (char_asc > 127 and char_asc < 256)
     add_zero := "0"
    else
     add_zero := "" 
    clipboard3 :=  clipboard3  . "{Asc " .  add_zero . char_asc . "}"
}
SendInput %clipboard3%
return

不是很简单


2

如果使用剪贴板管理器Ditto(开源,免费提供),则只需使用快捷方式从Ditto进行粘贴,它将为您将剪贴板粘贴到CMD中。

在此处输入图片说明


1

您可以尝试使用Texter并创建类似以下内容的内容:

./p,由空格触发并用%c替换文本

我刚刚测试了它,效果很好。唯一的陷阱是使用稀有序列,因为Texter不能将其限制为仅cmd。

可能还有其他这类实用程序可以使用,甚至在Texter所基于的AutoHotKey上也可以做得更好,但是Texter很容易:-)


1

一种更简单的方法是使用Windows Powershell代替cmd。它与texter一起正常工作。




1

如果您是Cygwin用户,则可以将以下内容附加到〜/ .bashrc文件中:

stty lnext ^q stop undef start undef

然后将以下内容添加到您的〜/ .inputrc文件中:

"\C-v": paste-from-clipboard
"\C-C": copy-to-clipboard

重新启动您的Cygwin终端。

(请注意,由于大多数控制台上都将CTRL + c分配给break函数,因此我使用了大写的C进行复制。

资源


1

而不是“右键单击”。...通过键入Alt / SpaceBar开始会话(一旦您进入命令提示符窗口)。这将打开“命令提示符”窗口菜单,您将看到熟悉的,带下划线的键盘命令快捷方式,就像在Windows GUI中一样。

祝好运!


1

我遵循@PabloG的步骤如下

  1. 转到http://www.autohotkey.com/-下载autohotkey
  2. 遵循简单的安装步骤
  3. 安装后,按如下所示创建新的* .ahk文件,右键单击桌面>新建> Autohotkey脚本> GiveAnyFileName.ahk
  4. 右键单击此文件>编辑
  5. 复制@PabloG在他的答案中给出的粘贴自动热键脚本
  6. 保存并关闭
  7. 双击文件运行
  8. 现在完成,您应该可以在命令提示符下使用Ctrl+ v进行粘贴

-4

在VISTA命令提示符下:单击系统图标,从菜单中选择“默认值”。在选项组的“选项”选项卡上,我选择了“快速编辑模式”,“插入模式”和“自动完成”,我认为是“快速编辑模式”是什么使它起作用。

要将剪贴板中的所有内容粘贴到插入点:右键单击。从命令窗口中进行复制通过按住鼠标左键并在要复制的对象上拖动指针进行选择。选择后,右键单击。若要粘贴到插入点,请再次单击鼠标右键。


8
您不了解“代替使用鼠标右键”的哪一部分;)
reiniero 2012年
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.