Wie berechnet man das ideale Tastaturlayout für Programmierer?

2818
tomByrer

Ich denke darüber nach, ein neues Tastaturlayout für die Programmierung zu erstellen. Jetzt programmiere ich meistens in HTML, JavaScript / jQuery / CoffeeScript, CSS / LESS / SASS, obwohl ich mich bald mit Shell Scripting & RegEx beschäftigen kann, vielleicht mit LUA, C ++ und Java in ein paar Jahren. Ich möchte einen wissenschaftlichen Beleg für die Platzierung des Schlüssels haben. Ich habe Ideen / Anforderungen, einige haben sich selbst erfunden, andere genommen oder von anderen abgeleitet:

  • Fast alle Tasten können neu angeordnet werden
    • RETURN, Left Shift, Left CONTROL, Leertaste & TAB müssen bleiben, aber alle anderen, einschließlich Zahlen, Symbole und Bewegungstasten, können sich bewegen
    • Könnte optimal verlassen zxcv & perhhaps s bleiben an Ort und Stelle, aufgrund gemeinsamer Undo / Cut / Copy / Paste / Save Gewohnheiten :)
    • DELETE- Taste, die wahrscheinlich dorthin verschoben wird, wo sich CAPS LOCK befindet :)
    • Es ist unwahrscheinlich, dass Klammern wie () {} [] <> nebeneinander angezeigt werden. siehe unten
  • Die einzige genaue Methode, mit der IMHO die Schlüsselverwendung zählt, ist die Schlüsselprotokollierung, nicht die Anzahl der Dateien:
    • Ein großer Teil des "Programmierens" ist das Versenden von E-Mails, das Posten in Foren, Twitter, Fehlerberichterstattung, Surfen im Internet usw.
    • Ich glaube, dass ein Großteil der Tastaturbenutzung "Bewegung" ist. Tabulatoren zwischen Feldern, Bild abblättern, Cursor bewegen usw. Diese werden nicht von Dateiausgaben erfasst
    • Viele Editoren verwenden Auto-Vervollständigung und Makros, daher werden close-deliminators:)}]> möglicherweise nicht so häufig als Öffner eingegeben. Daher werden nur die Schlüsselprotokollierung und keine Analyse der Dateien korrekt sein.

Also meine Fragen:

  1. Was sind sichere Free / Open Source-Software-Keylogger, die keine Dateien hochladen, wenn Sie nicht selbst eine separate Datei senden? Ich würde es vorziehen, NICHT Login-Namen und Passwörter zu sammeln, nicht nur aus Sicherheitsgründen, sondern auch, weil dies meine Analyse IMHO beeinträchtigen kann.
  2. Welche Programme können clientseitig verwendet werden, um einzelne und paarweise Tastenzahlen zu verarbeiten? Oder wie man am besten eins baut?
  3. Wo ist es am besten, Freiwillige zu finden, die helfen?

Beste Forschung bisher: http://www.michaelcapewell.com/projects/keyboard/layout_capewell.htm

http://viralintrospection.wordpress.com/category/technology/keyboard-layouts/

& Wikipedia: Keyboard_layout # Nicht-QWERTY_keyboards_für_Latin_scripts

TIA!

8
Eine interessante Frage, aber lassen Sie mich eine meiner eigenen vorschlagen: Wollen wir lieber das gestaffelte Schokoriegel-Layout aufgeben, das wir seit Jahrzehnten für etwas völlig anderes verwenden? Ignacio Vazquez-Abrams vor 12 Jahren 0
Meinen Sie, Ignacio, für $ 300USD auf ein völlig neues Layout wie die konturierte Tastatur von Kinesis umzusteigen? Nein. Sie müssen nur die Tasten in vorhandenen billigen Tastaturen neu zuordnen, die Sie in einem normalen Geschäft für 5-20 US-Dollar finden können. tomByrer vor 12 Jahren 0
Wenn Sie mit einer QWERTY-Standardtastatur (oder einer anderen Tastatur) vertraut sind, ist es möglicherweise effizienter, sie nur zu verwenden, anstatt ein neues Layout zu lernen. Dies gilt insbesondere, wenn Sie regelmäßig andere Computer verwenden, die kein benutzerdefiniertes Layout haben. Bob vor 12 Jahren 0
Ich dachte darüber nach, dass Bob & das für mich selbst am besten hielt. Ich habe zwar gelesen, dass einige andere keine Probleme haben, beide Layouts am selben Tag zu verwenden, daher möchte ich es versuchen. Ich bin es gewohnt, in derselben Stunde zwei verschiedene Sprachen zu sprechen, wie Englisch und Italienisch. Obwohl ich immer noch Aubergine "melanzana" nennen möchte, obwohl ich seit 12 Jahren nicht in Italien gelebt habe :) tomByrer vor 12 Jahren 0
Um Antworten zu erhalten, müssen Sie sie beispielsweise mit @tomByrer anpingen! slhck vor 12 Jahren 1
@ekaj Ja, das war nur ein Beispiel für Tom, ich will die Dinge nicht komplizieren slhck vor 12 Jahren 0
Ich vermute, dass es am besten wäre, `<> {} []` (und anderen Schlüsseln, die derzeit eine Verschiebung erfordern) ihre eigenen Schlüssel zu geben - ich würde mich nicht wirklich als Programmierer bezeichnen, aber ich weiß, dass das am meisten ist ärgerlich beim Schreiben von Bash-Skripten. evilsoup vor 11 Jahren 2

