Keyboard 改进的Colemak程序设计

Keyboard 改进的Colemak程序设计,keyboard,keyboard-layout,colemak,Keyboard,Keyboard Layout,Colemak,是否存在专门为编程设计的修改过的键盘布局 几天前,我对Colemak键盘布局进行了彻底的研究,我真的很喜欢普通的打字,但对于频繁编程的字符,如:;(分号)键。一个有大括号和圆括号直接映射的修改布局会更好 显然,我可以通过反复试验自己重新映射这些键,但我希望有人已经做了一些测试,以确定公共语言字符的最佳布局。你看过colemak.com上的dreymar广角mods吗 你可以坚持下去;在键盘的中间,用[]和[2]和[1]和[5]的方式方便地访问[1],我意识到这个问题已经有一年了,但这是我的回答,

是否存在专门为编程设计的修改过的键盘布局

几天前,我对Colemak键盘布局进行了彻底的研究,我真的很喜欢普通的打字,但对于频繁编程的字符,如:;(分号)键。一个有大括号和圆括号直接映射的修改布局会更好


显然,我可以通过反复试验自己重新映射这些键,但我希望有人已经做了一些测试,以确定公共语言字符的最佳布局。

你看过colemak.com上的dreymar广角mods吗


你可以坚持下去;在键盘的中间,用[]和[2]和[1]和[5]的方式方便地访问[1],我意识到这个问题已经有一年了,但这是我的回答,以帮助其他人。

这是一个我经常处理的问题,我不想详细说明

我只想说不,即使经过几个月的搜索,我仍然没有找到一个合适的“Colemak for programming”。 它和通常的QWERTY一样,在特殊符号上过度使用了右小指,重新映射本来是可取的,但现在混乱已经结束,不会有任何立即的解决方案

你只能做两件事:

1) 制作自定义布局键盘。在Win/Lin/Mac上有多种工具可以实现这一点。这是整洁的,因为你可以重新安排一切,因为你认为合适。另一方面,最大的缺点是没有其他人使用你的键盘布局,如果你被要求在计算机上键入内容,你就会遇到麻烦,因为你的肌肉记忆完全不同

2) 有一个名为的键盘布局,旨在解决您的问题。这里的缺点是,与标准Dvorak键盘相比,程序员Dvorak相对未知,所以问题与上面相同。不过,它只会重新排列特殊的符号,这意味着如果需要,您仍然可以使用标准的Dvorak(而且它比Colemak广泛得多)。不过,要准备好在过渡期中度过几个月

或者,您可以尝试选择第三种选择,并尝试说服Colemak社区开发一个程序员友好的Colemak版本。但这需要时间,我敢打赌你会发现很少有支持者。

\p>背景

这是我做的一个半小时关于键盘布局历史和理论的演示:

我非常认真地对待这一点,并不断地进行实验。我痴迷于高效的工作,并且我已经展示了非常令人信服的结果,比如说,我保证这是非常值得努力的。

在我的回答中,我将更多地讨论理论,因为我的布局主要是针对我的特定编程需求而定制的,并且不适合Python开发人员,除非他调整了bigram和level1字符

运用这个理论,根据你的需要调整它

#术语:

  • Altgr:通常是正确的alt键,允许您写入外来字符或重音符号
  • 级别1:没有修改键的布局(Shift、Altgr)
  • 第2级:带班次的布局
  • 第3级:具有Altgr的布局
  • 级别4:带有Shift+Altgr的布局

#Beta键盘Vim程序员的Colemak v3 这是我在过去一年中使用的一个面向右的布局:

