Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2302679
  • 博文数量: 527
  • 博客积分: 10343
  • 博客等级: 上将
  • 技术积分: 5565
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-26 23:05
文章分类

全部博文(527)

文章存档

2014年(4)

2012年(13)

2011年(19)

2010年(91)

2009年(136)

2008年(142)

2007年(80)

2006年(29)

2005年(13)

我的朋友

分类: WINDOWS

2009-11-15 15:19:06

长期以来, 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

阅读(4175) | 评论(10) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-01-12 22:51:57

好!

chinaunix网友2010-01-12 22:51:57

好!

chinaunix网友2010-01-06 08:51:33

ALT+SPACE+E+K <-- for copy . and ALT+SPACE+E+P <-- for paste. 对这个问题有了新认识,下面的帖子也许有帮助,可以完全用键盘实现copy和paste,避免了鼠标的一些问题 http://stackoverflow.com/questions/131955/keyboard-shortcut-to-paste-clipboard-content-into-command-prompt-window-win-xp?bcsi_scan_4C8DC9EA909D26FB=8r+afB5MKCfr7uhGM9kD6mYuX5InAAAAUUqQDQ==

chinaunix网友2010-01-06 08:51:33

ALT+SPACE+E+K <-- for copy . and ALT+SPACE+E+P <-- for paste. 对这个问题有了新认识,下面的帖子也许有帮助,可以完全用键盘实现copy和paste,避免了鼠标的一些问题 http://stackoverflow.com/questions/131955/keyboard-shortcut-to-paste-clipboard-content-into-command-prompt-window-win-xp?bcsi_scan_4C8DC9EA909D26FB=8r+afB5MKCfr7uhGM9kD6mYuX5InAAAAUUqQDQ==

slimzhao2009-12-25 16:25:27

当然, 欢迎引用. 另外, 我发现当我用cygwin/bash时, 上面的实现会有些困扰, 正如你所说, CTRL+C 用来中断当前命令的输入或正在执行的进程, 这在bash下是经常用到的, 而CTRL+V, 则在bash下可以让下一个键以原始方式输入, 也是另有用途, 后来我把脚本修改了一下, 只让它在真正的cmd.exe工作时才进行粘贴, 在bash运行时, 则保持原有功能.