2 Antworten auf die Frage

3
Daniel Andersson

Die Tasten für die Bewegung in Editoren werden meistens so angepasst, dass sie mit QWERTY so effizient wie möglich verwendet werden können. Daher müssen sie unbedingt neu zugeordnet werden, wenn Sie das Tastenlayout ändern und die optimale Platzierung aller Elemente wünschen, die Sie anstreben. In Vim werden die HJKL-Schaltflächen beispielsweise aus einem Grund mit QWERTY verwendet und müssten höchstwahrscheinlich auf dieselbe Platzierung zurückgesetzt werden, nachdem die Tastaturbelegung geändert wurde.

Ich meine damit, dass es Ihnen nicht viel helfen wird, die Bewegung und die Bearbeitung von Schlüsseln zu verfolgen und als Grundlage für ein neues Layout zu verwenden, da sie leicht umkonfigurierbar sind (in jedem Editor ist es wert, dass es Salz kostet) und da wir über Programmierer sprechen Layout, wir sprechen höchstwahrscheinlich über Vim oder Emacs), sollten die Platzierung der wörtlichen Schlüssel nicht beeinträchtigen und wurden bereits optimiert (wieder: wir reden nicht über Notepad).

Sie versuchen, ein Problem zu lösen, das eine ineffiziente Art und Weise der Produktivität darstellt, insbesondere für Programmierer, imho. Es würde einen viel größeren Effekt haben, wenn man einfach mehr über die Werkzeuge lernt (wiederum wahrscheinlich Vim / Emacs). Sie werden feststellen, dass beim Schreiben von Zeichen immer weniger Zeit für das Schreiben von Zeichen aufgewendet wird, und dass mehr (aber effizientere) Zeit für die automatische Vervollständigung, das automatische Kennzeichnen, das automatische Einrücken, das Durchsuchen von Funktionsdefinitionen usw. benötigt wird All dies zu tun, ist bereits an Effizienz angepasst, und der große Geschwindigkeitsschub kommt einfach mit Vertrautheit. Ich behaupte also, dass ein anderes Tastaturlayout für die Produktivität vergleichsweise zerstörerisch ist, da Sie bereits viele habenJahre der QWERTY-Übung. Wenn für QWERTY die gleiche analytische Schulungszeit aufgewendet würde wie für das Wechseln von Layouts für Dvorak, würden sie auch einen Geschwindigkeitsschub bemerken. Geschwindigkeit kommt mit explizitem Training.

Wenn Sie Texter / Übersetzer / Autor / etc waren, jemand, der seine Zeit tatsächlich mit der wörtlichen Bedeutung der Tasten verbringt, kann ein anderes Layout hilfreich sein. Für Programmierer ist der beste Tipp in der Regel, mindestens ein englisches Tastaturlayout zu erhalten, da Programmiersprachen hierdurch geformt wurden und deren Tastenplatzierung (bei meinem lokalen Tastenlayout @$[]{}~alle hinter AltGr liegt, was ziemlich suboptimal ist).

