长期以来, windows的命令行窗口用户都得忍受着不能共享操作系统级的剪贴板快捷操作: CTRL+C 复制选中的内容到剪贴板, CTRL-V 则把剪贴板的内容粘贴到当前位置.
这个问题通过两个变通的办法:
1. 复制时, 鼠标右键, 可以弹出一个窗口, 通过菜单选择复制粘贴, 要粘贴内容时, 类似的操作.
2. 通过修改窗口属性, 有一个"快速编辑" 的选项, 勾选上之后, 用鼠标右键就直接把选中的内容放到系统剪贴板, 同时是鼠标右键会把剪贴板的内容粘贴到当前位置.
在此之前, 我使用方法2, 毕竟比办法1更快一些, 缺点是不是系统默认的方式, 到一个新环境下必需手工改过来.
通过 AutoHotKey, 可以以下面两句简单的配置也改变这一点:
#IfWinActive ahk_class ConsoleWindowClass
^C:: MouseClick, Right
^V:: MouseClick, Right
return
命令行窗口的窗口类, 可以简单地通过 Spy++找到.
MouseClick 命令本来支持在指定的座标处执行单击动作, 但在这个情况下, 又能指定一个什么样的座标呢? 指定座标反而带来不好的副作用, 你会看到光标忽然改变了位置. 不好.
可以使用cygwin的bash, 可兼容.
可以使用 Command Prompt Explorer Bar工具(没听说过? 不奇怪, 我也才知道, 但绝对值得一试, 放狗出来搜吧), 兼容.
从此, CTRL-C, CTRL-V 彻底摆脱cmd.exe这个钉子户, 一统江湖.
[续]
使用cygwin/bash 时, CTRL-C, CTRL-V的行为却不再合适. 好在使用bash时, DOS窗口的标题会出现bash这样的字样, 这使得可以进一步定制这两个快捷键在bash时保持原来的功能:
#IfWinActive ahk_class ConsoleWindowClass
^C::
WinGetTitle, active_title, A
if active_title not contains bash
{
MouseClick, Right
}
else
{
Send ^C
}
return
#IfWinActive ahk_class ConsoleWindowClass
^V::
WinGetTitle, active_title, A
if active_title not contains bash
{
MouseClick, Right
}
else
{
Send ^V
}
return
阅读(2683) | 评论(0) | 转发(0) |