Recherche:Agencement de clavier axé sur une proximité des homologies fonctionnelles à destination d’un logiciel d’édition modal
L’objectif de ce projet est d’aboutir à :
- une spécification d’agencement de clavier conforme au titre du projet, dont une explication plus en détail sera également fourni ;
- fournir des fichiers de configuration et autres outils permettant d’utiliser l’agencement proposé.
Note: certains glyphes sur cette page nécessitent une installation de font non-présente de base sur tous les systèmes, par exemple les symboles de signe de Sutton pour lesquels il est possible d’installer des fonts spécifiques.
Contexte
[modifier | modifier le wikicode]Ce projet part du constat que, dans Vim, en dehors des déplacements monocaractères de base[notes 1], l’agencement du clavier n’est pas optimisé pour offrir une congruence entre positionnement spatiale et proximité fonctionnelle des touches. C’est le plus souvent des considérations de moyen mnémotechnique reposant sur les initiales de mots anglais qui a conduit aux choix opérés. Bien que ce choix puisse se justifier sur un plan pragmatique historique, il ne résulte clairement pas d’une analyse systémique visant une congruence spatiale du positionnement des commandes. Une telle approche peut souvent apporter un gain tant en termes de facilité d'apprentissage, en tirant partie de la mémoire spatiale des individus, que de l'efficacité des saisies, comme l’atteste les études sur les agencements de clavier optimisés pour la saisie tel le Dvorak ou le Bépo.
Vers une typologie des actions d’un éditeur modal
[modifier | modifier le wikicode]En excluant les touches de fonction et autres touches spécifiques comme le pavé numérique, un clavier qwerty classique dispose de 47 touches de caractère utilisés par vim. Avec la touche majuscule, cela porte à 94 le nombre d’actions accessibles dans le mode normal. En ajoutant la touche contrôle, cela pourrait potentiellement représenter 141 actions directement accessibles, bien que dans les fait de multiples touches sont déjà souvent déjà occupé du fait d’autres considérations[2]. De même les combinaisons <contôle-majuscule-caractère> sont souvent inopérantes, sans quoi cela porterait à 188 le total d’action directement atteignable depuis un seul mode.
Une première typologie de l’utilisation faite par Vim de chaque touche permet de les classer₀ ainsi :
- 42 actions de déplacement
- 30 commandes
- dont N₀ modifiant le mode courant, parmi lesquels
- N₁ restant en mode normal
- 11 bascules en mode insertion
- N₂ bascules en mode ex
- 1 bascule en mode remplacement
- dont N₀ modifiant le mode courant, parmi lesquels
- 10 opérateurs, pouvant être éventuellement modulés par des opérandes
- 4 actions spéciales qui requièrent une séquence complémentaire.
Symbolisation des catégories utiles à l'informatique
[modifier | modifier le wikicode]En vue d'associer les différents types de catégorie qui sont pertinentes dans le cadre de développements informatiques où Vim est fort utilisé, cette section propose un tour d’horizon des symboles d’Unicode potentiellement pertinent pour symboliser des thèmes courant dans les métiers de l’informatique.
Catégorie | Sous-catégorie | Symboles | Description | Suggestions d’usages possibles |
---|---|---|---|---|
recherche | 🔬 | microscope | recherche d'un élément atomique, tel un bit, ou qui requiert une attention minutieuse | |
🔍 🔎 | loupe | recherche d'élément d'un élément dont la détection demande une attention soutenue | ||
👓 Eyeglasses
|
lunettes | recherche d'élément d'un élément dont la détection demande une attention accentué | ||
⏿👁👀 | œil | recherche sur un élément « visible à l’œil nu », comme un caractère | ||
Ⱅ ⱅ Ⰴ 🜽 | divers | symbolisation d’une paire de jumelles | ||
longue vue | ||||
🔭 | téléscope | |||
📡 | antenne satellite | |||
🛰 | satellite | |||
🔮 | boule de crystal | |||
enregistrement | élément de stockage | 🎞 | péllicule | |
📼 | cassette vidéo | |||
💾🖫🖬🖪 | disquette magnétique | |||
🖭 | cartouche de bande magnétique | |||
🖴 | disque dur | |||
capture | 🎥 | caméra de cinéma | ||
📹 | caméra d'appoint | |||
📷 📸 | appareil photo | |||
⌕ | magnétophone | |||
🎙 | micro de studio | |||
restitution | 📽 | projecteur cinématographique | ||
📺 | télévision | |||
✇ | lecteur de bande | |||
📻 | radio | |||
📾 | radio portable, lecteure phonographe | |||
duplex | 📞✆🖀☎☏🕿🕻🕽📱📲🖁🖀℡ | téléphone | ||
marqueur | désignatif | 📍 | ||
📌 | ||||
🧷 | ||||
🏷 | ||||
📑 | ||||
🔖 | ||||
⛳ | ||||
nominatif | 📛 | |||
destruction | ustensile | 🔨 | ||
🗡 | ||||
⛏ | ||||
⚔ | ||||
🔫 | ||||
🧨 | ||||
💣 | ||||
destination | 🗑 | corbeille | ||
🚽 | Toilettes | flush | ||
🕳 | trou | mettre au trou, supprimer et possiblement resortir plus tard, ou à l'inverse, tel un trou noir, disparition irrémédiale détruisant l'information correspondante à tout jamais | ||
réplication | copie | 🧽 | éponge | copier, au sens absorber un contenu pour le restituer ultérieurement |
📷 📸 | appareil photo | au sens prendre un instantané, symbolisation analogique déjà courante dans le cas de la capture d’écran | ||
découpage | ✂✄✁✀✃ | ciseaux | couper avec fine précision | |
🔪 | couteau de cuisine | couper de gros morceaux | ||
collage | 📎 | trombone | ||
🖇 | trombones liés | |||
📋 | presse-paier | |||
🐾 | tampon/empreinte | |||
💋 | marque | |||
🖶⎙🖨 | imprimante | |||
stockage | 🏺 | Amphora -> stocker un flux | ||
🧺 | Basket | |||
⚰️ | Coffin | |||
⚱ | Funeral Urn | |||
🥡 | Takeout Box | |||
🥤 | Cup With Straw | |||
🥛 | glass of milk | |||
🥫 | canned food | |||
🧂 | Salt Shaker | |||
💾 | Floppy Disk | |||
💿 | Optical Disk | |||
📀 | DVD | |||
🗃 | Card File Box | |||
🗄 | File Cabinet | |||
💼 | Briefcase | |||
👛 | Purse | |||
👜 | Handbag | |||
👝 | Clutch Bag | |||
🎒 | Backpack | |||
🎁 | Wrapped Gift | |||
🧳 | Luggage | |||
🛍 | Shopping Bags | |||
🧧 | Red Envelope | |||
📦 | Package | |||
✉ | Envelope | |||
📧 | ||||
📩 | Envelope With Arrow | |||
📤 | Outbox Tray | |||
📥 | Inbox Tray | |||
📦 | Package | |||
📫 | Closed Mailbox With Raised Flag | |||
📪 | Closed Mailbox With Lowered Flag | |||
📬 | Open Mailbox With Raised Flag | |||
📭 | Open Mailbox With Lowered Flag | |||
📮 | Postbox | |||
🗳 | Ballot Box With Ballot | |||
🛄 | Baggage Claim | |||
🛅 | Left Luggage | |||
🧳 | luggage | |||
navigation | ||||
🧭 | Compass -> navigation ou point de repère dans la navigation | |||
⌖ | position indicator | |||
⌘ | position of interest | |||
🎯 | target | |||
📍 | pin point | |||
⚓ | Anchor | |||
✈ | Airplane | |||
🛩 | Small Airplane | |||
🛫 | Airplane Departure | |||
🛬 | Airplane Arrival | |||
🚀 | Rocket | |||
🛸 | Flying Saucer | |||
sélection | 🥢 | baguettes (couverts asiatiques) | Par son caractère évocateur de la saisie d’une portion | |
⬚ | carré aux côté dessinés en pointillés | Par analogie avec le sélection par dessin d’un rectangle autour des éléments visé dans de nombreuses interfaces graphiques | ||
⠫ | motif braille 246 | Par analogie avec le fait de ne retenir que certains points parmi un ensemble donné pour aboutir à l’ensemble visé. | ||
filtrage | Ɏ🝖Ⰹ🢗⃒
⛉ ⚶ ▼⏷▾⯆🞃🢗▽▿
|
(divers) | Ressemble vaguement au profile d’une passoire, abondamment employé comme symbole de filtrage. À noter que les triangles isolés, sans barre prolongeant la pointe du dessous sont le plus souvent utilisé pour représenter l’ordonnancement d’une colonne de données. | |
🕸 | toile d'araigné | Au sens d’un outil servant à capturer certains éléments ciblés, en laissant passer la majorité des flux non attendus. | ||
🥅 | filet de but | |||
⩩ ▦ ❅ | divers | Pour symboliser un maillage,avec la même sémantique analogique que ci-dessus. | ||
transport | véhicule | 🚛 | véhicule articulé, semi-remorque | |
matériel | 🖲 | trackball | ||
opération liée à de la navigation | 🧭 | boussole | navigation ou point de repère dans la navigation | |
⌖ | indicateur de position | |||
⌘ | position intéressante | |||
🎯🞋🞜🞖 | cible | objectif, but | ||
📍 | pin point | point ou lieu précis | ||
⚓ | Anchor | |||
✈ | Airplane | |||
🛩 | Small Airplane | |||
🛫 | Airplane Departure | |||
🛬 | Airplane Arrival | |||
🚀 | Rocket | |||
🛸 | Flying Saucer |
| ||
⎗ | previous page | |||
⬆ | Up Arrow | |||
↗ | Up-Right Arrow | |||
➡ | Right Arrow | |||
↘ | Down-Right Arrow | |||
⬇ | Down Arrow | |||
↙ | Down-Left Arrow | |||
⬅ | Left Arrow | |||
↖ | Up-Left Arrow | |||
↕ | Up-Down Arrow | |||
↔ | Left-Right Arrow | |||
↩ | Right Arrow Curving Left | |||
↪ | Left Arrow Curving Right | |||
⤴ | Right Arrow Curving Up | |||
⤵ | Right Arrow Curving Down | |||
🔃 | Clockwise Vertical Arrows | |||
🔄 | Counterclockwise Arrows Button | |||
🔙 | Back Arrow | |||
🔚 | End Arrow | |||
🔛 | On! Arrow | |||
🔜 | Soon Arrow | |||
🔝 | Top Arrow | |||
opération liée à une construction | 🧱 | Brick -> faire référence à un morceau d'une construction | ||
🏗 | Building Construction | |||
🔗 | Link | |||
⛓ | Chains | |||
🧰 | Toolbox | |||
⚒ | Hammer and Pick | |||
🛠 | Hammer and Wrench | |||
🔧 | Wrench | |||
🔩 | Nut and Bolt | |||
⚙ | Gear | |||
🗜 | Clamp | |||
🧬 | DNA | |||
👷 | Construction Worker | |||
🏭 | Factory | |||
🚧 | Construction | |||
⛲ | Fountain -> source code | |||
envoie de message/notification/communication/signal | signalitique | ℹ | Information | |
outil auxiliaire | 🛎 | Bellhop Bell -> notifier | ||
📢 | Loudspeaker | |||
📣 | Megaphone | |||
📯 | Postal Horn | |||
🔔 | Bell | |||
💡 | Light Bulb -> notfier | |||
Phylactère | 👁️🗨️ | Eye in Speech Bubble | ||
💬 | Speech Balloon | |||
🗯 | Right Anger Bubble | |||
💭 | Thought Balloon | |||
🕯 | Candle | |||
🔦 | Flashlight | |||
🏮 | Red Paper Lantern | |||
📻 | Radio -> communication longue distance | |||
📱 | Mobile Phone | |||
📲 | Mobile Phone With Arrow | |||
☎ | Telephone | |||
📞 | Telephone Receiver | |||
📟 | Pager | |||
📠 | Fax Machine | |||
📡 | Satellite Antenna | |||
🎐 | Wind Chime | |||
🗣 | Speaking Head | |||
courier | ||||
🧾 | Receipt | |||
✉ | Envelope | |||
📧 | ||||
📨 | Incoming Envelope | |||
📩 | Envelope With Arrow | |||
📤 | Outbox Tray | |||
📥 | Inbox Tray | |||
📦 | Package | |||
📫 | Closed Mailbox With Raised Flag | |||
📪 | Closed Mailbox With Lowered Flag | |||
📬 | Open Mailbox With Raised Flag | |||
📭 | Open Mailbox With Lowered Flag | |||
📮 | Postbox | |||
🗳 | Ballot Box With Ballot | |||
🧧 | Red Envelope | |||
expression gestuel des mains | ||||
chirologique | 👋 | Waving Hand | ||
🤚 | Raised Back of Hand | |||
🖐 | Hand With Fingers Splayed | |||
✋ | Raised Hand | |||
🖖 | Vulcan Salute | |||
👌 | OK Hand | |||
✌ | Victory Hand | |||
🤞 | Crossed Fingers | |||
🤟 | Love-You Gesture | |||
🤘 | Sign of the Horns | |||
🤙 | Call Me Hand | |||
👈 | Backhand Index Pointing Left | |||
👉 | Backhand Index Pointing Right | |||
👆 | Backhand Index Pointing Up | |||
🖕 | Middle Finger | |||
👇 | Backhand Index Pointing Down | |||
☝ | Index Pointing Up | |||
👍 | Thumbs Up | |||
👎 | Thumbs Down | |||
✊ | Raised Fist | |||
👊 | Oncoming Fist | |||
🤛 | Left-Facing Fist | |||
🤜 | Right-Facing Fist | |||
👏 | Clapping Hands | |||
🙌 | Raising Hands | |||
👐 | Open Hands | |||
🤲 | Palms Up Together | |||
🤝 | Handshake | |||
🙏 | Folded Hands | |||
mesure | 🌡 | Thermometer -> mesurer qqc | ||
📏 | Straight Ruler | |||
📐 | Triangular Ruler | |||
⚖ | Balance Scale | |||
⌛ | Hourglass Done | |||
⏳ | Hourglass Not Done | |||
⌚ | Watch | |||
⏰ | Alarm Clock | |||
⏱ | Stopwatch | |||
⏲ | Timer Clock | |||
🕰 | Mantelpiece Clock | |||
paramétrage et contrôle | 🎛 | Control Knobs -> opération hautement paramétrable | ||
🎚 | Level Slider -> opération paramétrable par un unique entier | |||
⚒ | Hammer and Pick | |||
🛠 | Hammer and Wrench | |||
🔧 | Wrench | |||
🔩 | Nut and Bolt | |||
⚙ | Gear | |||
🗜 | Clamp | |||
🛑 | Stop Sign | |||
🔈 | Speaker Low Volume | |||
🔉 | Speaker Medium Volume | |||
🔊 | Speaker High Volume | |||
🔕 | Bell With Slash | |||
🔀 | Shuffle Tracks Button | |||
🔁 | Repeat Button | |||
🔂 | Repeat Single Button | |||
▶ | Play Button | |||
⏩ | Fast-Forward Button | |||
◀ | Reverse Button | |||
⏪ | Fast Reverse Button | |||
🔼 | Upwards Button | |||
⏫ | Fast Up Button | |||
🔽 | Downwards Button | |||
⏬ | Fast Down Button | |||
⏹ | Stop Button | |||
⏏ | Eject Button | |||
🎦 | Cinema | |||
🔅 | Dim Button | |||
🔆 | Bright Button | |||
♻ | Recycling Symbol | |||
édition: | ✏ | Pencil | ||
✒ | Black Nib | |||
🖋 | Fountain Pen | |||
🖊 | Pen | |||
🖌 | Paintbrush | |||
🖍 | Crayon | |||
📝 | Memo | |||
⌨ | Keyboard | |||
affichage | 🖨 | Printer | ||
💻 | Laptop | |||
calcul | 🖥 | Desktop Compute | ||
🧮 | Abacus | |||
bloquer/débloquer | ||||
🔒 | Locked | |||
🔓 | Unlocked | |||
🔏 | Locked With Pen | |||
🔐 | Locked With Key | |||
🔑 | Key | |||
🗝 | Old Key | |||
🚪 | Door | |||
attirance, attrait, force, énergie, puissance, valeur, dynamique, contrainte | ||||
🧲 | Magnet | |||
🔋 | Battery | |||
🔌 | Electric Plug | |||
⚡ | High Voltage | |||
test | ⚗ | Alembic | ||
🧪 | Test Tube | |||
🧫 | Petri Dish | |||
debuggage | 💉 | Syringe | ||
💊 | Pill | |||
🧯 | Fire Extinguisher | |||
nettoyage, higiène | ||||
🚿 | Shower | |||
🧴 | Lotion Bottle | |||
🧹 | Broom | |||
🧼 | Soap | |||
🧽 | Sponge | |||
🧻 | Roll of Paper | |||
🛁 | Bathtub | |||
flux | ||||
🚰 | Potable Water -> flux de données jugées intègre | |||
🎏 | Carp Streamer -> indicateur de sens du flux | |||
🎞 | Film Frames -> record | |||
🔗 | Link | |||
⛓ | Chains | |||
🔀 | croisement, interversion | |||
⭄ | ou ⭃ fusion de multiples flux | |||
⇄ | ou ⇆ swap permutation | |||
feu | 🧯 | Fire Extinguisher | ||
🚬 | Cigarette | |||
sommeille, innactivité, hibernation | ||||
💤 | Zzz | |||
🛌 | Person in Bed | |||
🛏 | Bed | |||
💫 | Dizzy | |||
structure de donnée/de processus | ||||
🖼 | Framed Picture -> buffer | |||
🧵 | Thread | |||
🧶 | Yarn | |||
🤳 | Selfie -> réflexivité | |||
💪 | Flexed Biceps | |||
🦵 | Leg | |||
🦶 | Foot | |||
👂 | Ear | |||
👃 | Nose | |||
🧠 | Brain | |||
🦷 | Tooth | |||
🦴 | Bone | |||
👀 | Eyes | |||
👁 | Eye | |||
👅 | Tongue | |||
👄 | Mouth | |||
🎲 | Game Die -> hasard | |||
🎬 | Clapper Board -> start! | |||
🏁 | Chequered Flag -> go! |
| ||
🎉 | Party Popper | |||
🎊 | Confetti Ball | |||
🎫 | Ticket | |||
internet | 🕸 | Spider Web | ||
🕷 | Spider | |||
saisie et manipulation de caractères | #️⃣ | Keycap Number Sign | ||
0️⃣ | Keycap Digit Zero | |||
1️⃣ | Keycap Digit One | |||
2️⃣ | Keycap Digit Two | |||
3️⃣ | Keycap Digit Three | |||
4️⃣ | Keycap Digit Four | |||
5️⃣ | Keycap Digit Five | |||
6️⃣ | Keycap Digit Six | |||
7️⃣ | Keycap Digit Seven | |||
8️⃣ | Keycap Digit Eight | |||
9️⃣ | Keycap Digit Nine | |||
🔟 | Keycap: 10 | |||
🔠 | Input Latin Uppercase | |||
🔡 | Input Latin Lowercase | |||
🔢 | Input Numbers | |||
🔣 | Input Symbols | |||
🔤 | Input Latin Letters | |||
gestion de projet | ||||
🎟 | Admission Tickets, 🎫 Ticket -> issue | |||
🐞 | Lady Beetle -> bug | |||
🛂 | Passport Control -> access control list | |||
🛃 | Customs | |||
⛔ | No Entry | |||
🚫 | Prohibited | |||
📅 | Calendar | |||
🗓️ | Spiral Calendar | |||
📆 | Tear-Off Calendar | |||
🏚 | Derelict House -> dette technique | |||
processus de validation et gestion de version | ||||
🆙 | Up! Button | |||
🔳 | White Square Button | |||
🔲 | Black Square Button | |||
⭕ | Hollow Red Circle | |||
✅ | Check Mark Button | |||
☑ | Check Box With Check | |||
✔ | Check Mark | |||
✖ | Multiplication Sign | |||
❌ | Cross Mark | |||
❎ | Cross Mark Button | |||
niveau d'urgence, priorité en termes de survie | ||||
❄ | Snowflake | |||
🔥 | Fire | |||
💥 | Collision | |||
🌪 | Tornado | |||
🌀 | Cyclone | |||
niveau d'importance, priorité en termes de durée nécessaire | ||||
🌫 | Fog -> aucune idée, on navigue dans le brouillard | |||
☄ | Comet -> fait en moins de deux | |||
💨 | Dashing Away | |||
🌊 | Water Wave | |||
niveau de compétence | ||||
🎓 | Graduation Cap -> just graduated | |||
👶 | Baby, 🐣 Hatching Chick, 🐤 Baby Chick, 🐥 Front-Facing Baby Chick-> junior consultant | |||
🔰 | Japanese Symbol for Beginner | |||
👔 | Necktie -> regular white colar | |||
🥼 | Lab Coat -> specialist | |||
🦅 | Eagle | |||
🕶 | Sunglasses -> « la classe internationale » | |||
👑 | Crown -> king in its domain | |||
⭐ | Star -> star internationale | |||
🦉 | Owl -> wisdom, grand sage du domaine | |||
🧙 | Mage, 🧙♂️ Man Mage, 🧙♀️ Woman Mage -> wizzard of the dark art | |||
🧞 | Genie, 🧞♂️ Man Genie, 🧞♀️ Woman Genie | |||
dangerosité, évaluation des risques, sécurité | ||||
⚠ | Warning | |||
🆘 | SOS Button | |||
👻 | Ghost -> effrayant, mais la peur doit servir à agir avec prudence, il ne faut pas la laisser tétaniser le consient | |||
☢ | Radioactive | |||
☣ | Biohazard | |||
💀 | Skull -> mortel | |||
☠ | Skull and Crossbones -> mortel | |||
🌂 | Closed Umbrella | |||
☂ | Umbrella | |||
🛡 | Shield | |||
⛑ | Rescue Worker’s Helmet | |||
🔥 | Fire | |||
💥 | Collision | |||
🌋 | Volcano | |||
é | valuation de la qualité | |||
💩 | Pile of Poo -> « c'est de la merde ! » | |||
🤡 | Clown Face -> « lol, tu plaisantes ? » | |||
👹 | Ogre -> « bouffe toutes les ressources à disposition » | |||
🧟 | Zombie, 🧟♂️ Man Zombie, 🧟♀️ Woman Zombie -> « tombe régulièrement en processus zombie » | |||
😻 | Smiling Cat With Heart-Eyes -> « j'adore » | |||
❤️ | Red Heart -> | |||
🧚 | Fairy, 🧚♂️ Man Fairy, 🧚♀️ Woman Fairy -> « magique ! » | |||
🦄 | Unicorn -> killer app | |||
cible, objectif | 🏹 | Bow and Arrow | ||
🎯 | Direct Hit | |||
divers indicateurs de direction | 🢔 🢕 🢖 🢗 |
Étude des associations de touche faites par vim
[modifier | modifier le wikicode]Pour factoriser le nombre de symboles utilisé, cette section introduit les conventions suivantes :
- symbolisation du type d’unité visé :
- ◌˙ indique que l’opération s’effectue sur un élément atomique, comme un caractère. Par exemple dans mot, les trois lettres m, o et t.
- ◌̈ indique que l’opération s’effectue sur une chaîne contiguë d’éléments atomiques ostensiblement segmentés, comme un morphème bornée par des tirets. Par exemple dans maître-mot, les deux éléments maître et mot correspondent à cette définition.
- ◌̊ indique que l’opération s’effectue sur une chaîne contiguë d’éléments atomiques, comme une lexie bornée par des blancs. Par exemple dans le fin mot de l’histoire, chacun des cinq éléments le, fin, mot, de, et l’histoire.
- ◌⃐ indique que l’opération s’effectue sur l’amont du maillage d’éléments atomiques, comme tout ce qui précède d’une ligne avant le curseur
- ◌⃑ indique que l’opération s’effectue sur l’aval du maillage d’éléments atomiques, comme le reste d’une ligne après le curseur
- ◌⃩ indique que l’opération s’effectue sur un maillage d’éléments atomiques, comme des lignes prisent sur toute leur longueur.
- ◌⃩ indique que l’opération s’effectue sur un maillage d’éléments atomiques, comme une ligne sur toute sa longueur.
- ◌̿ indique que l’opération s’effectue sur un ensemble de maillages d’éléments atomiques, comme un ensemble de lignes, un paragraphe ou une section.
- ◌̃ indique que l’opération s’effectue sur un motif spécifiant sa portée.
- ◌᪻ indique que l’opération s’effectue dans l'ensemble des élément de repliement
- ◌͛ indique que l’opération s’effectue dans l'ensemble des élément de la liste tachyple (quickfix)
- ◌͌ indique que l’opération s’effectue dans l'ensemble des élément de la liste des suggestions orthographiques
- ◌̚ indique que l’opération s’effectue dans l'ensemble des élément de la scission en fenêtres
- ◌⃰ indique que l’opération s’effectue dans l'ensemble des élément de la liste des arguments
- ◌̽ indique que l’opération s’effectue dans l'ensemble des élément de la liste des tampons
- ◌̉ indique que l’opération s’effectue dans l'ensemble des élément de la liste des tabs
- symbolisation de la destination visée du point de vue de l’unité de regroupement immédiatement supérieur :
- ◌̙ indique que l’opération s’effectue vers l’élément initial
- ◌⃮ indique que l’opération s’effectue vers l’élément précédent
- ◌⃯ indique que l’opération s’effectue vers l’élément suivant
- ◌ ͍ indique que l’opération s’effectue vers l’ensemble de l’élément présent à la position courante
- ◌̪ indique que l’opération s’effectue vers l’ensemble incluant l’élément présent à la position courante
- ◌̻ indique que l’opération s’effectue vers l’ensemble de la sélection actuelle
- ◌̘ indique que l’opération s’effectue vers l’élément final
- symbolisation du type d'action
- 🧭 navigation
- création
- ⌧ suppression
- changement de mode
Touche | Traitement effectué | Symbole |
---|---|---|
Objet transverseaux | ||
Indication de la saisie d’une chaîne indicant la portée d'une action, stipulée par des mouvements ou une subdivision du tampon, comme un caractère, une phrase un paragraphe ou une section. | ⯐ | |
Indication d'un caractère quelconque, notamment une lettre ou un chiffre | ⬚ | |
Indication d'un caractère utilisable comme indicateur de registre nommé | 🏷 | |
Indication d’un nombre paramétrant l’opérateur en cours de saisie, s’il accepte un tel paramètre | #️⃣ | |
Mode normal | ||
Portée d'une action, indiquée par des mouvements ou une subdivision du tampon. | ⯐ | |
échape | annuler la commande en cours de saisie | ❌ |
`⬚ | aller à la marque ⬚ | 📍 |
~ | permutter la casse d'un unique caractère | 🔃 ou ⛕ 🔀 |
1-9 et 0 | indiquer la valeur d'un paramètre numérique | #️⃣ |
!⯐ | filtrer par un programme externe, sur l'ensemble des lignes stipulées par le mouvement 🌠 ou sur la ligne courante sinon | 🕸 |
#️⃣ @🏷 | jouer la macro stockée dans le registre 🏷, #️⃣ ou une fois | 📽 |
#️⃣ # | rechercher la #️⃣-ième ou première occurrence du mot identique à celui sous le curseur en son amont | 🖘 |
$ | aller en fin de ligne | ⇥ |
% | sauter vers le marqueur de début/fin du block courant | ⭾ ou ⭿ ou ⇄ |
^ | aller au premier caractère non-blanc de la ligne courante | ⭰ |
& | refaire la dernière commande substitution | ♻ |
* | rechercher la #️⃣-ième ou première occurrence du mot identique à celui sous le curseur en son aval | 🖙 |
#️⃣ ( | aller au début première ou la #️⃣-ième phrase avant le curseur | 🗨 |
0 | aller en début de ligne | ⇤ |
#️⃣ ) | aller à la fin de la première ou la #️⃣-ième phrase après le curseur | 🗩 |
#️⃣ - | aller au premier caractère non-blanc de la #️⃣-ième ligne précédente | ⭶ |
#️⃣ _ | aller au premier caractère non-blanc de la #️⃣-moins-une-ième ligne suivante, où #️⃣ vaut 1 par défaut | ⭁ ou ⮒ |
= ⯐ | autoformatage sur l'ensemble des lignes stipulées par la portée de ⯐ | 🗜 |
#️⃣ + | aller au premier caractère non-blanc de la #️⃣-ième ligne suivante, où #️⃣ vaut 1 par défaut | ⭹ |
q 🏷 | Enregistre une macro dans le registre 🏷 | 📹 |
Q | Basculer vers le mode ex. | 🌩 |
#️⃣w | aller sur le premier caractère de la #️⃣-ième prochaine lexie | ⇒ ͚ |
#️⃣W | aller sur le premier caractère de la #️⃣-ième prochaine lexie précédée d'un caractère blanc | 🢥 |
#️⃣ e | aller sur le prochain caractère terminant la #️⃣-ième lexie après la position courante | 🢚 |
#️⃣ E | aller sur le prochain caractère terminant la #️⃣-ième lexie segmentée par des blancs après la position courante | ➯ |
#️⃣ r ⬚ | remplacer #️⃣ caractères par le caractère indiqué à la place de ⬚ | ⌤ ou ⎅ ou ⎀ ou |
R | passer en mode remplacement | ⑄ |
#️⃣ t ⬚ | aller juste après la #️⃣-ième précédente occurrence du caractère ⬚ | ⤟ |
#️⃣ T ⬚ | aller juste avant la #️⃣-ième prochaine occurrence du caractère ⬚ | ⤠ |
y ⯐ | copie l'ensemble des caractères stipulées par la porté de ⯐ dans un registre | 📷 |
#️⃣ Y | copie #️⃣ lignes à partir de la courante dans un registre | 📸 |
#️⃣ u | annule #️⃣ modifications atomiques | 🗙 |
U | remet la dernière ligne modifiée dans l’état où elle était avant toute modification la concernant | ❎ |
#️⃣ i | passer en mode insertion avant le caractère sous le curseur, répéter #️⃣ fois les saisies faites jusqu’au prochain passage en mode normal | ◀ |
#️⃣ I | passer en mode insertion avant le premier caractère non-blanc de la ligne courante, répéter #️⃣ fois les saisies faites jusqu’au prochain passage en mode normal | ⏪ |
#️⃣ o | créer #️⃣ copies d’une nouvelle ligne après la ligne courante en commençant à insérer au niveau d'indentation pertinent en aval de la ligne courante | 🔼 |
#️⃣ O | créer #️⃣ copies d’une nouvelle ligne avant la ligne courante en commençant à insérer au niveau d'indentation pertinent en amont de la ligne courante | 🔽 |
#️⃣ p | coller #️⃣ fois après la position courante | ⟴ |
#️⃣ P | coller #️⃣ fois avant la position courante | ⬲ |
#️⃣ { | aller au #️⃣ -ième paragraphe précédent | ⇚ |
#️⃣ } | aller au #️⃣ -ième paragraphe suivant | ⇛ |
[ ⬚ | divers (20) | |
[ CTRL+D | aller à la première occurrence d'une ligne commençant par #define, dans le fichier courant et les fichiers qu’il inclut | ⤷≝ |
[ CTRL+I | aller à la première occurrence du mot sous le curseur, dans le fichier courant et les fichiers qu’il inclut, en commençant par le fichier lui-même | |
#️⃣ [ # | aller à la #️⃣ -ième précédente occurrence innapariée de la lexie #if, #else ou #ifdef | |
[ ' | aller au premier caractère non blanc de la ligne du précédent marqueur bas de casse | |
#️⃣ [ ( | aller à la #️⃣ -ième précédente occurrence du caractère parenthèse innapariée avant le curseur | |
#️⃣ [ * | aller à la #️⃣ -ième précédente occurrence d'un commentaire C de la forme /* commentaire */ | |
#️⃣ [ / | ||
[ ` | aller au précédent marqueur bas de casse | |
[ D | lister l'ensemble des directives #define assignant une macro au mot sous le curseur, dans le fichier courant et les fichiers qu’il inclut, en commençant par le fichier lui-même | |
[ I | lister l'ensemble des occurrences du mot sous le curseur, dans le fichier courant et les fichiers qu’il inclut, en commençant par le fichier lui-même | |
[ p | colle le contenu d'un registre dans le tampon en amont du curseur en ajustant l’indentation à la ligne courante | |
[ P | ||
[ <MiddleMouse> | ||
[ s | aller au précédent mot mésorthographié | |
#️⃣ [ [ | aller au début de la #️⃣ -ième précédente section explicite | |
#️⃣ [ ] | aller au début de la #️⃣ -ième précédente section implicite | |
#️⃣ [ c | lors de l’affichage d’un différentiel entre deux fichiers, aller au #️⃣ -ième écart précédent | |
[ ⬚ | ||
[ d | montrer dans la barre d’état la première occurrence d'une ligne commençant par #define appairable au mot sous le curseur, dans le fichier courant et les fichiers qu’il inclut | |
[ f | aller au fichier dont le chemin est spécifié par le terme sous le curseur, synonyme de gf | |
[ i | montrer dans la barre d’état la première occurrence du mot sous le curseur, dans le fichier courant et les fichiers qu’il inclut, en commençant par le fichier lui-même | |
#️⃣ [ m | aller à la #️⃣ -ième précédente occurrence de début de fonction membre | |
[ z | aller au début du repliement ouvert | |
[ { | aller à la #️⃣ -ième précédente occurrence du caractère accolade innapariée avant le curseur | |
[ ⬚ | ||
] ⬚ | divers (39) | |
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
] ⬚ | ||
#️⃣ a | passer en mode insertion après le caractère sous le curseur, répéter #️⃣ fois les saisies faites jusqu’au prochain passage en mode normal | ▶ |
#️⃣ A | passer en mode insertion à la fin de la ligne, répéter #️⃣ fois les saisies faites jusqu’au prochain passage en mode normal | ⏩ |
#️⃣ s | supprime #️⃣ caractères après le curseur, les copie dans le registre ", et passe en mode insertion | ⎇ |
#️⃣ S | supprime #️⃣ lignes à partir du début de la ligne courante, les copie dans le registre ", et passe en mode insertion | ⎇̱ |
d⯐ | supprime la part du tampon courant correspondant à la portée de ⯐ et le copie dans le registre ". | ⌧ |
#️⃣ D | supprime le reste de la ligne courante après le curseur et #️⃣-moins-une lignes à partir de la la ligne courante et les copie dans le registre " | ⌦̳ |
#️⃣ f ⬚ | aller juste avant la #️⃣-ième prochaine occurrence du caractère ⬚ | ⤞ |
#️⃣ F ⬚ | aller juste après la #️⃣-ième précédente occurrence du caractère ⬚ | ⤝ |
g ⬚ | divers (65) | |
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
g | ||
gg | Aller sur le premier caractère non-blanc de la première ligne | ⬁̅ |
G | Aller sur le premier caractère non-blanc de la dernière ligne | ⬃̲ |
#️⃣ h | Aller #️⃣ caractères à gauche | ← |
H | Aller sur le premier caractère non-blanc de la première ligne affichée à l'écran | ⃗𝄙 |
#️⃣ j | Aller #️⃣ lignes plus bas, en restant si possible sur la même colonne | ↓ |
#️⃣ J | joindre les #️⃣ lignes suivantes à la ligne courante | ⫘ |
#️⃣ k | Aller #️⃣ lignes plus haut, en restant si possible sur la même colonne | ↑ |
K | Ouvrir le manuel pour la lexie sous le curseur | ⛑ |
#️⃣ l | Aller #️⃣ caractères à droite | → |
L | Aller sur le premier caractère non-blanc de la dernière ligne affichée à l'écran | ⃯𝄙 |
; | répéter la recherche de caractère dans la même direction pour trouver la prochaine occurrence sur la ligne courante | ↶̥ |
: | ouvrir un prompteur de command ex | 🗲 |
'⬚ | aller au premier caractère non blanc de la ligne avec le marqueur ⬚ | 🔖 |
"🏷 | spécifier l'utilisation du registre 🏷 pour la prochaine opération | 🗃 |
\ | divers (inutilisé par défaut) | |
#️⃣ | | aller à la collone #️⃣ | ⩩̭̌ |
z⬚ | divers (45) | |
Z⬚ | divers (2) | |
#️⃣ x | supprimer #️⃣ caractères après le curseur, copier la chaîne correspondante dans le tampon " | ⌦ |
#️⃣ X | supprimer #️⃣ caractères avant le curseur, copier la chaîne correspondante dans le tampon " | ⌫ |
c | supprimer #️⃣ caractères depuis le curseur, copier la chaîne correspondante dans le tampon ", passer en mode insertion | ⎇̱̰ |
C | supprimer le reste de la ligne après le curseur, copier la chaîne correspondante dans le tampon ", passer en mode insertion | ⎇̱˱ |
v | lancer le mode visuel, sélection par caractère | 👁̣ |
V | lancer le mode visuel, sélection par ligne | 👁̲ |
b | aller sur le premier caractère de la #️⃣-ième précédente lexie | ⇐ |
B | aller sur le premier caractère de la #️⃣-ième précédente lexie segmentée par un caractère blanc | 🢤 |
n | répéter la recherche du motif dans la même direction | ↷̰ |
N | répéter la recherche du motif dans la direction opposée | ↶̰ |
m ⬚ | positionner un marqueur désiginé par ⬚ | 🎯 |
M | Aller sur le premier caractère non-blanc de la ligne affichée au milieu de l'écran | →𝄚 |
, | répéter la recherche de caractère dans la direction opposée pour trouver la prochaine occurrence sur la ligne courante | ↷̥ |
< | désindenter | ⬱ |
. | répéter la dernière commande atomique | ♻ ou ⮔ |
> | indenter | ⇶ |
/ | spécifier un motif de chaîne à recherche en aval du curseur | 🔎 |
? | spécifier un motif de chaîne à recherche en amont du curseur | 🔍 |
Mode normal | ||
échape | passer en mode normal | ⏏ |
Analyse typologique
[modifier | modifier le wikicode]Le table de la liste des actions précédentes permet de dresser une typologie comme suit :
- annulation de commande en cours
- répétition
- de la dernière commande effectuée
- de la dernière recherche de caractère sur la ligne courante, en amont ou aval
- de la dernière recherche de motif de chaîne effecutée sur le tampon courant, en poursuivant dans le même sens ou son inverse
- de la dernière recherche de motif de chaîne effecutée sur un ensemble de fichiers, en sautant au résultat suivant ou précédent
- basculement vers un autre mode
- normal
- rédaction
- insertion
- remplacement isolé
- remplacement indéfiniment long
- exécution
- visuel
- shell (mise en sommeil du processus courant)
- navigation
- déplacement de la portion affiché à l'écran
- parmi les fenêtres de tampon
- déplacement du curseur dans le tampon courant
- déplacement par spécification d'un mouvement
- déplacement par référence à un marqueur
- déplacement par recherche d'un motif
- parmi les tampons ouverts
- parmi les arguments d’invocation
- parmi les tabulations
- parmi les résultats des retours d’une commande faisant référence à des positions dans d'autres fichiers
- tachyple (navigation rapide, quickfix list)
- toposcare (saut de lieu, location list)
- modifaction
- de la casse
- d'un nombre de caractère
- par spécification d'une portée
- d'un nombre : incrément décrément
- de l'indentation
- par spécification d'un registre à insérer
- par spécification d'un registre à utiliser comme macro
- par spécification d'une saisie
- de la casse
- paramétrage d’une opérande
- par indication d'un nombre
- par indication d’une portée
- spécifiant l'inclusion ou non des extrêmités
- spécifiant l’étendue de la cible :
- bit
- caractère
- lexie délimitée par des caractères de segmentation (ponctuation…)
- lexie délimitée par des caractères blancs
- phrase
- paragraphe
- section
Analyse de la répartition spatiale des fonctions de vim dans la disposition classique de vim
[modifier | modifier le wikicode]Cette section explore à travers des mises en avant visuelles la dispostion uselle de vim sous différents angles. Pour cela, outre l’icônographie établie précédemment, elle propose d'associer une couleur d'arrière plan et différents style de bordures à des catégories d'action.
Le tableau de légende ci-dessous explicite les associations retenus.
style="background-color: #e1f5fe; " | spécifier un déplacement curseur |
style="background-color: #b3e5fc; " | spécifier une portée |
style="background-color: #81d4fa; " | spécifier une rechercher |
style="background-color: #4fc3f7; " | spécifier un déplacement du cadre |
style="background-color: #29b6f6; " | sélection |
style="background-color: #f48fb1;" | adjoindre |
style="background-color: #9575cd; " | shell |
style="background-color: #b388ff; " | exécuter |
style="background-color: #c5e1a5; " | éditer |
style="background-color: #8bc34a;" | adjoindre |
style="background-color: #ff8a65; " | altérer |
style="background-color: #fff59d;" | supprimer et éditer |
style="background-color: #ff3d00; " | supprimer |
répétition non-altérante
{{/rep}} |
répétition d’une action potentiellement altérante
{{/redo}} |
Le tableau suivant fournie une vue d'ensemble réunissant le nom de la touche, suivi du symbole représentant l'action correspondante à son appui, et à son appui simultané avec la touche contrôle. Les touches obtenues par mise en majuscule ont été spécifiées comme des entrée à part.
touche | brut | ctrl | brut | brut | ctrl | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl | brut | brut | ctrl |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
~ |
style="background-color: #ff8a65; "| ⛕ |
! |
style="background-color: #b388ff; "| 🕸 |
@ |
style="background-color: #b388ff; "| 📽 |
# |
style="background-color: #e1f5fe; "| 🖘 |
$ |
style="background-color: #e1f5fe; "| ⇥ |
% |
style="background-color: #e1f5fe; "| ⭾ |
^ |
style="background-color: #e1f5fe; "| ⭰ |
& |
style="background-color: #b388ff; "| ♻
|
* |
style="background-color: #e1f5fe; "| 🖙 |
( |
style="background-color: #e1f5fe; "| 🗨 |
) |
style="background-color: #e1f5fe; "| 🗩 |
_ |
style="background-color: #e1f5fe; "| ⮒ |
+ |
style="background-color: #e1f5fe; "| ⭹ |
||||||||||||
` |
style="background-color: #e1f5fe; " | 📍 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
style="background-color: #e1f5fe; "| ⇤ |
- |
style="background-color: #e1f5fe; "| ⭶ |
= |
style="background-color: #ff8a65; "| 🗜 |
|||||||||||||||||||||
Q |
style="background-color: #b388ff; "|🌩 |
W |
style="background-color: #e1f5fe; "| 🢥 |
E |
style="background-color: #e1f5fe; "| ➯ |
R |
style="background-color: #ff8a65; "| ⑄ |
T |
style="background-color: #e1f5fe; "| ⤟ |
style="background-color: #f48fb1;"| Y |
📸 | U |
style="background-color: #ff8a65; "| ❎ |
I |
style="background-color: #c5e1a5; "| ⏪ |
O |
style="background-color: #c5e1a5; "| 🔽 |
P |
style="background-color: #8bc34a;"| ⬲ |
{ |
style="background-color: #e1f5fe; "| ⇚ |
} |
style="background-color: #e1f5fe; "| ⇛ |
||||||||||||||
q |
style="background-color: #f48fb1;"|📹 |
w |
style="background-color: #e1f5fe; "| ⇒ |
e |
style="background-color: #e1f5fe; "| 🢚 |
r |
style="background-color: #ff8a65; "| ⎅ |
t |
style="background-color: #e1f5fe; "| ⤠ |
y |
style="background-color: #f48fb1;"| 📷 |
u |
style="background-color: #ff8a65; "| 🗙 |
i |
style="background-color: #c5e1a5; "| ◀ |
o |
style="background-color: #c5e1a5; "| 🔼 |
p |
style="background-color: #8bc34a;"| ⟴ |
[ | ] | ||||||||||||||||
A |
style="background-color: #c5e1a5; "| ⏩ |
S |
style="background-color: #fff59d;"| ⎇̱ |
D |
style="background-color: #ff3d00; "| ⌦̳ |
F |
style="background-color: #81d4fa; "| ⤝ |
G |
style="background-color: #e1f5fe; "| ⬃̲ |
H |
style="background-color: #4fc3f7; " |⃗𝄙 |
J |
style="background-color: #ff8a65; "| ⫘ |
K | ⛑ | L |
style="background-color: #4fc3f7; " |⃯𝄙 |
: |
style="background-color: #b388ff; "| 🗲 |
" |
style="background-color: #f48fb1;"| 🗃 |
| |
style="background-color: #e1f5fe; "| ⩩̭̌ |
||||||||||||||
a |
style="background-color: #c5e1a5; " | ▶ |
s |
style="background-color: #fff59d;"| ⎇ |
d |
style="background-color: #ff3d00; "| ⌧ |
f |
style="background-color: #81d4fa; "| ⤞ |
g | h |
style="background-color: #e1f5fe; "| ← |
j |
style="background-color: #e1f5fe; "| ↓ |
k |
style="background-color: #e1f5fe; "| ↑ |
l |
style="background-color: #e1f5fe; "| → |
; |
style="background-color: #e1f5fe; "| ↶̥ |
' |
style="background-color: #f48fb1;"| 🔖 |
\ | ||||||||||||||||
Z | 🐚
˃⃢
|
X |
style="background-color: #ff3d00; "| ⌫ |
C |
style="background-color: #fff59d;" | ⎇̱˱ |
V |
style="background-color: #29b6f6; "| 👁̲ |
B |
style="background-color: #e1f5fe; "| 🢤 |
N |
style="background-color: #81d4fa; "| ↶̰
|
M |
style="background-color: #4fc3f7; "|→𝄚 |
< |
style="background-color: #ff8a65; "|⬱ |
> |
style="background-color: #ff8a65; "|⇶ |
? |
style="background-color: #81d4fa; "|🔍 |
||||||||||||||||||
z | x |
style="background-color: #ff3d00; "| ⌦ |
c |
style="background-color: #ff8a65; "| ⌦̭ |
v |
style="background-color: #29b6f6; "| 👁̣ |
style="background-color: #29b6f6; "| 👁̻ |
b |
style="background-color: #e1f5fe; "| ⇐ |
n |
style="background-color: #81d4fa; "| ↷̰
|
m |
style="background-color: #f48fb1;"| 🎯 |
, |
style="background-color: #81d4fa; "| ↷̥
|
. |
style="background-color: #b388ff; "| ⮔
|
/ |
style="background-color: #81d4fa; "| 🔎 |
⃢
Le tableau suivant reprend la disposition en ne retenant que les symboles attachés aux touches bruts.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
style="background-color: #ff8a65; " | ⛕ |
style="background-color: #b388ff; " | 🕸 |
style="background-color: #b388ff; " | 📽 |
style="background-color: #e1f5fe; " | 🖘 |
style="background-color: #e1f5fe; " | ⇥ |
style="background-color: #e1f5fe; " | ⭾ |
style="background-color: #e1f5fe; " | ⭰ |
style="background-color: #b388ff; " | ♻
|
style="background-color: #e1f5fe; " | 🖙 |
style="background-color: #e1f5fe; " | 🗨 |
style="background-color: #e1f5fe; " | 🗩 |
style="background-color: #e1f5fe; " | ⮒ |
style="background-color: #e1f5fe; " | |
style="background-color: #e1f5fe; " | 📍 |
style="background-color: #e1f5fe; " | ⇤ |
style="background-color: #e1f5fe; " | ⭶ |
style="background-color: #ff8a65; " | 🗜 | |||||||||
style="background-color: #b388ff; " |🌩 |
style="background-color: #e1f5fe; " | 🢥 |
style="background-color: #e1f5fe; " | ➯ |
style="background-color: #ff8a65; " | ⑄ |
style="background-color: #e1f5fe; " | ⤟ |
📸 |
style="background-color: #ff8a65; " | ❎ |
style="background-color: #c5e1a5; " | ⏪ |
style="background-color: #c5e1a5; " | 🔽 |
style="background-color: #8bc34a;" | ⬲ |
style="background-color: #e1f5fe; " | ⇚ |
style="background-color: #e1f5fe; " | ⇛ |
|
style="background-color: #f48fb1;" |📹 |
style="background-color: #e1f5fe; " | ⇒ |
style="background-color: #e1f5fe; " | 🢚 |
style="background-color: #ff8a65; " | ⎅ |
style="background-color: #e1f5fe; " | ⤠ |
style="background-color: #f48fb1;" | 📷 |
style="background-color: #ff8a65; " | 🗙 |
style="background-color: #c5e1a5; " | ◀ |
style="background-color: #c5e1a5; " | 🔼 |
style="background-color: #8bc34a;" | ⟴ |
|||
style="background-color: #c5e1a5; " | ⏩ |
style="background-color: #fff59d;" | ⎇̱ |
style="background-color: #ff3d00; " | ⌦̳ |
style="background-color: #81d4fa; " | ⤝ |
style="background-color: #e1f5fe; " | ⬃̲ |
style="background-color: #4fc3f7; " |⃗𝄙 |
style="background-color: #ff8a65; " | ⫘ |
⛑ |
style="background-color: #4fc3f7; " |⃯𝄙 |
style="background-color: #b388ff; " | 🗲 |
style="background-color: #f48fb1;" | 🗃 |
style="background-color: #e1f5fe; " | ⩩̭̌ |
|
style="background-color: #c5e1a5; " | ▶ |
style="background-color: #fff59d;" | ⎇ |
style="background-color: #ff3d00; " | ⌧ |
style="background-color: #81d4fa; " | ⤞ |
style="background-color: #e1f5fe; " | ← |
style="background-color: #e1f5fe; " | ↓ |
style="background-color: #e1f5fe; " | ↑ |
style="background-color: #e1f5fe; " | → |
style="background-color: #e1f5fe; " | ↶̥ |
style="background-color: #f48fb1;" | 🔖 |
|||
style="background-color: #ff3d00; " | ⌫ |
style="background-color: #fff59d;" | ⎇̱˱ |
style="background-color: #29b6f6; " | 👁̲ |
style="background-color: #e1f5fe; " | 🢤 |
style="background-color: #81d4fa; " | ↶̰
|
style="background-color: #4fc3f7; " |→𝄚 |
style="background-color: #ff8a65; " |⬱ |
style="background-color: #ff8a65; " |⇶ |
style="background-color: #81d4fa; " |🔍 |
||||
style="background-color: #ff3d00; " | ⌦ |
style="background-color: #ff8a65; " | ⎇̱̰ |
style="background-color: #29b6f6; " | 👁̣ |
style="background-color: #e1f5fe; " | ⇐ |
style="background-color: #81d4fa; " | ↷̰
|
style="background-color: #f48fb1;" | 🎯 |
style="background-color: #81d4fa; " | ↷̥
|
style="background-color: #b388ff; " | ⮔
|
style="background-color: #81d4fa; " | 🔎 |
Cette représentation permet de repérer d'emblé le caractère globalement éparse de la disposition spatiale des fonctions de même catégories.
Proposition de disposition alternative
[modifier | modifier le wikicode]Cette section vise à fournir une dispostion dont la répartion spatiale offre plus de cohérence :
- groupement par catégories retenus dans la section précédente : déplacement, éditer, supprimer, répéter…
- groupement par type d’opérande : caractère, ligne, paragraphe, section, élément de la liste quickfix, suggestion orthographique, tampon, fichier parmi les arguments, fenêtre dans une vue scindé, tabs…
- groupement par porté : élément précédent, suivant, le premier, le dernier…
- groupement par mode dans lequel le logiciel se retrouve une fois l'action complété
- groupement par conséquence sur le tampon en cours d’édition : inchangé, adjonction, suppression, substitution…
- positionnement relatifs par fréquence de combinaison
Descriptif du TypeMatrix 2030 version bépo
[modifier | modifier le wikicode]Pour le besoin de cette section, l’étude se concentrera sur disposition adapté au clavier TypeMatrix 2030, configuré avec un agencement bépo.
L’arragement des touches de ce clavier, bien plus rectiligne que la majorité des claviers du marché, facilite la fidélité de son arragement spatial réel avec représentation une réprésentation sous forme de tableau.
Le bépo étant un agencement créé dans une démarche d’optimisation de la cohérence entre usage et répartition des touches, il paraît un choix bien plus en phase avec les objectifs du présent projet que la plupart des agencements disponibles sur le marché.
Il est possible d’accéder à plus d’information sur le combo TypeMatrix 2030 et bépo sur le wiki du projet bépo.
Aspects notables
[modifier | modifier le wikicode]Cette section énumère les autres caractéristiques notables de cette cible qui sont pertinents pour cette étude.
Sur le TypeMatrix 2030, le caractère ê est directement saisssable par la touche "lecture/pause", lorsque le mode 102-touches est activé via fn+F2. Ce mode sera ci-après supposé activé
La présence d'une touche de composition des caractères à accent grave sur une touche quasi-centrale s’avère fort originale. Par rapport à un clavier avec agencement qwerty, elle occupe la place d’une touche y. Vim utilise cette touche pour la copie d’une sélection du tampon courant dans un registre. Par exemple yy copie la ligne courante dans son intégralité. Une correspondance naïve de la même touche sur un bépo nécessiterait pas moins de quatre appui de la même touche pour obtenir le même résultat. En effet, le premier appui enclenche la demande de composition d’un caractère accentué, signal qui n’est pas accessible à Vim, et un second appui sur cette même touche envoie le caractère accent circonflexe, visible par Vim. Aussi pour obtenir l’équivalent d’un yy faudrait-il saisir ^^^^, dans le cas d’une correspondance naïve. À l’inverse, il est possible de tirer partie de cette touche de composition en associant des actions aux compositions les plus accessibles ergonomiquement : les touches composables sur la moitié gauche du clavier, la touche ^ elle même, et celle directement en dessous. Il est possible de produire 13 caractères de la sorte : ⁽⁾ếôềâûîêầŷ^ĉ. Cela permet possiblement de grouper une famille d’actions déjà fort conséquente.
Le même type de réflexions opérent pour les différentes saisies combinatoires que fournie le bépo.
combinasion | symbole | description | note | applications | # |
---|---|---|---|---|---|
^ | ◌̂ | stipule un accent grave au prochain caractère | Pour les chiffres, indique une mise en exposant | ⁽⁾⁺⁻⁼¹²³⁴⁵⁶⁷⁸⁹⁰⁼ếôề^ĵẑŵẾÔỀĴẐŴâûîêĉŝÂÛÎÊĈŜầŷĝĥẦŶĜĤ | 117 |
alt-gr+é | ◌́ | stipule un accent aigu au prochain caractère | ´ṕóǘĺźẃáúíéćśŕŕńḿýḱǵḉṔÓǗĹŹẂÁÚÍÉĆŚŔŃḾÝḰǴḈ | 88 | |
alt-gr+è | ◌̀ | stipule un accent grave au prochain caractère | ò`ǜẁàùìèǹỳÒẀÀÙÌÈǸỲ | 37 | |
alt-gr+i | ◌̈ | stipule un tréma au prochain caractère | öẅäü¨ëẗÿẍ | 19 | |
alt-gr+v | ◌̌ | stipule un caron au prochain caractère | Pour les chiffres, indique une mise en indice | ₍₎₊₋₌₁₂₃₄₅₆₇₈₉₀₌ǒˇďľǰžǎǔǐěčťšřňǩǧȟ | 83 |
alt-gr+l | ◌̵, ◌̶, ◌̸, ◌̷ | stipule une barre inscrite au prochain caractère | ƀᵽøł/ɉƶⱥʉɨɇȼŧɍɏǥħɃⱣØŁɈƵȺɄƗɆȻŦɌɎǤĦ | 67 | |
alt-gr+w | ◌̆ | stipule une brève au prochain caractère | ŏ˘ăŭĭĕərənəməằğ | 27 | |
alt-gr+n | ◌̃ | stipule un tilde au prochain caractère | õṽãũĩẽñỹÕṼÃŨĨẼÑỸ | 36 | |
alt-gr+m | ◌̄ | stipule un macron au prochain caractère | ḗōḕāūīēȳḡḖŌḔĀŪĪĒȲḠ | 40 | |
alt-gr+q | ◌̊ | stipule un rond en chef au prochain caractère | ẘåůẙÅŮ | 13 | |
alt-gr+g | stipule une translittération grecque au prochain caractère | βποδλθζωαυιετσρνμψξκχγηφµΒΠΟΔΛΘΖΩΑΥΙΕΤΣΡΝΜΨΞΚΧΓΗΦ | 97 | ||
alt-gr+ç | ◌̧ | stipule une cédille au prochain caractère | ¸ȩçţşŗņķģḩ | 19 | |
alt-gr+shift+é | ◌̋ | stipule un double accent aigu au prochain caractère | őű | 2 | |
alt-gr+i+' | ◌̈́ | stipule un tréma accent aigu au précédent carcartère | Tous les caractères peuvent être combiné avec ce diacritique, cependant comme il agit sur les caractères qui le précèdes, il ne présente pas d’intérêt dans la présente démarche. | N/A | N/A |
^+alt-gr+é | ầốế | 3 |
Toutes les touches n’ouvre pas au même nombre de combinaison, elles ouvrent cependant à plus de combinaisons que celles pourtant déjà conséquente qu’emploi vim en termes de commande faisant intervenir un couplage de deux touches successive. En effet les caractères [, ], g, z et Z ouvrent respectivement à l'attente d'un caractère complémentaire respectivement parmi 18, 39, 65, 45 et 2 possibilités. Soit un total de 169 opérations, dont certaines sont néanmoins de simples synonymes. Il est clair que les seules combinaisons offertes par ^ sur bépo ouvre déjà au même ordre de grandeur d'opérations. Les autres modificateurs amènent le compte bien au-delà des 600 caractères. Cela assure que le nombre d’opérations assignables par ces caractères sera plus qu’amplement suffisant pour ne jamais exiger une saisie plus longue que celle retenu par Vim. Cependant le présent projet de recherche se laisse le libre choix d'assigner à des clés d'accès direct des opérations que Vim assigne à des combinaisons et inversement.
Le clavier TypeMatrix 2030 n'est pas totalement symétrique sur toutes les touches de combinaison. Notamment, les touches alt et alt-gr n’ont chacune qu’une occurrence, respectivement sur la partie gauche et droite du clavier. Aussi, bien que les combinaisons soient répartie sur les deux pans du clavier, cette recherche ne retiendra que celles faisant intervenir les touches sur le pan opposé du clavier à celui de la touche combinatoire, excepté les touches des position sde base (auie et tsrn).
Le tableau ci-après reprend la nomenclature utiliée par Vim pour les nom des caractères, avec des termes entre chevrons. Note : la notaiton M- désigne un caractère dit méta, par initialisme du nom donné à la touché alt sur certains systèmes, à l’instare de C- et S- pour désigné les caractère émis en combinaison des touches contrôle et shift respectivement.
Brut | Alt | alt-gr |
---|---|---|
pan gauche | ||
$ | ignoré | – |
" | — | |
« | < | |
» | > | |
( | [ | |
) | ] | |
b | | | |
é | ◌́ | |
p | & | |
o | œ | |
è | ◌̀ | |
a | <M-a> | æ |
u | <M-u> | ù |
i | <M-i> | ◌̈ |
e | <M-e> | € |
, | ignoré | ’ |
à | \ | |
y | { | |
x | } | |
. | … | |
k | ~ | |
@ | <M-@> | ignoré |
+ | <M-> | |
- | <M-> | |
/ | <M-> | |
* | <M-> | |
= | <M-> | |
% | <M-> | |
^ | N/A | |
v | <M-v> | |
d | <M-d> | |
l | <M-l> | |
j | <M-j> | |
z | <M-z> | |
w | <M-w> | |
c | <M-c> | |
t | <M-t> | þ |
s | <M-s> | ß |
r | <M-r> | ® |
n | <M-n> | ◌̃ |
m | <M-m> | ignoré |
' | <M-'> | |
q | <M-q> | |
g | <M-g> | |
h | <M-h> | |
f | <M-f> | |
ç | <M-ç> | |
<Home> | <M-Home> | |
<Up> | <M-Up> | |
<End> | <M-End> | |
<PageUp> | <M-PageUp> | |
<Left> | <M-Left> | |
<Down> | <M-Down> | |
<Right> | <M-Right> | |
<PageDown> | <M-PageDown> |
Le Bépo permet par ailleurs l’accès à de nombreux caratères de manière assez simple, par exemple ^ puis é donne ế. Cette étude, bien que faite en toute conscience du grand nombre de combinaisons ainsi réalisables, prend le parti de ne pas en privilégier l’utilisation.
Les touches <suppr>, <backspace> et <entrée> occupent une position centrale sur le Typematrix. Une action aussi courante comme passer du mode insertion au mode normal sera bien plus pertinament placé sur une touche comme <suppr> que sur <esc>.
Sur le bépo la combinaison de shift et de la touche espace envoie le caractère _. La touche espace est souvent associée au caractère spéciale mapleader, qui sert d’introduction à une chaîne spécifiant une commande, et ce sera également le cas dans la disposition qui sera développée ici. En effet, la touche espace est idéalement placée pour être suivi de n’importe quel autre saisie de touche. L’adjonction d’une émission de caractère par la combinaison de shift+espace offre une seconde opportunité tout aussi équilibré, puisque shift est fourni en deux touches symétriquement positionnées sur le clavier TypeMatrix 2030.
Configuration visée
[modifier | modifier le wikicode]Le tableau suivant offre une première proposition de dispotion spatialement plus cohérente pour les groupes de fonctions associées. La matrice est cette fois calqué sur un clavier Typematrix 2030, où les colones sont intitulés sur la première ligne du clavier.
Chaque touche est représenté par son nom en intitulé, surmonté de cinq cases représentants respectivement l’opération associée au signal envoyer par la saisie de la touche seul, avec shift, avec contrôle, avec alt ou alt-gr et précédé de ^.
num | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Esc | F1 | F2 | F3 | F4 | F5 | <BS> | F6 | F7 | F8 | F9 | F10 | F11 | F12 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
❎ | 📷̰ | ⎇̱̰ | ↶̰ | ⇚ | 🔽 | 🔍 | ⇛ | 🔼 | 🔎 | ⌧ | ↷̰ | ⭾ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$ | " | « | » | ( | ) | @ | + | - | / | * | = | % | 🖩 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
🗃 | 🔖 | 🎯 | 📷 | ͍⎇̱ | ⑄ | <del> | ⩩̭̌ | 📍 | ↑ | ⭶ | 🗨 | ⭹ | 🗩 | ⬃̲ | ⌦̳ | ↓ | ⃡⮒ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tab | b | é | p | o | è | ^ | v | d | l | j | z | w | 🖂 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
⮔ | ♻ | ⟴ | ⬲ | 🗲 | 🕸 | 🌩 | 🐚 | ⛑ | ⎇̱ | ⫘ | <enter> | ⃗𝄙 | →𝄚 | ⃯𝄙 | ⇐ | 🢤 | 🖘 | ⇒ | 🢥 | 🖙 | 🢚 | ➯ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shift | a | u | i | e | , | c | t | s | r | n | m | shift | ⇪ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
🗙 | ⎇ | ⎅ | ⇤ | ↶̥ | ⭰ | ⏪ | ⤝ | ← | ◀ | ·⤝ | ⌫ | → | ▶ | ⤞· | ⌦ | ⏩ | ⤞ | ⇥ | ↷̥ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
à | y | x | . | k | ' | q | g | h | f | ç | 🌎 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
📹 | 📽 | ⬱ | ⇶ | 🗜 | ⛕ | 👁̣ | 👁̲ | 👁̻ | ctrl | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ctrl | ê | <menu> | <alt_l> | entrée | <desktop> | <home> | <up> | <end> | ⇞ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fn | <super> | alt | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
alt gr | <left> | <down> | <right> | ⇟ |
Notation
[modifier | modifier le wikicode]- ⟲
- répéter
Extensions possibles à cette démarche
[modifier | modifier le wikicode]Cette étude se focalise sur une approche monoapplicative. Cependant en pratique l’utilisation d’un logiciel comme Vim est souvent exécuté au sein d’un environnement Shell comme Bash ou Zsh, lui-même possiblement exécuté au sein d’un multiplexeur de terminal comme Screen ou Tmux, le tout souvent lancé au sein d’un émulateur de terminal comme Xterm, lui même affiché au sein d’un environnement de fenêtrage comme X11. Toutes ces imbrications logiciels sont autant d’éléments dont l’étude n’a que partiellement tenu compte en évitant d’utiliser trop abondamment des touches notoirement réservés par un de ces environnement encapsulant qui en capture l’émission et la traite sans jamais la repasser à un logiciel situé en aval dans la chaîne d’encapsulation.
Il serait donc intéressant d’étendre cette étude à la résolution des éventuels conflits de préemption de traitement des signals, et à au développement d’une correspondance plus cohérente des raccourcis clavier entre ces différents niveauxx
Notes
[modifier | modifier le wikicode]- ↑ Dans vi et et ses successeurs h, j, k, l correspondant respectivement au déplacement gauche, bas, haut, droit (←, ↓, ↑, →). Ce choix est d’ailleurs lui-même suboptimal par rapport à la position de base des doigts sur le clavier. Ce choix a en réalité conduit par les caractères qui était dessinées sur le terminal ADM-3A qu’utilisait Bill Joy au moment de la création de vi[1]Erreur de référence : Balise fermante
</ref>
manquante pour la balise<ref>
.
Références
[modifier | modifier le wikicode]- ↑ Here is why vim uses the hjkl keys as arrow keys - good coders code, great coders reuse
- ↑ Ainsi <C-s> et <C-q> sont historiquement associé au contrôle du flux du terminal, sous lequel vim opère le plus souvent. Ce type de contrainte peut-être néanmoins généralement être paramétré.