tldr: Dvorak / Colemak / [das nächste "beste Ding seit geschnittenem Brot"] löst (wohl) ein Problem nur für diejenigen, die viel fließenden Text in einer bestimmten Sprache eingeben (meistens Englisch). Für die Programmierung wurden für die benötigten Schlüssel nicht die gleichen Einschränkungen wie für die Literalsprache verwendet, und daher wurde sie bereits für ihren Zweck optimiert (was nicht nur "so schnell wie möglich schreiben" ist), sondern baut auf logischen Operationen auf Vim). Ich glaube, dass die Zeit, die Sie mit dem Erlernen von alternativen Layouts verbringen, und die Verwirrung, die am sichersten immer und immer wieder auftritt, in den meisten Fällen die Anstrengung nicht wert ist (nicht nur Ihre eigene Verwirrung; andere, die sich an dem zuletzt verwendeten Terminal befinden, werden werfen) Dinge bei Ihnen), einschließlich der Programmierer.

Vielen Dank @ Daniel-Andersson für Ihre Einblicke in Vim; es ist hilfreich zu wissen, dass einige Editoren Bewegungstasten neu zuordnen können! Ich muss mehr über meine Werkzeuge lernen. Ich bearbeite jedoch VIEL mit vielen Werkzeugen; Online-Editoren & Textboxen: Foren (wie hier;), Gists, jsFiddle, GMail, Facebook, Twitter (sollte nicht @ eine Nicht-Umschalt-Taste sein?) ... & andere Editoren wie Inkscape, SynthMaker, Live, etc. Ich möchte meine Tastenkombinationen möglichst über Keymapping vereinheitlichen und dann über app-configs einen Schritt höher gehen :) tomByrer vor 12 Jahren 0
2
cutrightjm

Verwenden Sie ein Programm wie WhatPulse, um aufzuzeichnen, welche Tasten wie oft gedrückt werden.

Nachdem Sie im FreeNode-IRC-Netzwerk gefragt wurden, wie Sie die wichtigsten Frequenzen zusammenstellen können, führt mich ein Benutzer dazu:

  1. Holen Sie sich Ihren Text, z. B. ein Programm, und kopieren Sie sie.
  2. Gehe zu http://type.trmnl.org/
  3. Vergewissern Sie sich, dass unter den Schaltflächen "Autostart mit Inhalt der Zwischenablage beim Einfügen" deaktiviert ist.
  4. Fügen Sie dann Ihr Programm in das Textfeld ein.
  5. Drücken Sie Cntrl + Shift + K, um eine Konsole zu öffnen.
  6. Geben Sie in ein count_digraphs()und drücken Sie die Eingabetaste.

Die Ergebnisse werden wie folgt gelesen: "ar" 7 17 10 "ra"was bedeutet, dass "ar" sieben Mal gedrückt wurde, "ra" zehnmal gedrückt wurde und alle zusammen "ar" und "ra" 17 mal zusammen gedrückt wurden

"Zusätzliche Optionen: Zeichnen Sie die Tastenfrequenzen auf. Diese Funktion wurde in WhatPulse Version 1.7 eingeführt. Damit können Sie verfolgen, wie viele Tasten Sie gedrückt haben." https://whatpulse.org/wiki/Program_Settings_Tab_2 Süß, thaks @ekaj! Ich werde es auch untersuchen! tomByrer vor 12 Jahren 0
Ich denke, dass dies die beste Lösung ist, die bisher einem aufdringlicheren Keyloger fehlte. Die plattformübergreifende und XML / HTML-Ausgabe ist ein Segen. Das einzige, was fehlt, ist die Unterstützung von Bigramm / Digramm (Reihenfolge zweier benachbarter Elemente). Begründung: Im Englischen ist "er" und "th" nicht nur gemeinsam, sondern auch in vielen Programmiersprachen (wie C ++, JavaScript, CSS). "**; ENTER **" werden * sehr * oft zusammen geschrieben. Wenn also ein WhatPulse-Klon vorhanden ist, der dies zulässt, wäre das am besten. In der Zwischenzeit werde ich einen Vorschlag in ihrem Forum posten. tomByrer vor 12 Jahren 0
@tomBryer hat versucht, die Antwort für Sie zu aktualisieren, hoffe es hilft .. und beachten Sie, ich konnte es nur dazu bringen, dass es in FF funktioniert, nicht in IE oder Chrome .. nicht sicher, warum. cutrightjm vor 12 Jahren 1
Ja, das ist in mancher Hinsicht hilfreich! Quellcode: "'Leider funktioniert diese App nicht im IE, sry.'"; IE hat manchmal eine seltsame JS-Syntax. tomByrer vor 12 Jahren 0