Admettez-le: chaque fois que vous voyez une personne utiliser Vim, vous envisagez la possibilité qu’elle sache quelque chose que vous ne connaissez pas. Pour quelle autre raison utiliseraient-ils un éditeur qui, dans votre esprit, est daté, de courrier indésirable open source? Pensez ce que vous souhaitez, mais il y a une raison pour laquelle les meilleurs développeurs ne jurent que par Vim.
Tutoriel republiéToutes les quelques semaines, nous revoyons certains des articles préférés de nos lecteurs tout au long de l'histoire du site. Ce tutoriel a été publié pour la première fois en février 2011.
Jusqu'à ce que vous ayez passé au moins un mois à travailler tous les jours avec l'éditeur, vous détesterez certainement ça! C'est précisément la raison pour laquelle la majorité des nouveaux arrivants vont jouer avec Vim pendant une journée, se dégoûter et ne plus jamais y toucher. Ce qui est dommage, c’est que si ces développeurs pouvaient surmonter les pièges, ils seraient présentés avec une rapidité et une flexibilité incroyables..
C'est vrai: Vim n'est pas votre éditeur de code standard (c'est mieux). Transférer de TextMate à Vim, par exemple, sera un processus totalement différent du passage de TextMate à Espresso. Gardez toujours cela à l'esprit lorsque vous vous déchirez les cheveux, car Vim refuse apparemment de saisir du texte lorsque vous tapez.
Bien qu'il existe plusieurs modes dans Vim, nous allons nous concentrer sur les trois plus importants. Mais avant de continuer, notez que chaque touche remplit une fonction différente, en fonction du mode dans lequel vous vous trouvez. Encore plus déroutant - au début - une lettre majuscule déclenche une action différente de celle en minuscule.
En mode commande, une pression sur la lettre minuscule "i" déclenchera le "mode insertion". Cependant, un "I" majuscule déplacera le curseur au début de la ligne. Cela peut paraître déroutant, mais cela vous donne une puissance incroyable!
V
pour passer en mode visuel, puis tapez 5j
à sélectionner cinq lignes plus bas. Enfin, vous appuyez sur ré
, pour supprimer. Je sais que cela semble incroyablement déroutant au début. Vous pourriez penser à vous-même, "Tout ce travail ne fait que supprimer cinq lignes?" La vérité est que cette méthode est nettement plus rapide.
Pourquoi voudriez-vous tourner le nez à plus de trois décennies de développement?
Vous entendrez peut-être vos amis dire: "Vim n'est-il pas un ancien éditeur de code?" Eh bien, vous pourriez dire ça; il existe depuis plus de trente ans. Bien que honnêtement, pourquoi voudriez-vous tourner le nez à plus de trois décennies de développement? C'est plus long que j'ai été en vie! Mieux encore, même à ce jour, Vim est en développement actif. La plus récente version, 7.3, est disponible depuis août 2010..
Deuxièmement, il est important de garder à l'esprit que Vim n'est pas Vi. Si votre seule expérience est avec ce dernier, prenez le temps de télécharger la dernière version et de vous amuser avec les nouvelles fonctionnalités. Vous serez agréablement surpris!
Si Vim ne peut pas le faire en natif, vous pouvez parier qu'il existe un plugin disponible quelque part!
Vous constaterez rapidement que, si Vim ne peut pas exécuter une tâche particulière, il est probable qu'un plugin ait été développé pour fournir cette fonctionnalité. Par exemple, considérons l'excellente fonctionnalité d'extraits de TextMate. Bien que Vim ne le supporte pas de manière native, vous pouvez télécharger le plugin snipMate, ce qui devrait rendre l'expérience pratiquement identique à celle à laquelle vous êtes habitué..
Le moins de mouvement, mieux c'est.
Tout d'abord, ce n'est pas vrai. Cela aurait pu être le cas avec Vi, mais vous êtes libre d’utiliser Vim de la manière qui vous convient le mieux. Utilisez donc les flèches directionnelles qui vous conviennent le mieux, mais n'oubliez pas qu'il y a une raison pour laquelle la plupart des utilisateurs de Vim ne le font pas..
le h, j, k, l
les mappages de touches vers la gauche, vers le bas, vers le haut et vers la droite servent respectivement à deux fins:
Quand tout est dit et fait, vous sont la personne qui utilise l'éditeur. Si, au début, vous vous sentez plus à l'aise avec les touches fléchées, alors ne vous gênez pas.!
C'est bon! Vim n'est pas pour tout le monde. En tant que personne qui tente au moins de faire du design de temps en temps, je peux pleinement attester que Vim n'est peut-être pas la meilleure solution pour les concepteurs..
Les développeurs ne sont pas des concepteurs; il est naturel que ce fait se reflète dans leur choix d'éditeurs.
Si vous constatez que la majeure partie de vos journées sont consacrées à l’utilisation de HTML et de CSS, alors peut-être que Vim n’est pas pour vous. Cela ne veut pas dire que vous ne devriez pas tenter le coup; mais c'est certainement compréhensible, si vous décidez de vous en tenir à un éditeur plus convivial, tel que Coda.
Clair et simple, c'est nul. Certes, chaque éditeur a ses points forts, mais vous constaterez que Vim est incroyablement puissant et, plus important encore, flexible. Il existe des centaines de plugins disponibles (gratuits) qui prendront en charge pratiquement tout type de fonctionnalité dont vous avez besoin..
De nombreux nouveaux arrivants citent souvent la commande intégrée "Change Inner" comme un argument de vente énorme. C'était certainement pour moi! Disons que vous avez le code suivant:
var joe = 'plombier';
En supposant que le curseur se trouve au début de cette ligne et que vous souhaitez modifier la valeur "plombier" en "noir", vous pouvez utiliser les touches fléchées ou la souris pour sélectionner et modifier le texte. Avec Vim, le processus est énormément simplifié. Tapez simplement: ci '
. Cela signifie "Changer les citations intérieures" ou recherchez la prochaine série de guillemets simples et modifiez la valeur à l'intérieur..
ul> li le texte de mon élément de liste.
. Ce fut un premier reproche que j'ai eu avec Vim, aussi. Quand vous lancez MacVim pour la première fois, vous êtes jeté dans la meute de loups! Pas de code en surbrillance, pas de formatage, pas d'indentation intelligente… pas de rien! Surtout si vous utilisez un éditeur Vim personnalisé, il devrait au moins y avoir un fichier vimrc de base pour vous aider à démarrer. Ce peut être une expérience intimidante d'essayer de comprendre comment appliquer vos préférences personnalisées..
Pour ceux qui ne connaissent pas un fichier vimrc, il s’agit essentiellement d’un fichier qui vous permet de spécifier vos préférences d’éditeur..
Utilisez ceci comme entrée (cliquez sur le bouton Développer ci-dessous):
"Fichier .vimrc" Maintenu par: Jeffrey Way "[email protected]" http://net.tutsplus.com "" Oubliez la compatibilité avec Vi. On s'en fout. set nocompatible "Activer les types de fichiers filetype sur le type de plugin sur la syntaxe de retrait de type de fichier sur" Ecris l'ancien fichier lors du changement de fichier. set autowrite "Affiche la position actuelle du curseur dans le coin inférieur droit. set ruler" Vous voulez un leader de carte différent de \ "set mapleader =", ";" Avez-vous déjà remarqué un léger décalage après avoir tapé la touche de direction + commande? Set timeoutlen = 500 "Basculer entre les tampons sans enregistrer le jeu caché" Définissez le jeu de couleurs. Modifiez ce paramètre selon vos préférences. "Voici 100 choix parmi: http://www.vim.org/scripts/script .php? script_id = 625 colorscheme twilight "Définissez le type et la taille de la police. Dépend de la résolution. Écrans plus grands, préférez h20 set guifont = Menlo: h14" Onglet set stuff tabstop = 3 set shiftwidth = 3 set softtabstop = 3 set expandtab "Afficher le showcmd commande "Afficher les numéros de lignes numéro" "Vous préférez la numérotation relative des lignes?" set relative numumber "" Indent set set smartindent set autoindent "Toujours afficher la ligne d'état laststatus = 2" Préférer une hauteur de ligne légèrement supérieure set linespace = 3 "Meilleure retour à la ligne set wrap set textwidth = 79 set formatoptions = qrn1" Recherche incrémentielle "set incsearch" Mettez en surbrillance la recherche set hlsearch "recherche non sensible à la casse set ignorecase set smartcase" Masquer la barre d'outils MacVim par défaut Les paragraphes de texte durs apq gqip "Activer le pliage du code set foldenable" Masquer la souris lors de la saisie de set mousehide "Raccourci pour plier les balises avec un leader (généralement \) + ft nnoremap ft Vatzf "Créer un dictionnaire pour les extensions personnalisées: dictionnaire + = / Utilisateurs / jeff_way / .vim / dict.txt" Ouvre une scission verticale et bascule (\ v) nnoremap v v l "Fractionner les fenêtres en dessous de la fenêtre en cours. set splitbelow" paramètres de session set sessionoptions = redimensionner, redéfinir, redéfinir, redimensionner, tampons, pages à onglet, plis, curdir, aide "Aidez-nous à configurer un modèle HTML5 pour tous les nouveaux fichiers .html" 0r $ VIMHOME / templates /%: e.tpl "Charge le tampon actuel dans Firefox - Spécifique pour Mac. Abbrev ff:! Open -a firefox.app%: p "Mapper un répertoire de changement sur le bureau - nmap spécifique à Mac d: cd ~ / Bureau : e. "Raccourci pour éditer le fichier vimrc dans un nouvel onglet nmap ev: tabedit $ MYVIMRC "Modifiez la clé d’extension du plug-in de codage zen en shift + e, par exemple: user_zen_expandabbr_key = ' '"Raccourci plus rapide pour commenter. Nécessite le plugin T-Comment c "Gain de temps; mappe la barre d'espace sur deux points nmap : "Remplace automatiquement le répertoire actuel par celui du fichier dans la mémoire tampon autocmd BufEnter * cd%: p: h" Compléter le code de la carte en, + tab imap "Jeu de complétions de ligne de commande plus utile wildmenu" Menu de complétion automatique défini wildmode = list: longest "http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE set completeopt = longest, menuone inoremap pumvisible ()? "\ ":" \ u \ "inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Vers le bas> ":" " 'inoremap pumvisible ()? ' ': \' = pumvisible ()? "\ Vers le bas> ":" " '"Carte clé d'échappement à jj - beaucoup plus rapide imap jj "Supprimer tous les tampons (via Derek Wyatt) nmap ,da: exec "1,". bufnr ('$'). "bd" "Bubble single lines (kicks butt)" http://vimcasts.org/episodes/bubbling-text/ nmap ddkP nmap ddp "Bubble lignes multiples vmap xkP '[V'] vmap xp '[V'] "Sourcez le fichier vimrc après l'avoir sauvegardé. Ainsi, vous ne devez pas recharger Vim pour voir les modifications. if has (" autocmd ") augroup myvimrchooks au! autocmd bufwritepost .vimrc source ~ /. vimrc augroup END endif "navigation plus facile des fenêtres nmap h nmap j nmap k nmap l "------------------------" "REGLAGES DU NERDTREE PLUGIN" ------------------ ------ "" Raccourci pour NERDTreeToggle nmap nt: NERDTreeToggle "Afficher les fichiers cachés dans NerdTree laisser NERDTreeShowHidden = 1" ouvrir NERDTree et le curseur de la mise au point dans un nouveau document numérisé automatiquement. et dolore magna aliqua. iab llorem Lorem ipsum dolor sit amet, consectetur elip eliting elit, insaisissable temporairement, mais nous avons également besoin de savoir comment nous allons vivre. corrige. Juste par exemple. Ajoutez le votre ci-dessous. iab teh iab Teh The "Rendez-vous à la maison plus facilement" hm est plus facile à taper que: cd ~ nmap hm: cd ~ / "Triez alphabétiquement les propriétés CSS dans le fichier avec: SortCSS: commande! SortCSS: g # \ (\ n \) \ @<=#.,//sort " Shortcut to opening a virtual split to right of current pane " Makes more sense than opening to the left nmap bv: bel vsp "enregistre le fichier lorsque la fenêtre Vim perd son focus au FocusLost *: wa" les sauvegardes set backupdir = ~ / .vim / tmp / backup // "le répertoire des sauvegardes = ~ / .vim / tmp / swap //" fichiers swap définir la sauvegarde "activer la sauvegarde" Plus besoin d'étirer la navigation dans les fichiers "noremap h;" noremap jh "noremap k gj" noremap l gk "noremap; l définir showmatch" afficher les crochets correspondants "print empty carte tag! ; h 5hi
Moi non plus - du moins pas plus que moi aussi -, il existe une variété d'éditeurs Vim dédiés qui offrent une expérience plus semblable à une interface graphique Windows / Mac.
Ces éditeurs fourniront un support pour les types de frappe qui sont enracinés dans votre corps, tels que "Commande + F
"rechercher, ou"Commande + W
"fermer la fenêtre courante.
Rappelez-vous comment, à l'école, parfois, l'élève assis à côté de vous était capable d'expliquer et de vous aider à comprendre un concept difficile plus que l'enseignant? La raison en est qu’une fois que vous maîtrisez un métier, il est difficile de vous rappeler ce qui vous a personnellement causé le plus de problèmes. De septembre à octobre, je me suis lancé dans un défi de quatre semaines, intitulé «S'aventurer dans Vim». Après avoir entendu d'innombrables développeurs extrêmement talentueux louer cet éditeur de code apparemment vieux de dix ans, j'ai décidé qu'il valait la peine de perdre un mois de mon temps. comprendre pourquoi tant de gens considèrent Vim comme le meilleur éditeur de la planète.
Bien sûr, vous pouvez, certes, que ce n’est pas aussi convivial que, disons, la fonctionnalité de serveur distant de Coda. En parlant de panique, si vous êtes un utilisateur de Transmit, vous pouvez envisager d’installer le plug-in Transmit FTP..
"Ce script vous permet de télécharger le fichier actuel via Transmit directement à partir de Vim. Pour que cela fonctionne, vous devez travailler sur un fichier lié à une connexion de transmission, et" DockSend "doit être activé pour cette connexion."
Avec ce plugin, lorsqu’on édite un fichier avec une connexion de transmission (fichier ouvert via transmission), il suffit d’appuyer sur Contrôle + U
pour renvoyer ces mises à jour sur votre serveur distant. C'est un jeu d'enfant!
En vérité, cependant, vous devriez essayer d'adopter un meilleur processus de construction / déploiement. De cette façon, plutôt que d’utiliser FTP, vous pouvez simplement git push
.
Bien sûr, il y a une poignée de raisons pour ne pas utiliser Vim. Il a une courbe d'apprentissage abrupte et nécessite de repenser complètement le fonctionnement d'un éditeur de code. Cela dit, il y a des centaines de raisons pour lesquelles vous devrait utilisez Vim. La seule question est: pourquoi n'êtes-vous pas?