J'examine si je devrais recommencer à utiliser VIM au lieu d'un IDE. Quelles sont les fonctionnalités les plus utiles de VIM qui ne sont pas standard dans un IDE?
emacs
place. ;-)
J'examine si je devrais recommencer à utiliser VIM au lieu d'un IDE. Quelles sont les fonctionnalités les plus utiles de VIM qui ne sont pas standard dans un IDE?
emacs
place. ;-)
Réponses:
Je ne pense pas que ce soit nécessairement les fonctionnalités avancées de VIM qui le rendent si puissant. C'est le fait que vous n'avez jamais à retirer vos mains du clavier pour faire quoi que ce soit. Trouver quelque chose dans un énorme fichier est aussi simple que quelques frappes. L'ouverture et la fermeture de plusieurs fichiers dans la même fenêtre sont également incroyablement rapides.
Bien que cela puisse ne pas sembler intuitif au premier abord, cela vaut bien votre temps. Même si vous ne l'utilisez pas comme votre IDE standard (j'utilise généralement Visual Studio ou Eclipse, par exemple), vous vous retrouverez à utiliser VIM pour ouvrir et éditer rapidement des fichiers car cela devient beaucoup plus rapide que d'attendre que l'EDI charge.
Prenez le temps d'apprendre à bien utiliser VIM et vous ne le regretterez jamais. Je dirais que c'est comparable à l'apprentissage du type tactile.
Pour moi, la :global
commande est une application qui tue. Il exécutera des commandes vim arbitraires sur n'importe quelle ligne qui correspond (ou ne correspond pas) à une expression régulière.
Voici quelques exemples:
Le comportement par défaut consiste à répertorier chaque ligne qui correspond, donc:
:g/TODO:/
répertorie toutes les lignes contenant le texte "TODO:"
remplacez «Mickey» par «Minnie» sur toute ligne contenant également le mot «souris»
:g/Mouse/ s/Mickey/Minnie/
Les commandes peuvent avoir leur propre plage, donc cela supprimera de chaque ligne avec "TODO:" à la ligne vierge suivante:
: g / TODO: /., / ^ $ / d
Utilisez: g! à exécuter sur chaque ligne qui NE correspond PAS à l'expression régulière, par exemple pour remplacer "emacs" par "vim" sauf sur les lignes qui contiennent le mot "sucks":
:g!/sucks/ s/emacs/vim/
Je trouve la possibilité de supprimer tout ce qui se trouve entre un ensemble de symboles appariés incroyablement utile. Par exemple, assez souvent, je me retrouverai à vouloir remplacer une chaîne dans le code. Ainsi, di"
pendant que le curseur est dans le bloc, la chaîne sera supprimée, tout en conservant l' ""
intacte, et placera le curseur entre les deux guillemets. da"
fait la même chose, mais supprime également les guillemets.
ci"
supprime et place le curseur en mode insertion afin que vous puissiez immédiatement commencer à écrire.
«Achèvement du mot clé en mode d'insertion». Ctrl-P et Ctrl-N en mode insertion pour rechercher dans le texte et essayer de compléter le nom de variable que vous saisissez. Je n'ai jamais vu ça dans aucun autre IDE et ça me manque vraiment. La complétion de code dans les IDE n'est tout simplement pas la même.
^X^O
omni-complète en mode insertion, si vous l'avez activé. Mais vous avez raison, je me retrouve à utiliser l'achèvement des mots clés bien plus que l'omni-complet.
Une autre fonctionnalité que je trouve incroyablement utile est la possibilité de modifier l'indentation. :15,30>>
indente deux fois toutes les lignes de 15 à 30 (inclus), tandis que :15,30<<
désindente deux fois les mêmes lignes.
=
tout aussi, sinon plus, utile que <<
et >>
.
la commande dd (supprimer la ligne courante). J'utilise tellement celui-ci.
De plus, pouvoir taper quelque chose comme 3dd et supprimer les 3 lignes suivantes est merveilleux. Je n'ai jamais vu ça dans un autre éditeur = D
La .
commande. Il répète la dernière commande.
Accès rapide à la ligne de commande. CTRL + Z ou: wqa m'obtiendra une ligne de commande en moins de 1 seconde sans que ma main ne quitte le clavier.
:!/bin/bash
. J'utilise :!
assez fréquemment.
:sh
Il est assez difficile de répondre à cela, en raison quelque peu de l'imprécision de la question, et du fait que les IDE diffèrent, et beaucoup offrent des fonctionnalités que d'autres ne le font pas (et le fait que je n'en ai que quelques-unes).
Cependant, ce que je crois distingue Vim des autres éditeurs (oui, même Emacs, sur celui-ci), c'est que c'est vraiment un excellent éditeur . Au fil du temps, j'ai utilisé de nombreux éditeurs et je peux honnêtement dire que très peu viennent avec un ensemble complet de fonctionnalités pour manipuler du texte, comme Vim.
Mon style de manipulation de texte, par exemple, comprend très souvent l'utilisation de la duplication (ligne / sélection de plusieurs lignes) et le déplacement (ligne / sélection de plusieurs lignes) de haut en bas, pour lesquels j'ai depuis longtemps défini des raccourcis rapides. Ces fonctionnalités me manquent dans la plupart des IDE (même si j'ai entendu dire que ReSharper pour VS avait quelque chose de similaire).
Saviez-vous qu'il existe un plugin vi pour eclipse ? Il en coûte 15 euros (20ish $ US) , mais il est donc la peine. Plus dd
au milieu d'un document, et manque toutes les petites choses utiles.
Peut-être un peu hors sujet mais j'ai pensé qu'il valait la peine d'être souligné.
Selon la langue que vous programmez, restez fidèle à l'ide, ou obtenez l'idé qui offre le plus de refactorisations que vous pouvez trouver, obtenez un resharper pour visual studio si vous utilisez c #, intellij pour java ou visual assist pour visual studio, maximiser les refactorisations en éclipse ou en netbeans.
Nous devrions passer de la manipulation de texte à la manipulation de code, les outils de refactorisation vous donnent cette capacité. Si vim vous donne toutes les fonctionnalités, je ne veux plus vraiment avoir affaire à un éditeur de texte
La plupart des IDE ne vous permettent pas de diviser l'écran. J'adore cette fonctionnalité dans VIM.
<C-w>