适用于Windows的Mac风格“Dvorak-Qwerty Command”键盘映射?

14

我对切换到 Dvorak 键盘布局很感兴趣。但是问题在于常用的编程键盘快捷键,例如:

  • Ctrl+C
  • Ctrl+V
  • Ctrl+Z

这些键不再位于键盘左下角,因为 Dvorak 布局将 C、V 和 Z 等键放置在不同位置。

Mac 通过一个名为“Dvorak-Qwerty Command”的键盘布局解决了这个问题,该键盘通常处于 Dvorak 模式,但如果您按下命令键,则映射会暂时恢复为 Qwerty。

Windows 上是否存在这样的功能?有人建议使用Microsoft Keyboard Layout Creator 来实现此功能,但我并不想假装自己完全理解。

换句话说,StackOverflow 用户们,这个问题已经被解决了吗?


* 开玩笑的是,最常见的编程任务就是复制粘贴


1
我在“嘿,让我们试试Dvorak”阶段尝试使用Dvorak-Qwerty,但肌肉记忆冲突使我头痛不已。此外,MSKLC实际上相当容易使用。 - millimoose
2
我认为这应该发布在http://SuperUser.com上。 - Mehrdad Afshari
280Z28:永远不会太晚 ;) - Mehrdad Afshari
我的聪明之处在于将它变成了一个编程问题,因为程序员只会使用Ctrl+C、Ctrl+V。 - Ian Boyd
我有一只专为游戏设计的鼠标,并将最常用的快捷键(如Ctrl+C、Ctrl+V)绑定到它的按键上。事实上,我甚至将Ctrl键映射到了一个按键上。这只鼠标必须在Windows中进行配置,但如果你购买了正确的鼠标,它也可以在Linux中使用。虽然解决方案不同,但问题相似。 - Lime
https://github.com/kentonv/dvorak-qwerty - Lime
7个回答

17

我现在完全使用Dvorak键盘,包括所有的快捷键。以下是我如何以及为什么使用它:

我在2.5年前的圣诞假期不久开始转换。我当时没有上学或者工作,所以差劲的打字能力不会对我的日常活动产生负面影响。我与自己达成协议:除非我的Dvorak打字能力与当前的QWERTY打字能力相同,否则不得使用QWERTY。这是迄今为止最好和最痛苦的决定。每天我花2-3个小时训练键盘。我用了3周才达到50WPM,然后由于某种原因,在那里停滞了两个月!我继续训练,大约3个月后,我超过了使用QWERTY时的原始正常效率(计算准确度)。现在我比使用QWERTY时稍微快一点,但最重要的是,结束漫长的一天后,我的手不再疼痛。这使世界上的所有差异。

规则:

  • 不要重新排列键盘上的按键。这是触摸打字,请停止查看!移动键会破坏关键的f/j提示,并改变键盘的感觉,所有这些只是为了向您提供您永远不会使用的视觉信息。
  • 在最初学习Dvorak时,不要切换回QWERTY,"以便您可以更快地输入某些内容"。
  • 每天用在线打字软件进行练习。时间已经过去很长时间了,不幸的是我已经不记得我当时用的是哪个软件了。 :(
  • 最初使用Dvorak后,您的手指会疼痛。我最初遇到了许多与l键有关的问题,但那只是因为我还不习惯,而且学习的压力让我感到紧张。随着您的进步,情况会变得更好,在您意识到之前,您在Dvorak上会比在QWERTY上更舒适。

建议:

  • 不要使用上面提到的Dvorak/QWERTY组合模式。 Dvorak助手让你在任何地方使用Dvorak,并且为了使快捷键在各台电脑上保持一致,请使用相同的快捷键字符(它们的新位置)。

观察:

  • 由于人们学习Dvorak更容易,并且会在以后减少受伤,为什么我们不在小学就教授这种技能呢?我真诚地认为,在QWERTY键盘前,向这些学生教授“正确的打字”是错误的。此外,班级已经贴上所有按键的标签以防止偷看,所以教授QWERTY有什么意义呢?我想我感到失望是因为我接受的QWERTY触摸打字培训是导致我后来花费很长时间才学会在真正的键盘上打字的主要原因。

1
你的规则非常准确(我一年前开始学习Dvorak,并得出了与你相同的结论)。我使用了这个很棒的网站来学习打Dvorak(它还有多种语言)。然而,我不同意cmd-qwerty/dvorak的事情。我发现它非常有帮助,也不会引起任何dvorak/qwerty冲突。此外,如果没有它,你不能轻松地用一只手做cmd+c或cmd+x。但是,他们真的应该在学校教授Dvorak(或任何其他像样的非QWERTY布局)......可惜没有人知道除了QWERTY之外的任何东西...... - Cashew
反思一下,在尝试了Kenton为Linux开发的工具之后,我可以理解你的观点。现在对于我来说使用dvorak / qwerty快捷方式工具有点困惑(虽然我可以想象自己习惯它)。但我建议大家都试试并比较一下... - Cashew
我是说,我正在通过一个叫做PowerTyping的网站学习Dvorak。他们还有一个QWERTY课程。C am gocbi a ,.xocy... - Lysol
我认为值得一提的是,安卓手机允许您添加自定义键盘布局,例如Dvorak。在iPhone上也可以这样做,但需要越狱。 - Lysol
我在12年前转行,这篇文章正是我当时的做法,我每晚训练2小时,使用在线打字游戏...射击从天空中飞过的字母等等 :-) - Ryan Alberts


