Auteur du message original en russe: varanioVous avez peut-être lu un
article récent
suggérant que vim est génial contrairement aux IDE , en raison de leur vitesse de frappe prétendument faible.
Rappelons que le message principal de cet article était que la fonction de tueur de Vim consiste en ses modes qui surpassent en quelque sorte tout le reste. Cela dit, l'auteur a reconnu qu'IntelliJ IDEA et d'autres IDE fournissent des raccourcis clavier et d'autres expériences utilisateur qui peuvent être facilement utilisés. Cependant, comme ils manquent de modes, vim est censé être le premier choix de tout le monde.
L'auteur suggère ensuite qu'au lieu d'appuyer sur les
ctrl+arrows
pour se déplacer entre les mots, il est plus facile d'appuyer sur Echap, e, puis de revenir au mode d'édition
i
. Naturellement, tous ces ennuis parce que l'auteur trouve
gênant de maintenir ctrl
.
Je sais que les articles qui critiquent vim obtiennent de nombreux votes négatifs, mais je dois juste m'exprimer.
Vos lignes de code sont-elles si longues que votre doigt se fatigue en maintenant la touche au point où vous avez vraiment besoin de modes? Je peux l'obtenir lorsque vous tapez une longue constante - dans ce cas, vous pouvez appuyer sur Caps Lock et taper son nom. Même alors, j'appuie à peine sur cette touche plus d'une fois par an. Mais changer de mode d'avant en arrière pour avancer de quelques mots, sans parler d'appeler la fonction de tueur de Vim, semble un peu exagéré.
Soit dit en passant, dans IntelliJ IDEA, vous pouvez modifier la casse d'un mot (ou du texte sélectionné) avec une seule touche, de sorte qu'il ne nécessite pas vraiment d'utiliser le verrouillage des majuscules non plus.
J'admets que vim peut être bon pour éditer des fichiers de configuration sur un serveur distant. En outre, vim peut être idéal pour les nouvelles langues qui n'ont pas encore été utilisées par JetBrains. Écrire des plugins personnalisés est plus facile pour vim (mais dans 99% des cas, vous n'en aurez pas besoin avec un IDE adéquat). C'est peut-être plus pratique pour éditer de longs textes. Mais cela n'est pas pertinent pour le codage industriel standard!
Je devrais immédiatement mentionner plusieurs points ici.
Vim peut être transformé en une sorte d'IDE en installant des plugins et en apprenant des raccourcis clavier pour faire fonctionner ces plugins
C'est possible, mais pourquoi s'en préoccuperait-il?
Cela semble être un défi étrange compte tenu du fait que les IDE ont tout et une expérience beaucoup plus conviviale. Vous n'aurez pas à utiliser de souris, je vous le promets!
Permettez-moi d'expliquer la chose avec l'édition sans souris en utilisant un exemple. J'ouvre d'abord IntelliJ IDEA et crée un nouveau fichier.
J'appuie sur p, et l'EDI m'invite immédiatement avec une suggestion du mot package. Tout ce que je dois faire est d'appuyer sur Entrée pour mettre le paquet de mots dans le texte à l'intérieur de l'éditeur.
Ensuite, j'appuie sur
c
, et l'IDE suggère la classe à la fois.
J'entre le nom de la classe (par exemple,
Habr
), tape l'accolade
{
et l'IDE termine automatiquement l'accolade de fermeture juste derrière le curseur.
Ensuite, je tape pu, et l'IDE comprend que c'est probablement public. Je tape
H
et j'appuie sur
Enter
pour obtenir Habr, car l'IDE a déjà compris que je veux créer un constructeur.
Je procède à l'écriture du corps du constructeur, par exemple j'appelle la méthode init (), qui n'est pas encore là. Mon IDE le met en surbrillance avec une couleur rouge, ce qui indique que cette méthode n'existe pas. Une fois que j'appuie sur
alt-ENTER
, l'IDE insère l'extrait de code au bon endroit:
private void init() { }
S'il m'arrive de taper de
new Habr(5)
intérieur de cette méthode (le mot Habr a également été invité bien sûr), c'est-à-dire si j'essaie d'appeler un constructeur inexistant, IntelliJ IDEA soulignera ce bit tout de suite, donc j'appuie simplement sur
<alt-ENTER>
et choisissez exactement ce que je veux faire: que ce soit pour ajouter un argument int au constructeur ou ajouter un nouveau constructeur avec un paramètre int. Je choisis cette dernière option, et l'EDI ajoute immédiatement un nouveau constructeur après le premier:
public Habr(int i) { }
Je ne mentionnerai pas l'indentation automatisée et d'autres fonctionnalités qui vous aident à modifier le code, car elles sont naturellement présentes.
Voici ce que j'ai finalement obtenu:
package x; class Habr { public Habr() { init(); } public Habr(int i) { } private void init() { new Habr(5); } }
Tout ce que j'ai fait, c'est littéralement appuyer sur quelques touches et sur le raccourci clavier
<alt-ENTER>
.
Je n'ai installé aucun plugin.
Je n'ai pas eu à m'entraîner pendant un mois pour pouvoir le faire.
Je n'ai jamais touché la souris (j'ai utilisé le verrouillage des majuscules ici non pas parce que je voulais crier comme un écrou, mais parce que c'était amusant d'essayer la fonctionnalité).
Je ne suis passé à aucun mode et je n'ai eu à rappeler aucune combinaison de touches ou de boutons. Le seul que j'ai utilisé était
<alt-ENTER>
(mais c'était une chose dépendante du contexte, une sorte de raccourci "résolution de problème").
Si vous détestez utiliser la souris, vous pouvez parcourir le code à l'aide de raccourcis clavier spéciaux, comme pour passer à la bonne classe, au bon fichier, à la méthode, au numéro de ligne, etc.
Vous pouvez sélectionner du texte en appuyant plusieurs fois sur
<ctrl-W>
pour sélectionner le mot courant, le texte courant entre les accolades, etc.
Vim vous permet de passer à un personnage particulier. Par exemple, vous pouvez accéder à une lettre x dans la ligne de texte sans toucher à la souris. Pourtant, un IDE vous donne également cette opportunité en appuyant sur
<ctrl-f>
et en tapant le bloc de texte requis. C'est d'ailleurs une sorte de mode d'ailleurs. Cela s'appelle le mode de recherche, duh!
Je n'ai pas non plus besoin de la souris pour passer à l'appel de la fonction appropriée, puis, à nouveau sans la souris (appuyez sur
ctrl-b
), pour accéder à la description de cette fonction.
Vim possède plusieurs fonctionnalités d'édition prêtes à l'emploi qui manquent dans les IDE
- Passez au paragraphe suivant / précédent.
Oui, cela ressemble à une fonctionnalité utile pour un IDE. Mais plutôt pour l'édition d'articles pour Habr que pour le codage réel. - Passez au caractère d'espace suivant.
Eh bien, vous pouvez appeler cela une fonctionnalité utile, mais pas trop cool. L'appui répété sur les ctrl+arrows
produira le même effet. - Sautez une demi-page vers le haut / bas.
Je n'ai pas encore décidé si j'avais besoin de celui-ci pour quoi que ce soit. - Saut à la première / dernière / ligne médiane de l'écran.
Je ne vois pas vraiment à quoi cela sert. Autrement dit, cela peut être utile un certain temps, mais ce n'est en aucun cas une fonctionnalité de tueur. - Il est possible de supprimer exactement N lignes de code.
Ouais, c'est vrai, je fais ça tous les jours. Tout le monde doit supprimer exactement 19 lignes de code de temps en temps, non?
Je ne suis en aucun cas un gourou de Vim, donc j'ai peut-être manqué certains aspects clés. Veuillez partager vos réflexions dans la section des commentaires. Oui, bien sûr, il y a des millions de plugins en plus. Mais les IDE en ont aussi, et en quantités comparables.
Résumé
Voici ma propre conclusion à ce sujet. Je resterai loin de vim en ce qui concerne l'édition de code, peu importe ce que vous direz. Je n'étais pas très impressionné par l'utilisation des modes au lieu de maintenir ctrl ou même
ctrl-alt-shift
. Les IDE vous offrent plus de fonctionnalités prêtes à l'emploi, sans avoir à consacrer un certain temps à l'apprentissage et à l'attribution de
raccourcis clavier . La plupart des tâches quotidiennes peuvent être accomplies avec un IDE en apprenant seulement quelques touches de raccourci. Vous pouvez même les ignorer complètement si vous êtes satisfait de la souris.
Il est établi depuis longtemps qu'un programmeur prend plus de temps pour apprendre le code que pour l'écrire. Donc, que vous utilisiez votre souris ou non, cela ne fait pas une grande différence. Cependant, permettez-moi de répéter que les IDE vous permettent de faire presque tout (sinon tout) sans utiliser la souris.
Vim fonctionnera mieux que nano pour éditer à distance des fichiers de configuration sur un serveur, à condition que les conditions suivantes soient remplies:
- Vous devez avoir une bonne prise en main de vim.
- Vous devez modifier des quantités industrielles de fichiers de configuration pour en ressentir l'avantage. Si vous n'avez besoin d'apporter des modifications à un fichier de configuration qu'une ou deux fois par mois, nano ou tout ce qui fonctionne fonctionnera bien.
Vous pouvez commencer à me rejeter ou, mieux encore, à proposer vos contre-arguments :).