78 votes

Une disposition de clavier idéale pour la programmation

Souvent, j'entends des plaintes que les langages de programmation qui font de l'utilisation lourde de symboles pour des raisons de concision, notamment le C et le C++ (je ne vais pas toucher l'APL), sont difficiles à saisir car ils nécessitent l'utilisation fréquente de la touche maj. A un an ou deux, je suis fatigué de moi-même, téléchargé Microsoft Keyboard Layout Creator, fait quelques modifications à ma disposition, et n'avons jamais regardé en arrière. La différence de vitesse est étonnant; avec ces quelques changements simples, je suis capable de taper de code C++ autour de 30% plus rapide, en fonction des cours sur la façon poilu c'est le meilleur de tous, ma vitesse de frappe dans le fonctionnement normales de texte n'est pas compromise.

Mes questions sont les suivantes: quelle alternative dispositions de clavier ont existé pour la programmation, qui ont gagné en popularité, sont encore en usage moderne, avez-vous personnellement utiliser toute altération de la mise en page, et comment faire pour que ma mise en page plus optimisée?

J'ai fait les modifications suivantes à une disposition AZERTY standard. (Je n'utilise pas de Dvorak, mais il y a un programmeur Dvorak mise en page digne de mention.)

  • Swap nombre de symboles dans la rangée du haut, en raison des longues ou répétées littérale des nombres sont généralement remplacé avec de l'nommé constantes;
  • Swap backquote avec un tilde, parce que les backquotes sont rares dans de nombreuses langues, mais les destructeurs sont courantes en C++;
  • Swap moins avec un trait de soulignement, en raison des traits de soulignement sont communs dans les identificateurs;
  • Swap des accolades avec des crochets, parce que les blocs sont plus courantes que les indices; et
  • Swap double d'un devis de devis unique, parce que les cordes sont plus courantes que les chaînes de caractères.

Je soupçonne ce dernier est probablement va être le plus controversé, car il interfère plus avec l'exécution de texte en exigeant l'utilisation de passage à type de contractions. Cette disposition a considérablement augmenté ma vitesse de frappe en C++, C, Java et Perl, et quelque peu augmenté en LISP et Python.

31voto

Yacoby Points 29771

Je maintiens que la vitesse de frappe n'est pas le principal facteur dans le temps qu'il faut pour qu'un projet soit terminé. Si elle l'est, il y a un gros problème (des Semaines de codage nous fait gagner des heures de planification).

Concernant votre question, je préfère utiliser la mise en page standard, car cela signifie que je n'ai pas à passer les 10 premières minutes, l'air stupide quand il est présenté avec un clavier standard.

Certains des remplacements vous l'avez suggéré, par exemple, la ligne du haut avec les caractères spéciaux ne fait pas une once de différence que de l'extérieur doigt de l'autre main doit passer à la maj en même temps.

À mon humble avis Une chose qui aide ci-dessus le chaînage de mises en page en utilisant uniquement les raccourcis clavier. Vim et Emacs sont recommandés. Il permet de déplacer le texte autour de beaucoup plus rapide.

15voto

Ge Spi Points 1

Je l'approche de votre question de la manière suivante. La tâche est d'organiser un clavier de manière à réduire au minimum les touches et les mouvements de la main pour un texte donné.

Les étapes vers une solution possible. Faire un programme qui:

  1. Prend un fichier texte avec le code source. (Plus le meilleur et provenant de diverses sources!)
  2. Compte de la fréquence d'utilisation de chaque symbole (sa présence dans le texte).
  3. (en option) en Fonction de l'étape 2: Le programme génère des clés nombre de traits pour chaque symbole de plus de la façon dont la mesure a la main pour aller de la position centrale. En conséquence, vous ne mesurez l'efficacité de votre clavier.

Maintenant, manuellement ou par l'écriture d'un programme de Redéfinir votre mise en page de la manière suivante. Mettre les plus fréquemment utilisés symbole dans une position centrale, près de votre main forte. Le deuxième symbole est à votre main faible en position centrale. Le troisième symbole remonte à votre main forte...et ainsi de suite. Puis progressivement passer de la position centrale de la les mains dans les plus "éloignés" des zones du clavier. Lorsque tous les clavier est plein, puis vous continuez le processus d'affectation des touches, mais cette fois avec la touche Shift enfoncée. L'autre différence serait que vous ne tourne pas fort et faible à la main pour chaque symbole lorsque le déplacement est vers le bas. Avec la touche maj enfoncée tout d'abord vous devez remplir dans le centre de positions sur le clavier et passer ensuite à la plus éloignée des positions.

