在Windows XP上,是否有快捷键可以将剪贴板的内容粘贴到命令提示符窗口中(而不是使用鼠标右键)?
典型的Shift+Insert在这里似乎不起作用。
在Windows XP上,是否有快捷键可以将剪贴板的内容粘贴到命令提示符窗口中(而不是使用鼠标右键)?
典型的Shift+Insert在这里似乎不起作用。
当前回答
如果您是Cygwin用户,可以将以下内容附加到~/。bashrc文件:(
stty lnext ^q stop undef start undef
并将以下内容发送到您的~/。inputrc文件:
"\C-v": paste-from-clipboard
"\C-C": copy-to-clipboard
重新启动Cygwin终端。
(注意,我使用大写的C表示复制,因为在大多数控制台中CTRL+ C被分配给break函数。根据个人口味调味。)
源
其他回答
如果您是Cygwin用户,可以将以下内容附加到~/。bashrc文件:(
stty lnext ^q stop undef start undef
并将以下内容发送到您的~/。inputrc文件:
"\C-v": paste-from-clipboard
"\C-C": copy-to-clipboard
重新启动Cygwin终端。
(注意,我使用大写的C表示复制,因为在大多数控制台中CTRL+ C被分配给break函数。根据个人口味调味。)
源
谢谢,巴勃罗,这正是我要找的!但是,如果我可以冒昧地稍微改进您的脚本,我建议用以下代码替换您的^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的建议!
我最近发现,命令提示符支持通过鼠标右键单击上下文菜单。你可以在这里找到更多细节:http://www.askdavetaylor.com/copy_paste_within_microsoft_windows_command_prompt.html
还有一个很棒的开源工具叫做clink,它扩展了cmd的许多特性。其中之一就是能够使用ctrl+v插入文本。
我花了一点时间来弄清楚为什么你的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。
我必须把每个字符都转换成统一码,才能在我的电脑上使用:
#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
不是很简单……