请记住,此布局优化的目的是:

  • vi
    (注意方向键如何位于右手,就像
    vi
  • C语言
  • APL(是,APL)
  • XML(次要考虑)
  • Bash(
    set-o vi
它包含了关于键盘布局的三个主要激进理论:

  • 方向键上下左右主端PgUp PgDn应委托给第3级所有可触及的手指自然放置
  • 两个Alt键都应转换为Altgr,这样您可以用任意一只手访问Level 3
  • 数字应该从最上面一行取下并组织成一个小键盘。通用的计算器符号应该围绕它
    • 还应该说,程序员的布局原则上是将numberkeys从1级移开,因为一个好的程序员根本不应该经常使用数字。见:
    以下是这些理论在使用一年后的表现:

    #理论1-方向键

    对整个工作流程的爆炸性改进,尤其是文档编辑(与编程相反,
    vi
    已经提供了该功能)

    • 主键和结束键放在适当的范围内非常有用
    • 方向键是必不可少的
    • PgUp和PgDn未得到充分利用,但这可能是因为交错键盘位置的倾斜,使您必须在
      之前进行伸展。目前正在测试左手的相反方向(如本答案底部所示)
    #理论2-AltGr

    这是一个必要的要求,同样徒劳的是,我们有两个shift键,两个altgr键位于空格键的最左边和最右边。只与一个人一起工作会使打字成为一个痛苦的过程

    虽然必要,但重要的是要提到,拇指如此频繁地向下按压可能会产生一些非常轻微的疼痛。付出的代价很小。如果可以得到缩小的空格键布局,例如:

    这可能会解决问题

    另一个问题,这将是巨大的大多数用户,是缺乏一个alt键。然而,在Ubuntu上,你可以使用HUD访问大多数菜单命令,这样就不需要使用Alt键的90%键盘快捷键。我偶尔遇到的唯一问题是无法访问TTY终端。(Alt+Ctrl+F1)我从未想过要重新映射它,尽管我应该这样做

    #理论3-数字键盘

    这是一个艰难的时刻
    sudo vim /usr/share/X11/xkb/symbols/us
    
    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/
    // Akiva Abraham WADS-Keypad Programmer's Colemak
    
    partial alphanumeric_keys
    xkb_symbols "colemak" {
    
    include "us"
    name[Group1]= "English (Colemak)";
    
    key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };
    key <LSGT> { [Control_R, Control_R, Control_R, Control_R] };
    key <SPCE> { [        space,        space,           space,     nobreakspace ] };
    
    key <TLDE> { [U0021, U007E, U00AC, U00A4] };
    key <AE01> { [U005B, U0021, U005B, U20AC] };
    key <AE02> { [U005D, U0040, U005D, U00A2] };
    key <AE03> { [U002F, U0023, U002F, U00A3] };
    key <AE04> { [U0022, U0024, U0022, U00A5] };
    key <AE05> { [U003C, U0025, U003C, U003C] };
    key <AE06> { [U003E, U005E, U003E, U003E] };
    key <AE07> { [U0026, U0026, U0026, U2030] };
    key <AE08> { [U002A, U002A, U002A, U00BC] };
    key <AE09> { [U0029, U007D, U0029, U00BD] };
    key <AE10> { [U0028, U007B, U0028, U00BE] };
    key <AE11> { [U005F, U005F, U002D, U2308] };
    key <AE12> { [U003D, U002B, U003D, U230A] };
    
    key <AD01> { [U0071, U0051, minus, U00A9] };
    key <AD02> { [U0077, U0057, Home, U00AE] };
    key <AD03> { [U0066, U0046, Up, U2191] };
    key <AD04> { [U0070, U0050, End, U00B6] };
    key <AD05> { [U0067, U0047, Prior, U2371] };
    key <AD06> { [U006A, U004A, U0023, U2372] };
    key <AD07> { [U006C, U004C, U0037, U00B0] };
    key <AD08> { [U0075, U0055, U0038, U22A4] };
    key <AD09> { [U0079, U0059, U0039, U00A7] };
    key <AD10> { [U003B, U003A, U2234, U2234] };
    key <AD11> { [U005C, U005C, minus, U0025] };
    key <AD12> { [U007C, U00A6, U007C, U2262] };
    key <BKSL> { [U0027, U0060, U0060, U2260] };
    
    key <AC01> { [U0061, U0041, Escape, U2122] };
    key <AC02> { [U0072, U0052, Left, U2190] };
    key <AC03> { [U0073, U0053, Down, U2193] };
    key <AC04> { [U0074, U0054, Right, U2192] };
    key <AC05> { [U0064, U0044, Next, U2228] };
    key <AC06> { [U0068, U0048, U0024, U2227] };
    key <AC07> { [U006E, U004E, U0034, U22A3] };
    key <AC08> { [U0065, U0045, U0035, U22A5] };
    key <AC09> { [U0069, U0049, U0036, U22A2] };
    key <AC10> { [U006F, U004F, Return, U2235] };
    key <AC11> { [Shift_R, Shift_R, Shift_R, Shift_R] };
    
    key <AB01> { [U007A, U005A, Insert, U2229] };
    key <AB02> { [U0078, U0058, KP_Delete, U222A] };
    key <AB03> { [U0063, U0043, U002A, U2282] };
    key <AB04> { [U0076, U0056, U002F, U2283] };
    key <AB05> { [U0062, U0042, U002E, U2022] };
    key <AB06> { [U006B, U004B, U0030, U00BA] };
    key <AB07> { [U006D, U004D, U0031, U00B9] };
    key <AB08> { [U002C, U003C, U0032, U00B2] };
    key <AB09> { [U002E, U003E, U0033, U00B3] };
    key <AB10> { [U003F, U003F, U002F, U2020] };
    
    include "level3(ralt_switch)"
    include "level3(lalt_switch)"
    };