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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/808422/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 12:22:59  来源:igfitidea点击:

Mac Style "Dvorak - Qwerty Command" keyboard mapping for Windows?

windowskeyboarddvorakqwerty

提问by Ian Boyd

I would be interested in switching to Dvorak keyboard layout. The problem that everyone runs into is that common programming* keyboard shortcuts, such as:

我有兴趣切换到 Dvorak 键盘布局。每个人都遇到的问题是常见的编程*键盘快捷键,例如:

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

Will no longer be the keys on the bottom left of the keyboard, since the Dvorak layout has C, V and Z in different locations.

将不再是键盘左下角的键,因为 Dvorak 布局在不同位置有 C、V 和 Z。

The Mac has solved this problem by having a keyboard layout called "Dvorak - Qwerty Command", where the keyboard is normally in Dvorak mode, but if you press a command key the mappings temporarily revert to Qwerty.

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

Does such a feature exist on Windows? It has been suggested that such a feat can be accomplished using the Microsoft Keyboard Layout Creator, but I won't pretend to understand all that.

Windows 上有这样的功能吗?有人建议使用Microsoft Keyboard Layout Creator可以完成这样的壮举,但我不会假装理解所有这些。

In other words, Stackoverflow users, is this a problem that has already been solved?

换句话说,Stackoverflow 用户,这是一个已经解决的问题吗?



* The joke being that the most common programming tasks are Ctrl+C, Ctrl+V.

* 开玩笑的是,最常见的编程任务是Ctrl+CCtrl+V

采纳答案by user600405

回答by Sam Harwell

I use Dvorak exclusively now, including all shortcuts. Here's how and why I got where I am:

我现在只使用 Dvorak,包括所有快捷方式。这是我如何以及为什么到达我的位置:

I started the change shortly into Christmas break 2.5 years ago. I wasn't in school or work for a bit, so poor typing abilities wouldn't negatively affect my day-to-day activities. I made a pact with myself: no QWERTY, at all, until my Dvorak typing reaches my current QWERTY abilities. That was by far the best and most painful decision. Every day I spent 2-3 hours training for the keyboard. It took 3 weeks to reach 50WPM, and for some reason I capped out there for like 2 months! I kept training, and about 3 months in I surpassed my original normalized efficiency (counts accuracy) from when I used QWERTY. Now I'm marginally faster than when I used QWERTY, but more than anything I've found that my hands no longer hurt at the end of a long day. It makes all the difference in the world.

我在 2.5 年前的圣诞假期不久就开始了改变。我没有上学或工作一段时间,所以打字能力差不会对我的日常活动产生负面影响。我与自己达成协议:完全没有 QWERTY,直到我的 Dvorak 打字达到我目前的 QWERTY 能力。这是迄今为止最好的也是最痛苦的决定。每天我都要花 2-3 个小时来训练键盘。达到 50WPM 需要 3 周时间,出于某种原因,我在那里停留了大约 2 个月!我一直在训练,大约 3 个月后,我超过了使用 QWERTY 时的原始归一化效率(计数准确度)。现在我比使用 QWERTY 时快了一点,但最重要的是我发现在漫长的一天结束时我的手不再受伤。它使世界变得不同。

Rules:

