Je suis une programmation Ruby qui essaie de passer de Textmate à MacVim et j’ai du mal à parcourir les listes énormes de choses que vous pouvez faire VIM Je suis fatigué d'entendre "Vous pouvez utiliser" I "pour insérer du texte ou" a "pour ajouter du texte après le caractère ou" A "pour ajouter du texte à la fin de la ligne, ou… "Je ne peux pas imaginer que tout le monde utilise les 20 touches du clavier différentes pour naviguer dans le texte, environ 10 touches pour commencer à ajouter du texte et 18 façons de sélectionner visuellement un bloc interne. Ou vous !?
Ma feuille de triche idéale serait les 30 à 40 touches ou commandes les plus utilisées que tout le monde utilise pour écrire du code quotidiennement, ainsi que les plugins indispensables que les rubyistes utilisent quotidiennement et les 10 commandes les plus utilisées. En théorie, une fois que j'ai cela et que je commence à devenir aussi compétent en VIM que je suis dans Textmate, , alors je peux commencez à apprendre les milliers de commandes VIM qui me rendront plus efficace.
Ou est-ce que j'apprends VIM complètement dans le mauvais sens?
Voici une fiche de conseils que j'ai écrite une fois, avec les commandes que j'utilise réellement régulièrement:
<Esc>
vous permet de sortir de n'importe quel mode et de revenir au mode commandeToutes les commandes d'insertion sont terminées par <Esc>
pour revenir au mode commande.
Toutes les commandes de changement sauf r et [~ # ~] r [~ # ~] se terminent par <Esc>
pour revenir au mode commande.
<motion>
_ change le texte dans le sens du mouvement<motion>
supprime dans le sens du mouvementname
écrit le fichier sur le disque en tant que name
tags
); ^ T retourne à la position précédente (pile arbitraire de positions conservée)Vim présente certaines fonctionnalités qui facilitent la mise en évidence des lignes qui ont été modifiées à partir d'une version de base dans le contrôle de source. J'ai créé un petit script vim qui rend cela facile: http://github.com/ghewgill/vim-scmdiff
http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
C'est la meilleure chose qui ait jamais été d'apprendre le VIM.
Voici un excellent aide-mémoire pour vim :
Avez-vous parcouru le tutoriel intégré de Vim? Sinon, allez à la ligne de commande et tapez vimtutor
. C'est un excellent moyen d'apprendre les commandes initiales.
Vim offre une flexibilité et une puissance incroyables et, si vous êtes comme la plupart des utilisateurs de Vim, vous apprendrez beaucoup de nouvelles commandes et en oublierez les anciennes, puis vous les réapprendrez. L’aide intégrée est utile et mérite une navigation périodique pour apprendre de nouvelles choses.
Il existe plusieurs bonnes FAQ et feuilles de triche pour vim sur Internet. Je recommanderais de chercher vim + faq
et vim + cheatsheet
. Cheat-Sheets.org # vim est une bonne source, comme tel Vim Tips wiki .
Ce que la plupart des gens font, c'est de commencer avec les bases nues, comme peut-être i, yw, yy, et p. Vous pouvez continuer à utiliser les touches fléchées pour vous déplacer, sélectionner du texte avec la souris, utiliser les menus, etc. Ensuite, lorsque quelque chose vous ralentit, vous recherchez le moyen le plus rapide de le faire et vous ajoutez progressivement de plus en plus de commandes. Vous pouvez apprendre une nouvelle commande par jour pendant un certain temps, puis elle passera à une par semaine. Vous vous sentirez assez productif dans un mois. Après un an, vous aurez un répertoire assez solide et après 2-3 ans, vous ne penserez même plus consciemment à ce que vos doigts sont en train de taper, et cela aura l'air bizarre si vous devez l'épeler pour quelqu'un. J'ai appris vi en 1993 et je reçois encore 2 ou 3 nouvelles commandes par an.
La feuille de triche de @Greg Hewgill est très bonne. J'ai commencé mon changement de TextMate il y a quelques mois. Maintenant, je suis aussi productif que je l'étais avec TM et je suis constamment étonné par le pouvoir de Vim.
Voici comment j'ai changé . Peut-être que cela peut vous être utile.
Grosso modo, je ne pense pas que ce soit une bonne idée de faire un changement radical. Vim est très différent et il vaut mieux y aller progressivement.
Et pour répondre à votre sous-question, oui, j’utilise tous les jours iaIAoO
pour passer en mode insertion. Cela semble certes bizarre au début, mais vous n'y pensez plus vraiment après un moment.
Certaines commandes incroyablement utiles pour toutes les tâches liées à la programmation:
r
et R
pour remplacer les caractères<C-a>
et <C-x>
à augmenter et diminuer les nombrescit
pour changer le contenu d'une balise HTML et ses variantes (cat
, dit
, dat
, ci(
, etc.)<C-x><C-o>
(orienté vers ,,
) pour l'omnification<C-v>
Une fois que vous êtes habitué à la méthode Vim, il devient très difficile de ne pas frapper o
ou x
tout le temps lors de la modification de texte dans un autre éditeur ou champ de texte.
Mettez ceci dans votre fichier .bashrc pour ouvrir vim avec le dernier fichier édité à la dernière ligne modifiée
alias vil="vim +\"'\"0"
Je ne peux pas imaginer que tout le monde utilise les 20 touches du clavier différentes pour naviguer dans le texte, environ 10 touches pour commencer à ajouter du texte et 18 façons de sélectionner visuellement un bloc interne. Ou vous !?
Je fais.
En théorie, une fois que j'ai cela et que je commence à maîtriser aussi bien VIM que dans Textmate), je peux alors commencer à apprendre les milliers d'autres VIM commandes qui me rendra plus efficace.
C'est la bonne façon de le faire. Commencez par les commandes de base, puis choisissez celles qui améliorent votre productivité. J'aime suivre ce blog pour des conseils sur la façon d’améliorer ma productivité avec vim.
tuxfiles.org est un très bon aide-mémoire. Je pense qu'il y a quelques points à apprendre les commandes:
d$
), lancez une rapide recherche sur Google pour voir si vous pouvez trouver une commande.Outre ces conseils, vous devez comprendre certains concepts de base.
d$
. Pour mettre une ligne après un caractère particulier, utilisez v$
. Alors remarquez que $
indique que vous allez faire quelque chose jusqu'à la fin de la ligne à partir de l'endroit où se trouve actuellement votre curseur.u
est annulé et ctrl+r
est refait.3dd
supprime la ligne sur laquelle se trouve votre curseur et les deux lignes suivantes, de la même façon 3yy
va copier la ligne sur laquelle se trouve votre curseur et les deux lignes suivantes.:ls
pour lister les tampons, et :bn
, :bp
pour les parcourir.:help
C’est probablement le meilleur moyen d’appréhender les ficelles du métier, ainsi que le reste des commandes que vous apprendrez grâce à son utilisation.