821 votes

Quels sont les coins sombres de Vim dont votre mère ne vous a jamais parlé ?

Il existe une pléthore de questions où les gens parlent d'astuces courantes, notamment " Conseils et astuces pour Vim+ctags ".

Cependant, je ne fais pas référence aux raccourcis couramment utilisés que quelqu'un de nouveau à Vim trouverait cool. Je parle d'un utilisateur expérimenté d'Unix (qu'il soit développeur, administrateur, les deux, etc.), qui pense savoir quelque chose dont 99% d'entre nous n'ont jamais entendu parler ou rêvé. Quelque chose qui non seulement rend son travail plus facile, mais qui est aussi COOL et pirate . Après tout, Vim réside dans le système d'exploitation le plus riche en coins sombres du monde, il devrait donc avoir des subtilités que seuls quelques privilégiés connaissent et veulent partager avec nous.

798voto

skinp Points 2096

Ce n'est peut-être pas quelque chose que 99% des utilisateurs de Vim ne connaissent pas, mais c'est quelque chose que j'utilise quotidiennement et que tout utilisateur de Linux+Vim doit connaître.

Commande de base, mais extrêmement utile.

:w !sudo tee %

J'oublie souvent de faire un sudo avant de modifier un fichier sur lequel je n'ai pas les droits d'écriture. Lorsque je veux enregistrer ce fichier et que j'obtiens une erreur d'autorisation, il me suffit de lancer la commande vim pour enregistrer le fichier sans avoir à l'enregistrer dans un fichier temporaire et à le recopier ensuite.

Vous devez évidemment être sur un système sur lequel sudo est installé et avoir les droits sudo.

627voto

Chad Birch Points 39087

J'ai découvert récemment quelque chose que j'ai trouvé très cool :

:earlier 15m

Rétablit le document tel qu'il était il y a 15 minutes. Peut prendre différents arguments pour la durée du retour en arrière que vous souhaitez, et dépend des niveaux inférieurs. Peut être inversé avec la commande opposée :later

419voto

Jeffrey Knight Points 2654

: ! [commande] exécute une commande externe pendant que vous êtes dans vim.

Mais ajoutez un point après les deux points -- :. ! [commande] -- et la sortie de la commande s'affichera dans votre fenêtre actuelle. C'est : . !

Par exemple :

:.! ls

Je l'utilise souvent pour ajouter la date du jour dans un document que je suis en train de taper :

:.! date

316voto

dbr Points 66401

Pas exactement obscure, mais il y a plusieurs commandes "supprimer dans" qui sont extrêmement utiles, comme

  • diw pour effacer le mot en cours
  • di( pour supprimer dans les parens actuels
  • di" pour supprimer le texte entre les guillemets

D'autres peuvent être trouvés sur :help text-objects

188voto

sharth Points 25625
:%!xxd

Faire de vim un éditeur hexagonal.

:%!xxd -r

Revenir en arrière.

Avertissement : Si vous n'éditez pas en binaire (-b), vous risquez d'endommager le fichier. - Josh Lee dans les commentaires.

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