Frage Ein ideales Tastaturlayout zum Programmieren [geschlossen]


Ich höre oft Beschwerden darüber, dass Programmiersprachen, die sich der Kürze halber stark mit Symbolen beschäftigen, insbesondere C und C ++ (ich werde APL nicht berühren), schwer zu tippen sind, da sie häufig die Umschalttaste verwenden müssen. Vor ein oder zwei Jahren war ich selbst müde davon und habe Microsofts heruntergeladen Tastaturlayout-ErstellerIch habe ein paar Änderungen an meinem Layout vorgenommen und habe nicht ein einziges Mal zurückgeschaut. Der Geschwindigkeitsunterschied ist erstaunlich; Mit diesen wenigen einfachen Änderungen bin ich in der Lage, C ++ - Code um etwa 30% schneller zu schreiben, je nachdem, wie haarig es ist. Das Beste von allem, meine Tippgeschwindigkeit in normalen Lauftext ist nicht gefährdet.

Meine Fragen sind: Welche alternativen Tastaturlayouts gab es für die Programmierung, die an Popularität gewonnen haben, welche sind noch in moderner Verwendung, verwenden Sie persönlich ein verändertes Layout und wie kann mein Layout weiter optimiert werden?

Ich habe die folgenden Änderungen an einem Standard-QWERTY-Layout vorgenommen. (Ich benutze es nicht Dvorak, aber da ist ein Programmierer Dvorak Layout erwähnenswert.)

  • Vertausche Zahlen mit Symbolen in der oberen Reihe, weil lange oder wiederholte Literalzahlen typischerweise durch benannte Konstanten ersetzt werden;
  • Backquote mit Tilde tauschen, weil Backquotes in vielen Sprachen selten sind, aber Destruktoren in C ++ üblich sind;
  • Tausche Minus mit Unterstrich, weil Unterstriche in Bezeichnern üblich sind;
  • Tausch geschweifte Klammern mit eckigen Klammern, weil Blöcke häufiger vorkommen als Indizes; und
  • Swap-Double-Quote mit einem einzigen Zitat, weil Zeichenfolgen häufiger vorkommen als Zeichenliterale.

Ich vermute, dass dieses letztere wahrscheinlich das kontroverseste sein wird, da es den Lauftext am meisten stört, indem es die Verwendung von Shift erfordert, um allgemeine Kontraktionen einzugeben. Dieses Layout hat meine Tippgeschwindigkeit in C ++, C, Java und Perl deutlich erhöht und in LISP und Python etwas erhöht.


76
2018-02-21 15:57


Ursprung


Antworten:


Ich bin immer noch der Meinung, dass die Tippgeschwindigkeit nicht der Hauptfaktor für die Zeit ist, die für ein Projekt benötigt wird. Wenn dies der Fall ist, gibt es ein großes Problem (Wochen des Codierens erspart uns Stunden der Planung).

In Bezug auf Ihre Frage bevorzuge ich das Standard-Layout, da es bedeutet, dass ich nicht die ersten 10 Minuten damit verbringen muss, blöd auszusehen, wenn es mit einem Standard-Tastaturlayout präsentiert wird.

Einige der von Ihnen vorgeschlagenen Ersatzteile, z.B. Die obere Reihe mit den Sonderzeichen macht keinen Unterschied, da sich der Außenfinger auf der anderen Seite gleichzeitig bewegen sollte.

IMHO Eine Sache, die oben genannten Verkettungen von Layouts hilft, ist die Verwendung von Tastaturkürzeln. Vim und Emacs werden empfohlen. Es macht das Bewegen von Text viel schneller.


33



Ich würde Ihre Frage auf folgende Weise angehen. Die Aufgabe besteht darin, eine Tastatur so zu organisieren, dass Schlüsselstriche und Handbewegungen für den gegebenen Text minimiert werden.

Schritte zu einer möglichen Lösung. Mach ein Programm, das:

  1. Nimmt eine Textdatei mit Quellcode. (Je größer, desto besser und aus verschiedenen Quellen!)
  2. Zählt die Häufigkeit der Verwendung jedes Symbols (seine Anwesenheit im Text).
  3. (optional) Basierend auf Schritt 2: Das Programm generiert für jedes Symbol die Anzahl der Tastenschläge und wie weit die Hand von der Mittelposition entfernt sein muss. Als Ergebnis erhalten Sie eine Messung, wie effektiv Ihr Tastaturlayout ist.

Jetzt manuell oder durch Schreiben eines Programms Definieren Sie Ihr Layout auf folgende Weise neu. Setzen Sie das am häufigsten verwendete Symbol in eine zentrale Position, die näher an Ihrer starken Hand liegt. Das zweite Symbol geht an Ihre schwache Hand in zentraler Position. Das dritte Symbol geht auf deine starke Hand zurück ... und so weiter. Dann bewegen Sie sich allmählich von der zentralen Position der Hände in "entferntere" Bereiche der Tastatur. Wenn alle Tastaturen voll sind, fahren Sie mit der Zuweisung der Tasten fort, diesmal jedoch mit gedrückter Umschalttaste. Der andere Unterschied wäre, dass Sie keine starke und schwache Hand für jedes Symbol drehen, wenn die Verschiebung unten ist. Mit der Shift-Taste zuerst würden Sie zentrale Positionen auf der Tastatur ausfüllen und dann zu weiter entfernten Positionen bewegen.