4
我曾经也遇到过同样的问题,所以我写了这个东西:

http://dvorak-qwerty.googlecode.com

希望能对您有所帮助!

(也许使用键盘布局创建器会更好一些,但我也不想弄清楚它的用法!)


我不建议使用此页面链接的“dverty”布局 - 当大写锁定时,它会使's'、'v'和'w'字符小写。 - Josh Clark
你的代码在Ubuntu上能运行吗?我似乎遇到了一些问题,使用#include <X11/Xlib.h>时出现了错误报告,说找不到这个文件。但是看起来这个库是专门针对Mac OS X的。 - j_v_wow_d

3

AutoHotKey 可以帮助解决问题。它可以在正常输入和按住 Shift 键时使用 DVORAK 键盘布局。而在按住 Ctrl 或 Alt 键时,则会切换回 QWERTY 键盘布局。

;Sorry about the messed up syntax highlighting.
;Disclaimer: may not work at all.
#UseHook
-::Send {Blind}[
=::Send {Blind}]

q::Send {Blind}'
w::Send {Blind}`,
e::Send {Blind}.
r::Send {Blind}p
t::Send {Blind}y
y::Send {Blind}f
u::Send {Blind}g
i::Send {Blind}c
o::Send {Blind}r
p::Send {Blind}l
[::Send {Blind}/
]::Send {Blind}=

a::Send {Blind}a
s::Send {Blind}o
d::Send {Blind}e
f::Send {Blind}u
g::Send {Blind}i
h::Send {Blind}d
j::Send {Blind}h
k::Send {Blind}t
l::Send {Blind}n
`;::Send {Blind}s
'::Send {Blind}-

z::Send {Blind}`;
x::Send {Blind}q
c::Send {Blind}j
v::Send {Blind}k
b::Send {Blind}x
n::Send {Blind}b
m::Send {Blind}m
,::Send {Blind}w
.::Send {Blind}v
/::Send {Blind}z

;capitalise

+-::Send {Blind}{{}
+=::Send {Blind}{}}
+q::Send {Blind}"
+w::Send {Blind}<
+e::Send {Blind}>
+r::Send {Blind}P
+t::Send {Blind}Y
+y::Send {Blind}F
+u::Send {Blind}G
+i::Send {Blind}C
+o::Send {Blind}R
+p::Send {Blind}L
+[::Send {Blind}?
+]::Send {Blind}{+}

+a::Send {Blind}A
+s::Send {Blind}O
+d::Send {Blind}E
+f::Send {Blind}U
+g::Send {Blind}I
+h::Send {Blind}D
+j::Send {Blind}H
+k::Send {Blind}T
+l::Send {Blind}N
+;::Send {Blind}S
+'::Send {Blind}_

+z::Send {Blind}:
+x::Send {Blind}Q
+c::Send {Blind}J
+v::Send {Blind}K
+b::Send {Blind}X
+n::Send {Blind}B
+m::Send {Blind}M
+,::Send {Blind}W
+.::Send {Blind}V
+/::Send {Blind}Z

最终这可能会成为一种自我伤害,因为它无法与GNU/Linux一起使用,如果您尝试使用它,则可能需要另一种解决方案。


请注意:此脚本仅适用于QWERTY布局。如果您在DVORAK布局上使用它,可能会导致疯狂的结果。 - Dan Friedman

1

你说得对,AutoHotkey 对 GNU/Linux 用户没有帮助...但是,如果你使用的是 Windows,AutoHotkey 再次发挥了作用! 除此之外,代码应该更像这样:

^;::Send {Blind}z   ;Undo
^q::Send {Blind}x   ;Cut
^j::Send {Blind}c   ;Copy
^k::Send {Blind}v   ;Paste
^o::Send {Blind}s   ;Save
^r::Send {Blind}o   ;Open
^f::Send {Blind}y   ;Redo

我有一种感觉AHK就是答案,但我不知道该如何去做。谢谢你指引我正确的方向!


1

Dvertkey 是一个 AutoHotKey 脚本,适用于比我使用过的其他 Windows 解决方案更多的场景。

这是一个老问题,但多年来我一直回到这里,没有任何解决方案是没有烦恼的。感谢 ftvs 的 AutoHotKey 答案,启发了我编写这个脚本。

我已经使用 dvorak 键盘十六年了,多年来我一直使用在这个线程中提到的各种替代键位映射,但在使用一些最近版本的 Microsoft 应用程序(如 Office 应用和 SQL Server Management Studio)时,它们似乎忽略了 Windows 自己的键位映射,当使用元键时,混合布局就无用了。AutoHotKey 可以解决这个问题,确保我在任何应用程序中都能得到我想要的东西。

虽然我同意Sam Harwell对于新的Dvorak用户提出的建议,但我不同意不更改快捷字符的建议。好的键盘快捷键更多是关于它们在键盘上的位置而不是表示它的字符。这些通常有很好的原因(例如,常见的XCV被用作剪切-复制-粘贴,一起位于键盘底部),没有理由在转换到Dvorak时失去这个好的快捷键定位。这个脚本将保留这个。



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