Je pense que le nom implique qu'aujourd'hui nous parlerons de Vim! Qu'est ce que c'est Pourquoi est-ce nécessaire? Comment l'utiliser?
Beaucoup de ceux qui ont lu mon article précédent pourraient s'exclamer:

En effet, une telle pratique peut être considérée comme inutile. À mon grand regret, même maintenant, il y aura des gens qui raisonneront de la même manière. Pour ceux qui ne sont pas au courant, je vais expliquer: Vim est un éditeur de texte à l'ancienne qui fonctionne dans le terminal et a une approche non standard pour l'édition et la saisie.

Une question légitime se pose: «Pourquoi utiliser l'ancien programme en 2018, et même sans interface graphique?» La réponse est simple - c'est pratique. Je suis d'accord, vous pouvez donc absolument parler de n'importe quel éditeur, mais ce cas est encore très inhabituel.
Pour commencer, non, Vim n'est pas vieux - il n'a que 27 ans. Il est l'héritier de l'éditeur Vi classique. Il est mieux adapté aux systèmes modernes et dispose d'un plus large éventail de capacités. En d'autres termes, son nom (Vi Improved) est pleinement justifié. Je tiens également à noter qu'il existe une mise en œuvre encore plus récente des mêmes idées - neovim.
Quelle est la différence?

Si vous regardez différentes vidéos de Youtube sur ce sujet, elles parlent principalement de la composante métaphysique du problème. C'est-à-dire sur la différence d'idéologies, de manières de développer des projets, etc. Il n'y a pas de différences fondamentales pour l'utilisateur final. Cependant, deux points peuvent être clarifiés: certains plugins sont plus faciles à installer dans neovim, en plus de séparer l'interface utilisateur du cœur du programme. Je vais vous expliquer plus en détail la seconde.
Je pense que parmi vous, il y aura des gens (et des chats) qui répondront toujours à l'offre de passer à un autre éditeur comme celui-ci:

Eh bien, les neovim se précipitent à la rescousse! Grâce à lui, il existe désormais dans de nombreux IDE et "cahiers de programmation" modernes un émulateur de la fonctionnalité Vim. Ainsi, vous pouvez continuer à utiliser votre Sublime Text ou CLion préféré avec tous vos plugins, tout en augmentant sensiblement votre productivité en termes d'écriture de code et en commençant à en tirer plus de plaisir (plus à ce sujet plus tard). C'est aussi un bon moyen d'augmenter la FAQ, car "les vrais pirates utilisent Vim ou Emacs".
"Eh bien, j'ai décidé d'essayer d'étudier un éditeur vintage, mais pourquoi Vim, et pas au moins les mêmes Emacs?" Eh bien, c'est une question controversée. Emacs est une solution plus puissante qui peut tout faire (vous pouvez même y jouer un serpent). Cependant, sa force est aussi sa faiblesse. Il est trop étendu et complexe, ce qui se traduit par une plus grande complexité de développement et d'exactitude du fer. Le dernier argument peut sembler stupide maintenant, car il s'agit également d'un éditeur de console, mais dans un certain nombre de tâches (telles que la connexion à distance via SSH), ce point peut s'avérer critique.
(Utilisateurs Emacs après ces lignes)Eh bien, nous avons compris ce qu'est Vim, mais il reste à comprendre pourquoi et comment l'utiliser.
"Pourquoi tout le monde a-t-il tellement aimé Vim qu'ils l'ajoutent autant que possible et même là où c'est impossible?" (Soit dit en passant, Emacs l'a aussi. Il me semble de plus en plus qu'il est plus facile d'énumérer des choses qui ne sont pas là, mais c'est hors sujet.) La réponse à cette question n'est pas difficile - sa philosophie.
Vous ne pouvez pas simplement démarrer et taper du texte dans VIM. Il existe un mode distinct pour cela - «Mode d'insertion». Lorsque vous démarrez le programme, vous vous retrouvez en mode normal, dans lequel vous avez la possibilité de taper des commandes pour éditer du texte et de basculer entre les différents modes de cet éditeur. "Mais c'est inconfortable! Je veux juste taper le texte! " Purement technique, une machine à écrire convient également à cette tâche, mais je répondrai toujours sans sarcasme. Si la plupart des éditeurs se concentrent sur l'écriture de code, Vim le déplace vers l'édition de texte et le fait à sa manière.
(En fait, cette image a un sous-texte profond. S'il y a une minute, alors lisez la série Persona de RPG japonais.)La chose la plus importante à comprendre lors de l'apprentissage des commandes Vim est qu'elles ne sont généralement pas isolées. Ceci, considérons la langue entière, où ils sont divisés en verbes, noms et adjectifs (modificateurs). En fait, malgré le fait que chaque équipe soit un seul personnage, chacune a un analogue du mot en anglais, et leur séquence peut être traduite en une phrase à part entière!

Regardons quelques exemples, mais gardons d'abord une autre image (cette fois avec quelque chose d'utile):

1).
d2w
==> Supprimer deux mots.

2).
AMew<Esc>
==> Ajouter à la fin de la ligne "Mew" et revenir au mode normal.