Wenn Sie alles tun, führen Sie Schritt 3 erneut für das neue Layout durch, um zu sehen, wie das Layout verbessert wurde.

Möglicherweise müssen Sie Ihre Tastatur immer bei sich tragen. Auf der hellen Seite wird niemand Ihren Computer berühren. Es wird dich wie ein Profi aussehen lassen.

Vergessen Sie nicht, Ihre Ergebnisse zu teilen.


13



Machen Sie einen einfachen Keylogger und zählen Sie, wie oft jede Taste gedrückt wird. Führen Sie es für einen oder zwei Tage aus und speichern Sie die Ausgabe in einer Textdatei. Mach das immer und immer wieder. Es spielt keine Rolle, welches Layout Sie verwenden, da Sie nur sehen, welche Tasten am häufigsten verwendet werden.

Wenn Sie ein gutes Layout erstellen möchten, können Sie keine Angst haben, von der Norm wegzugehen. Ich würde vorschlagen, die obersten 11 Schlüssel entlang der Home-Reihe, dann die nächsten oberen 11 Schlüssel als oberste Reihe (lassen Sie die 2 Schlüssel über die Return-Taste als die am wenigsten verwendeten Schlüssel), dann die 3. oberen 11 Tasten als untere Reihe . Es sollten jetzt 4 Schlüssel übrig sein. Nehmen Sie diese und legen Sie sie in die Slots "=" und "\". Glückwunsch! Sie haben jetzt ein tolles Tastaturlayout für Ihre Zwecke erstellt! = D


10



Insgesamt denke ich, einen guten Texteditor zu haben und zu wissen, wie man ihn benutzt, ist besser als zu versuchen, die Tippgeschwindigkeit zu verbessern. Die Fähigkeit, Makros aufzunehmen und wiederzugeben, ist manchmal ein Lebensretter, und eine Auswahl von Shortcut-zugewiesenen Code-Snippets kann nützlich sein, da normalerweise Beschränkungen in der Sprache für das sind, was in eine Bibliothek umgewandelt werden kann.

Allgemeiner denke ich, dass es bei den echten Produktivitätssteigern alles um Wissen geht ...

  • Wissen, welche Tools und Bibliotheken verfügbar sind und wie sie verwendet werden.
  • Kenne die Gesamtstruktur des Codes, an dem du arbeitest, nicht nur dein kleines bisschen.
  • Schlüsselalgorithmen, Entwurfsmuster und Idiome kennen, damit Sie sie nicht neu erfinden müssen.
  • Die Regeln so gut kennen, dass Sie flexibel sein können - Sie wissen, wann Sie sie brechen müssen.
  • Deine Mitarbeiter kennen lernen und ihre Stärken, Schwächen etc. kennen - also wissen, wann man selbst etwas herausfinden kann, aber auch wann und wen man fragt.

FWIW, ich behaupte nicht, dass ich stark bin. Ich war immer zu voreingenommen, um Probleme selbst zu lösen, und mit einer zu starken Tendenz, das Rad und die großen architektonischen Pläne neu zu erfinden.

Wie auch immer, ich habe nur den Verdacht, dass die Zeit, die ich damit verbrachte, Tastaturlayouts zu ändern und zu lernen, eine Ablenkung von wichtigeren Themen darstellt.


9



Ich spiele gerade mit einer Variante des Colemak-Layouts mit starken Symbolwechseln:

ohne UMSCHALT:

`- {} []; <> () _ =
 q w f p g j l u y * / # \
a r s t d h n e i o '
z x c v b k m,. !

mit UMSCHALT:

~ 1 2 3 4 5 6 7 8 9 0 & +
Q W F P J L U Y @ ^ $ |
A R S T D H N E I O "
Z X C V B K M%:?

Vielleicht stelle ich den / Schlüssel wieder her ...

Aber das basiert nicht auf fundierter Forschung, und ich würde auch gerne sehen, dass ein Layout optimiert ist (Optimierung einschließlich Dinge wie Handänderung etc., auch ZXCV-Erhaltung, ...) mit einem Quellcode-basierten Korpus, weil all diese Layouts scheinen nur für Prosa optimiert sein. Zum Beispiel ist 'f' ein sehr gebräuchlicher Buchstabe in C (if, for).

Update: Ich verwende derzeit

`- {} [] @ <> () _ =
q w k r g y u l p *; #
a s f t d h n e i o '\
\ z x c v b j m,. /

mit UMSCHALT:

~ 1 2 3 4 5 6 7 8 9 0 ^ +
Q W K R G Y U L P &! $
A S F T D H N E I O | |
| Z X C V B J M%:?

Dies basiert auf einer 6-Key-Swap-Teiloptimierung aus Carpalx unter Beibehaltung der üblichen Ausschneiden / Kopieren / Einfügen / Rückgängig-Verknüpfungen und geändert, um einen besseren Zugriff auf die üblichen Programmierzeichen zu geben.


9



Das Ändern des Tastaturlayouts ist eine schlechte Idee, da es (vielleicht) Ihre Tippgeschwindigkeit auf einer Tastatur erhöht, aber Ihre Tippgeschwindigkeit auf anderen Tastaturen oder auf Computern, auf denen Sie kein spezielles Tastaturlayout haben, stark beeinträchtigt. Ich habe festgestellt, dass es oft besser ist, sich an die Vorgaben anzupassen, dass man sie überall ändern muss. (Persönlich sind meine Finger stark Emacs-voreingenommen, was überall sonst zu Schreibreizen führt.)


-4