Quand vous faites tout ce que l'exécution de l'étape 3 de nouveau pour la nouvelle mise en page pour voir comment la mise en page a été améliorée.

Vous pourriez avoir à porter vos clavier avec vous en tout temps. Sur le côté positif, personne ne touchera à votre ordinateur. Il va vous faire ressembler à un Pro.

Enfin, n'oubliez pas de partager vos résultats.

12voto

Jan Points 1

Je suis en train de jouer avec une variante de la Colemak mise en page en ce moment avec de lourdes modifications de symboles:

sans MAJ:

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

avec la MAJ:

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

Peut-être que je vais restaurer la touche / ...

Mais ce n'est fondée sur aucune recherche du son, et j'aimerais également voir une mise en page optimisée (Optimisation, y compris des choses comme la main de l'altération etc, aussi ZXCV de conservation, ...) avec un code source base de corpus, parce que toutes ces dispositions semblent être optimisé pour la prose. Par exemple, 'f' est un très commun de la lettre C (si,).

Mise à jour: je suis actuellement à l'aide

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

avec la MAJ:

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

Ceci est basé sur un 6-clés-swap partielle de l'optimisation des prises de Carpalx avec la préservation de l'habitude de Couper/Copier/Coller/Annuler les raccourcis et modifiée pour donner un meilleur accès à l'habitude de la programmation des personnages.

11voto

Tgwizman Points 503

Faire un simple enregistreur de frappe, puis de compter le nombre de fois que chaque touche est pressée. Courir pour un jour ou deux, puis enregistrer la sortie dans un fichier texte. Faites cela à chaque fois. Il n'a pas d'importance ce que la disposition que vous utilisez, que vous êtes juste de voir quelles sont les touches qui sont les plus utilisés.

Si vous voulez faire une bonne mise en page, vous ne pouvez pas avoir peur d'aller à l'écart de la norme. Je te suggère de mettre le top 11 des clés le long de la ligne de départ, alors la prochaine top 11 des touches de la rangée du haut (de laisser les 2 touches au-dessus de la touche de retour comme les moins utilisés de touches), puis la 3ème top 11 des touches de la rangée du bas. Il devrait y avoir plus de 4 touches à gauche maintenant. Prendre à ceux-ci et les mettre dans l' -= et ]\ fentes. Bravo! Vous avez maintenant un grand clavier pour vos fins! =D

9voto

Steve314 Points 12599

Dans l'ensemble, je pense avoir un bon éditeur de texte et savoir comment l'utiliser c'est mieux que d'essayer d'améliorer votre vitesse de frappe. Le fait de pouvoir enregistrer et de rejouer des macros est parfois une bouée de sauvetage, et une sélection de raccourci attribué des extraits de code peut être très pratique, car il y a normalement de la langue imposé des limites sur ce qui peut être transformée en une bibliothèque.

Plus généralement, je pense que la véritable productivité amplificateurs sont tout au sujet de la connaissance...

  • En sachant quels sont les outils et les bibliothèques sont disponibles et comment les utiliser.
  • Connaître la structure générale du code sur lequel vous travaillez, non seulement votre peu.
  • Sachant algorithmes de clé, les patrons et les idiomes de sorte que vous n'avez pas à réinventer.
  • Connaître les règles bien assez que vous pouvez être flexible, vous savez quand vous les briser.
  • Sachant que votre co-travailleurs et de leurs forces, les faiblesses, etc - c'est à dire de savoir quand la figure de quelque chose de vous-même, mais aussi quand et à qui demander.

FWIW, je ne prétends pas être fort sur tous ceux. J'ai toujours été trop sollicité vers la résolution de problèmes moi-même, et avec une trop forte tendance à réinventer la roue et le grand architectural régimes.

De toute façon, je n'ai que cette suspicion que le temps d'échange et d'apprentissage, les dispositions de clavier serait une distraction de questions plus importantes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X