规则:

  • DO NOT rearrange the keys on your keyboard. It's touch typing, stop looking! Moving the keys messes up the critical f/j hints and changes the keyboard feel, all to provide you with visual information you'll never use.
  • DO NOT switch back to QWERTY while you are initially learning Dvorak "so you can get something typed faster."
  • DO practice every day with an online typing software. It's been a long time and unfortunately I don't remember where I was practicing. :(
  • Initially your fingers will hurt after typing on Dvorak. I had lots of problems with the lkey initially, but it was because I simply wasn't used to it and the pressure of learning kept me tense. Things will get better as you improve, and before you know it you'll be more comfortable on Dvorak than you were on QWERTY.
  • 不要重新排列键盘上的键。这是触摸打字,别看!移动按键会弄乱关键的 f/j 提示并改变键盘感觉,所有这些都是为了向您提供您永远不会使用的视觉信息。
  • 不要在您最初学习 Dvorak 时切换回 QWERTY,“这样您就可以更快地输入内容。”
  • 每天使用在线打字软件练习。已经很长时间了,不幸的是我不记得我在哪里练习了。:(
  • 最初在 Dvorak 上打字后,您的手指会受伤。一开始我对这个l键有很多问题,但那是因为我根本不习惯它,学习的压力让我很紧张。随着您的进步,事情会变得更好,不知不觉中,您在 Dvorak 上会比在 QWERTY 上更舒服。

Suggestions:

建议:

  • DO NOT use the Dvorak/QWERTY combo mode like you mentioned above. Dvorak Assistantlets you use Dvorak wherever you want, and to keep shortcuts consistent for you personally between computers, use the same shortcut characters (in their new locations).
  • 不要像上面提到的那样使用 Dvorak/QWERTY 组合模式。Dvorak 助手让您可以随时随地使用 Dvorak,并且为了让您个人在计算机之间的快捷方式保持一致,请使用相同的快捷方式字符(在它们的新位置)。

Observation:

观察:

  • Since it's so much easier for peoeple to learn Dvorak first, and it results in fewer injuries later in life, why on earth aren't we teaching this in our elementary schools???I honestly believe that it is incorrectto teach "proper typing" to these students with them sitting behind a QWERTY layout. On top of that, the classes already put stickers over all the keys to prevent peeking, so really what is the point of teaching QWERTY? I suppose I'm frustrated because my instructed touch typing on QWERTY is the primary reason it took me so long to learn typing on a real keyboard later.
  • 既然人们首先学习德沃夏克语要容易得多,而且以后生活中的伤害也更少,我们为什么不在我们的小学教这个????老实说,我认为向这些坐在 QWERTY 布局后面的学生教授“正确打字”是不正确的。最重要的是,班级已经在所有钥匙上贴上了贴纸以防止偷看,那么教授QWERTY的意义何在?我想我很沮丧,因为我在 QWERTY 上的指示触摸打字是我后来花了这么长时间才学会在真正的键盘上打字的主要原因。

回答by Kenton Varda

I was in the same situation, so I wrote this:

我遇到了同样的情况,所以我写了这个:

http://dvorak-qwerty.googlecode.com

http://dvorak-qwerty.googlecode.com

Hope it helps!

希望能帮助到你!

(Maybe using the keyboard layout creator would be better but I didn't want to figure it out either!)

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

回答by ftvs

AutoHotKeyto the rescue. This will use DVORAK when typing normally and when holding Shift. While Ctrl or Alt is held down QWERTY behaviour takes over.

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

Eventually this may become a shot in the foot because it cannot be used with GNU/Linux, so another solution may be required if you ever try it out.

最终这可能会成为一个打击,因为它不能与 GNU/Linux 一起使用,因此如果您尝试过,可能需要另一种解决方案。

回答by Brent

You're right, AutoHotkey doesn't help GNU/Linux users...but, if you're on Windows, AutoHotkey once again comes through! Except that the code should be more like this:

您说得对,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

I had a feeling that AHK was the answer, but I didn't know how to go about doing it. Thanks for pointing me in the right direction!

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

回答by Mathew Inkson

Dvertkey, an AutoHotKey script, caters for more scenarios than any other Windows solution I've used.

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

This is an old question, but I've kept coming back here over the years and no solution has been without annoyances. Thanks to ftvs for the AutoHotKey answer that inspired me to write this script.

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

I've been a dvorak user for sixteen years, and for years I've used the various alternative keymaps mentioned in this thread, but all of them fall down when using a number of recent incarnations of Microsoft applications, such as the Office apps and SQL Server Management Studio. They seem to ignore Windows' own keymaps when using meta keys, rendering the hybrid layouts useless. AutoHotKey gets around this to ensure I get exactly what I want in any application.

我已经使用 dvorak 用户 16 年了,多年来我一直使用此线程中提到的各种替代键盘映射,但是在使用 Microsoft 应用程序的许多最新版本(例如 Office 应用程序和SQL Server 管理工作室。在使用元键时,它们似乎忽略了 Windows 自己的键盘映射,从而使混合布局无用。AutoHotKey 解决了这个问题,以确保我在任何应用程序中都能得到我想要的东西。

While I agree with the sentiment of Sam Harwell's advice for new dvorak users, I disagree with the suggestion of not changing shortcut characters. Good keyboard shortcuts are about their positionson the keyboard more than the character that represents it. These are often chosen with good reasons (eg. the common X C V being cut-copy-paste, together at the bottom of the keyboard) and there's no reason to lose that good shortcut positioning when moving to Dvorak. This script will retain that.

虽然我同意 Sam Harwell 对新 dvorak 用户的建议,但我不同意不更改快捷方式字符的建议。好的键盘快捷键更多是关于它们在键盘上的位置而不是代表它的字符。通常选择这些是有充分理由的(例如,常见的 XCV 被剪切复制粘贴,一起在键盘底部),并且在移动到 Dvorak 时没有理由失去良好的快捷方式定位。该脚本将保留这一点。