3).
f(ci(Pakahontas<Esc>
==> Trouvez une paire de crochets et changez leur contenu interne en "Pakahontas" et revenez en mode normal.

Tu vois? Absolument rien de compliqué! Bien sûr, cette approche nécessite de s’habituer et de s’entraîner constamment, car vous ne pouvez pas simplement apprendre toutes les combinaisons - vous devez les ressentir. J'écris du code dans Vim non pas parce qu'il est plus rapide à taper (je tape déjà lentement, comme vous l'avez peut-être remarqué, et je ne sais pas comment aveuglément), mais parce qu'il est plus naturel. Au lieu d'un tas de ctrl, shift ou alt (il y a des commandes avec eux, mais il y en a peu), un langage d'édition très compréhensible et, surtout, humain.
(De façon inattendue, non?)Mais avant de terminer, je veux insérer quelques commentaires:
I. Malgré le fait que dans Vim vous pouvez utiliser les flèches et la souris (la seconde est configurée dans le fichier "~ / .vimrc"), ce n'est pas strictement recommandé. Il a une mer de commandes plus intéressantes pour déplacer le curseur sur le texte (et l'écran), mais elles ne sont plus aussi intuitives que les commandes d'édition et vous devez les entasser.
(Il est temps de pirater!)II. Dans Vim, comme dans de nombreux autres éditeurs, il existe un mode de commande qui est appelé lorsque la touche ':' est enfoncée. Le symbole '!' a une double signification:
a) S'il se trouve immédiatement après «:», alors une commande à part entière pour le terminal peut la suivre. Bien que certains d'entre eux soient dupliqués en tant que commandes de l'éditeur lui-même, il peut être utile, par exemple, d'appeler le compilateur.
b) S'il se trouve après la commande Vim, il l'exécutera sans enregistrer les modifications dans le fichier. Soit dit en passant, cela est lié à un bogue (ou, si vous voulez, une fonctionnalité) - si vous avez fait quelque chose avec le texte, même si vous le retournez à son état d'origine, l'éditeur ne se fermera pas si vous ne le sauvegardez pas ou spécifiez '!'.
(Avez-vous déjà ressenti à quel point Vim se soucie de vos données?)III. Divers paramètres de l'éditeur et du plugin peuvent être modifiés dans le "~ / .vimrc" ci-dessus. Il existe des paramètres pour chaque goût et couleur, mais ils ne sont pas dans le fichier lui-même. Par défaut, il est vide. Pour trouver les paramètres dont vous avez besoin, utilisez la commande ": help". Après cela, vous pouvez ajouter le nom d'un composant ou d'un plug-in spécifique pour accéder immédiatement aux informations qui vous intéressent. Mais, bien sûr, Internet sera plus confortable à cet égard.
IV. Il existe plusieurs commandes dans Vim (par exemple, 'q') qui sont conçues pour être définies (dans "~ / .vimrc") par l'utilisateur. Cependant, si vous essayez de leur attribuer une valeur directement, ils seront déclenchés avec un retard, car ils attendent une deuxième commande après eux (ils doivent être déterminés). Si vous avez besoin d'une commande à un bouton, je recommande d'utiliser 's', car sa fonctionnalité est pratiquement la même que «c». Le remplaçant peut être remplacé, pour ainsi dire.
V. Équipe '.' possède un pouvoir incroyable dans cet éditeur. Elle sait répéter la commande précédente (ou une phrase entière de leur part). En principe, si vous ne souhaitez pas enregistrer une macro, c'est un excellent outil pour remplir le code de "pasties":
VI. Vim me rappelle certains vieux ordinateurs 48K ZX Spectrum. Ils avaient également des commandes à un bouton, mais ils étaient pour le langage de programmation de base. Ainsi, les développeurs ont essayé de réduire la quantité de RAM nécessaire pour le programme.

En tant que matériel de formation, je recommande le programme vimtutor. Purement technique, il ouvre simplement un fichier avec un court tutoriel dans Vim, mais cette approche vous permet de pratiquer en parallèle avec l'étude de la partie théorique. Et puis pratiquez, pratiquez et, encore une fois, pratiquez!
Eh bien, en fait, tout ce que je voulais dire sur Vim. Honnêtement, je suis complètement ravi de cet éditeur. Sa philosophie est très contagieuse et similaire au système Unix dans son ensemble (tout est simple, clair et logique, mais nécessite de s'y habituer et de s'en souvenir). Par conséquent, si vous recherchez un bon éditeur de texte ou souhaitez obtenir une nouvelle expérience d'édition de texte, vous ne trouverez pas de meilleur endroit.
Je vous souhaite bonheur, santé et KDE de ne pas tomber!
Les sources1) Sur le sujet:
a) En fait, vimtutor
b) La photo avec le clavier a été prise sur le site Web de
viemuc) J'ai également lu un
wikibook sur ce sujet.
2) Hors sujet:
a) À propos de la série Persona sur Youtube, il existe de nombreuses vidéos avec leur analyse détaillée. Les vidéos de
la Place kakala de Filinov sont probablement les plus précieuses, mais l 'auteur s'est pour l' instant arrêté à la deuxième deuxième partie (ce n'est pas une faute de frappe).
b) À propos de Spectrum a récemment enregistré une bonne vidéo
Dmitry Moiseevc) L'auteur de la photo de ma photo de profil - Fluff-Kevlar