Pourquoi j'aime Vim: ce sont les fonctionnalités les moins connues qui le rendent si incroyable

Depuis que j'ai commencé à utiliser Vim en 2016, j'ai découvert plusieurs fonctionnalités moins connues que Vim propose prêtes à l'emploi sans aucun plug-in.

Pouvez-vous couvrir quelques notions de base avant de commencer à vous promener sur ces nouvelles choses?

Oh, bien sûr! Avant de copier-coller quelques commandes d'une feuille de triche, je vais faire une hypothèse audacieuse: vous ne liriez pas ceci si vous vouliez une feuille de triche et que vous connaissiez déjà les bases de Vim.

Vous venez peut-être d'entendre que les distributions Linux sont livrées avec un éditeur de texte de ligne de commande par défaut appelé Vim,et voudrez peut-être simplement essayer.

Alors, supposons que vous êtes complètement nouveau dans tout ce jeu et que vous partez de ce dont nous avons besoin comme base (sans histoire / théorie ennuyeuse).

REMARQUE: Si vous connaissez les bases, cliquez ici pour les faire défiler

Quelle est votre affaire ici par rapport à des tonnes d'autres articles sur Vim?

La plupart des articles d'introduction sur Vim commencent par les modes de Vim, insertion, sauvegarde et sortie. Si vous êtes vraiment d'humeur au mode d'apprentissage de la perfection théorique, n'hésitez pas à lire tout ce qui vous aide dans les wikibooks.

Il y a aussi quelques bons livres et articles qui vous disent qu'il y a une philosophie derrière le fonctionnement de Vim et que les commandes de VI / Vim sont censées être combinées. Absolument vrai et je suis sûr que vous l'apprécierez une fois que vous vous serez habitué à l'éditeur et à la puissance qu'il fournit.

J'ai entendu des histoires amusantes et vu des images amusantes sur la courbe d'apprentissage de Vim. Est-ce vrai? Est-ce vraiment si mauvais?

Eh bien, les haineux vont détester? Cependant, selon moi, l'image qui donne un peu une représentation correcte de Vim est:

La majorité des articles sur Vim font référence à la * courbe * d'apprentissage * comme à un * mur * d'apprentissage *, mais bon, il y a une certaine positivité: regardez de l'autre côté du mur!

Pour les débutants, c'est littéralement un mur puisqu'ils n'ont jamais rien fait de tel avant d'utiliser un éditeur en ligne de commande. Ce qui m'a le plus séduit lorsque j'ai commencé en tant que débutant, c'est l'omniprésence de Vim.

Connectez-vous à n'importe quelle machine (non Windows) depuis n'importe quel terminal et vous pouvez littéralement obtenir un éditeur en tapant * vi * les yeux fermés. L'éditeur apparaîtra devant vous!

Une autre chose qui m'a séduit est la possibilité de travailler sans souris et sans perdre de temps productif sur le pavé tactile ou obtenir une souris pour ordinateur portable.

Je sais, je sais, j'entends certains d'entre vous crier «Emacs! Emacs! » J'ai compris. Mais une fois que je suis devenu accro à Vim, je ne me suis jamais vraiment intéressé à emacs (peut-être à cause de l'installation requise). Donc, oui, emacs est aussi génial je suppose. N'hésitez pas à sauter du bateau avant de commencer à naviguer sur ce beau voyage avec VI (m).

Je viens d'ouvrir mon terminal et de taper vi et d' appuyer sur la touche Retour. Tout ce que je vois, c'est un écran de bienvenue. Je ne sais pas taper et je ne sais pas comment m'en sortir. Êtes-vous sûr que c'est un éditeur puissant avec des capacités?

100% sûr. Le comportement dont vous venez d'être témoin est le * mur * que nous avons vu plus tôt. Croyez-moi, VI (m) peut faire beaucoup d'autres choses. Il a juste ses propres façons de l'utiliser. Vous pouvez éditer des fichiers, ouvrir des onglets, diviser l'écran horizontalement ou verticalement, parcourir le système de fichiers, exécuter des commandes linux sans quitter votre fichier, déclencher des builds à partir de votre code source sans quitter le fichier, marquer des répertoires, encore mieux: marquez les lignes d'un fichier, trouver et remplacer des mots, bien sûr copier-coller et bien plus encore.

Ouais! C'est un gros problème pour un éditeur de les soutenir. Meh! Tout le monde fait ça. Quel est le problème?

Il n'y a pas grand-chose, le seul problème que je vois est la possibilité de se concentrer sur votre fichier / code sans quitter le clavier. Vraiment, si cela ne vous dérange pas d'utiliser une souris, alors allez-y et ouvrez votre éditeur MS word / GUI et faites toutes les modifications que vous souhaitez faire.

C'est suffisant. Mais, sérieusement pourquoi pas un IDE pour certains travaux?

D'accord, donc vous êtes un développeur et avez eu un certain goût / amour pour un IDE. Non, VI (m) ne remplace pas votre brillant IDE. VI (m) n'a pas les capacités impressionnantes prêtes à l'emploi de votre IDE. VI (m) est juste de petite taille (package et installation) par rapport aux IDE volumineux et peut être utilisé sans aucune configuration ni installation. Sérieusement, VI (m) n'est pas à la hauteur de certaines grandes choses que votre IDE fournit.

Assez parlé, montrez-moi les bases?

Bien sûr, avant de commencer, gardez simplement à l'esprit que tout utilisateur de Vim doit essentiellement gérer le mode commande et le mode insertion. Il n'y a pas d'échappement (littéralement, pas la touche Echap).

Disons que vous utilisez un éditeur et que vous souhaitez supprimer une fonction longue en langage C. Les étapes simples que vous effectuez sont les suivantes: Placez votre curseur au début de la ligne, puis appuyez sur Maj + Flèche bas jusqu'à la fin ou utilisez la souris. Cette action que vous deviez faire pour sélectionner ces lignes vous obligeait à * arrêter * la saisie et à appuyer sur les touches. N'est-ce pas? Ne me dites pas que vous tapiez quelque chose et que vous appuyiez simultanément sur les touches pour sélectionner par magie le corps de votre fonction.

Être raisonnable. Vous avez interrompu la saisie et effectué le travail de sélection pour indiquer à votre éditeur que vous voulez faire quelque chose avec ce texte (copier / couper / gras / italique / quoi que ce soit).

Cette pause que vous avez prise équivaut à être en mode commande dans VI (m). C'est le moment où vous dites au VI (m) que vous voulez faire des actions sur certaines lignes / mots / quoi que ce soit et que vous n'allez pas taper. Maintenant, VI (m) vous jette hors du mode insertion et vous ne pouvez plus taper du texte dans votre fichier. De toute évidence, l'autre mode dans lequel vous pouvez réellement taper votre fichier est le mode d'insertion.

BTW, si vous vous demandez comment sélectionnez-vous le corps de la fonction sans sélectionner de texte ou à l'aide de la souris, j'y parviens en plaçant le curseur sur les accolades ouvrantes et en utilisant des touches: d%

Oui, cela supprime le contenu de votre corps de fonction. Non, ce n'est pas une combinaison effrayante de touches à retenir! dindique que vous souhaitez supprimer quelque chose. %va déplacer le curseur à la fin de l'accolade correspondante.

Maintenant que nous avons établi les modes de base, plongons dans le VI de base (m).

Si vous connaissez le nom du fichier que vous écrivez:

$ vi myfile.c

Si vous n'êtes pas sûr du nom du fichier et que vous souhaitez commencer à taper:

$ vi

Dès que vous ouvrez vi, vous serez en mode commande. Pour entrer en mode i nsert, appuyez sur i. Tapez ce que vous souhaitez. Appuyez sur Escpour revenir au mode commande. Vous avez maintenant quelques options pour quitter en fonction de la façon dont vous avez ouvert vi.

Si vous avez donné un nom de fichier: :wvolonté w rite ces changements en toute sécurité sur le disque. :qvolonté q Uit l'éditeur. Vous pouvez combiner ces actions avec: :wqet Returntouche

If you did not give a filename: :wq filename.c will write the contents to the file filename.c and quit the editor. If you are not interested in the text you wrote and wish to exit without saving anything: :q! and you are out! The ! is required at the end to say : “Yes, I am sure I don’t want to save the contents and I want to get out urgently”

[DEMO] Basic vim usage

To start the vim editor: Use vim command on shell To start editing a file using vim, use : vim filenameasciinema.org

There you go! You just created, edited and saved(or may be not) your first vi file. Congratulations ?

Comme je l'ai mentionné plus tôt, ce n'est pas une introduction pour débutant à VI (m). Il y a plein d'autres articles (je fournirai des références à la fin de l'article) pour commencer. Je viens d'insérer cette intro pour ne pas être déçu après avoir atterri sur cette page et ne trouver rien à apprendre?

C'est la ligne où les débutants disent au revoir aux utilisateurs intermédiaires et se dirigent vers la section de référence pour des articles d'introduction plus brillants.

Bienvenue aux utilisateurs intermédiaires. Ce sont des fonctionnalités intéressantes de VI (m) dont je n'étais pas au courant. Mais maintenant, je les utilise quotidiennement pour être plus productif.

Pour ceux d'entre vous qui préfèrent TL; DR:

  • onglets
  • sessions
  • numéros de ligne (+ marques) et copier / coller
  • plis
  • indention avec =
  • insertion-complétion
  • netrw
  • scission / fenêtres
  • :! et un peu sur :make

Pages à onglets Vim

Avez-vous mentionné les onglets dans Vim? Je ne savais pas que cela existait!

I know, right! A tab page is a page with one or more windows with a label (aka tab) at the top.

If you are interested in knowing more about windows, buffers, tab pages: technical details

Have a look:

Steps:

  • Open Vim with any file or just Vim: $ vim file1
  • Type the contents of file and get into command mode (Press Esc )
  • :tabedit file2 , will open a new tab and take you to edit file2
  • :tabedit file3 , will open a new tab and take you to edit file3
  • To navigate between these tabs, you can be in normal mode and type : gt or gT to go to next tab or previous tab respectively. You can also navigate to a particular index tab (indexed from 1) using {i}gt where, i is the index of your tab. Example: 2gt takes you to 2nd tab
  • To directly move to first tab or last tab, you can enter the following in command mode: :tabfirst or :tablast for first or last tab respectively. To move back and forth : :tabn for next tab and :tabp for previous tab
  • You can list all the open tabs using : :tabs
  • To open multiple files in tabs: $ vim -p source.c source.h
  • To close a single tab: :tabclose and to close all other tabs except the current one: :tabonly . Use the suffix! to override changes of unsaved files

[DEMO] Tabs in VIM

VIM supports tabs to open multiple files and work with themasciinema.org

I think this feature enables us to effectively save time by sharing the buffer between tabs and enabling us to copy paste between tabs and keep multiple sessions of different tab set for category of work. Example: You can have a terminal tab with all Vim tabs of source code C files only and you can have another terminal tab with all Vim tabs of header files (.h).

Tabs provide so much convenience to keep all my files open and access them when I want. However, isn’t it a pain to open all tabs every time I reboot or close and open the terminal?

Right! We all like to have our own sessions of work in which we work with a set of files and would like Vim to restore that session of tabs the way we left it.

Vim allows us to save and restore those tab sessions! ✋

Steps:

  • Open any number of tabs you wish to work with
  • From any tab, press Esc and enter the command mode
  • Type :mksession header-files-work.vim and hit enter
  • Your current session of open tabs will be stored in a file header-files-work.vim
  • To see restore in action, close all tabs and Vim
  • Either start vim with your session using : $ vim -S header-files-work.vim or open vim with any other file and enter command mode to type: :source header-files-work.vim and BOOM! All your tabs are opened for you just the way you saved it!
  • If you change any session tabs (close/open new), you can save that back using : :mks! while you are in the session

[DEMO] Sessions in VIM

VIM allows users to store their work sessions separately based on the projects they are working on. Users can easily…asciinema.org

Can I copy/cut paste without having to know line numbers?

Oh oui! Auparavant, je voyais les numéros de ligne ( :set nu) des fonctions que je voulais copier / couper. Disons que je veux copier / couper les lignes 34 à 65. J'ai utilisé :34,65y(Copy / Y ank) ou :34,65d(Cut / D elete).

Bien sûr, compter les lignes et utiliser {n}yyou {n}dd(où nest le nombre de lignes) n'est pas une option pour des centaines de lignes?

Certaines fonctions peuvent s'étendre sur plusieurs pages et vous ne voulez pas descendre uniquement pour oublier quel était le numéro de la première ligne. Il existe un moyen simple d'y parvenir sans se soucier des numéros de ligne!

Pas:

  • Entrez en mode normal, allez à la ligne de départ
  • Tapez mk(marquez le point avec l'alphabet 'k' ou utilisez un autre alphabet)
  • Descendre (page vers le bas ou autre) et passer à la ligne de fin
  • y'k will yank/copy all the lines from start to end
  • d'k will cut/delete all the lines from start to end

I have some annoying long functions at the top of my file and I don’t want to waste my time scrolling or jumping to lines. This may be a lot to ask because this is not an IDE but, by any chance can we fold the code blocks?

Absolutely! Let’s say you want to skip remembering those line numbers and walk around with your new found love *the markers*. Go to the beginning of the function body and type mb . Now, just go to the end of the function body using % (brace matching) or any other convenient technique and press zf'b and you’re done!

Before and after:

If you are comfortable using the line numbers, the command is even easier to remember: :5,16fo (fo stands for code fold). Once you have folded your code, it’s easy to toggle between open and closed views using zo (Open the code fold) and zc (Close the code fold). Don’t stress it so much. Just use za to toggle between open and closed folds ?

Let’s say you spent considerable time folding your functions in a large file, you would obviously want to retain those folds every time you open that file right? (If not, why did you waste your energy folding them!?), so there’s a solution right in your ~/.vimrc . Insert the following lines in ~/.vimrcand your code folds are saved and restored:

autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent loadview

I’m usually careful with my indentation but sometimes, I have to edit some other idiot’s source code and it bugs me to edit his/her code without indentation. Are there any magical keystrokes to make that happen?

Sure! It’s as simple as: =i{ . Really that’s all ! ( i is inner object)

[DEMO] Indentation in VIM

VIM allows blocks of code to be indented with a few keystrokes. All you have to do is place the cursor in a block of…asciinema.org

Before-after:

All you have to do is place the cursor anywhere within a block you want to indent, press Esc to enter normal mode and then: =i{ . Boom! Your entire function body (including inner blocks) is indented.

REMARQUE: ne vous attendez pas à une indentation de vos fichiers python?. Cela ne fonctionne que lorsque Vim peut identifier le début et la fin en utilisant des parenthèses ouvrantes et fermantes)

Vous pouvez également augmenter / diminuer l'indentation dans un bloc en utilisant >:; i {pour augmenter and

Je rêve peut-être mais (* voix tremblante *), je veux dire que je veux juste essayer, euh, je vais peut-être pousser très loin avec celui-ci mais (* pause de 5 secondes *) .. peu importe, bougeons à ma prochaine question

Vim est assez ouvert d'esprit pour accepter les critiques ou pour faire face au fait que ce n'est pas un IDE, allez-y, voyons ce que vous avez.

Euhmmm, désolé mais par hasard (* haletant *) avec un plugin ou quelque chose comme ça, vim a-t-il la saisie semi-automatique comme un IDE?

? Vous serez peut-être surpris, mais oui! ? et devine quoi…

* rouleaux de tambour *

* rouleaux de tambour *

* rouleaux de tambour *

* rouleaux de tambour *

Sans plugin!

Vous m'avez bien entendu! La seule condition pour que Vim vous montre des options est "Vim doit savoir de quoi vous parlez." Cela peut se faire via un fichier source inclus ou des fonctions ou variables définies.

Tout ce que vous avez à faire est de commencer à taper puis d'appuyer sur Ctrl+nen mode insertion.

Imaginez les utilisations! Surtout si vous écrivez du code C et que vous ne pouvez pas vous souvenir de l'appel exact de la bibliothèque OpenSSL, tout ce que vous avez à faire est d'inclure l'en-tête!

[DEMO] Fonction de saisie semi-automatique dans VIM

VIM propose des suggestions de saisie semi-automatique pour les mots-clés, les noms de fonctions si les fichiers d'en-tête appropriés sont inclus ou si le… asciinema.org

Permettez-moi de rappeler à nouveau: aucun plug-in requis?

REMARQUE: les fichiers d'en-tête peuvent se trouver à d'autres emplacements sur Mac et Vim peut ne pas être en mesure de les trouver. J'utilise juste un Mac pour me connecter à une machine Linux. Donc, si vous utilisez Mac, désolé.

I understand Vim is just a text editor but if you want me to work without losing focus and without exiting Vim every now and then, what options do I have if I can’t remember all the file names?

Simple, use the file explorer provided by VIM ? Yes, Vim provides a simple file explorer (*without any plugins*). Just type : :Explore from any Vim window and you will see an easy to navigate file explorer which can be navigated using ⬆️ and ⬇️ arrow keys. Press Enter/Return key to open a file/directory. Use :q to exit the explorer and vim. If you do not wish to quit vim and continue working with an open file, you have 3 options:

  1. Open the explorer in a horizontal ( :Sexplore ) or vertical ( :Vexplore ) split and exit the explorer using :q
  2. Ouvrez l'explorateur dans un autre onglet en utilisant :Texploreet quittez en utilisant:q
  3. Ouvrez l'explorateur de fichiers dans votre fenêtre actuelle, puis déchargez le tampon actuel et supprimez-le de la liste de tampons en utilisant :bdel(suppression de tampon).
REMARQUE: vous pouvez également utiliser la commande courte :Expour ouvrir l'explorateur de fichiers

Parfois, je dois répéter les mêmes étapes sur certaines lignes pour modifier quelque chose. Je suis presque sûr que Vim aura une fonctionnalité qui me permettra de le faire. Ai-je raison?

100% vrai! Vous parlez de macros et Vim prend en charge les macros. La répétition de la dernière commande exécutée est simple et peut accomplir des tâches répétitives simples. Cependant, si le traitement de texte est composé de plusieurs étapes pour obtenir un résultat, les macros sont utiles.

Prenons un exemple de fichier d'en-tête C:

void encrypt_text(char *text, int bytes) void decrypt_text(char *text, int bytes) void process_text(char *text, int bytes) void another_important_function(int bytes, double precision)

Oops! You forgot to put a semicolon at the end of each line and also you just realized that all these functions return an integer error code instead of void.

The steps you need to perform for making change in one line are:

  • Place the cursor at the beginning of the word void
  • Press cw in normal mode to delete the word void and type int
  • Press Esc , move to the end of line using Shift+a to insert ;
  • Press Esc and press ^ to return to the beginning of the edited line

Resulting in:

int encrypt_text(char *text, int bytes); void decrypt_text(char *text, int bytes) void process_text(char *text, int bytes) void another_important_function(int bytes, double precision)

You can just record this sequence of steps and replay it on all 4 lines.

All you have to do is, before you start the sequence, start recording the macro in any alphabet (let’s say a) by pressing qa in normal mode. Now your steps are being recorded in a . Once you are done with all your steps, just press q in normal mode. This will end the recording. To replay these steps, just keep the cursor at the same place where it was placed during macro. Press @a and we’re done! BOOM! Vim will repeat the same steps for you on that line! To repeat it on multiple lines, you can also use @@ after using @a command once

I know Vim is nowhere close to an IDE and I may be having some unreasonable hopes but just a quick question: Remote editing of files possible with Vim?

If you think of it considering the available resources:

[1] Vim

[2] openssh-client (Comes installed with most Linux flavors)

You are in luck my friend! Yes, Vim supports remote editing of files ?

Vim just utilizes the secure connection established by scp (secure copy) provided by openssh-client. There are times when you are working with files on multiple remote machines and it’s a waste of time to log into a machine just to edit one single file! You can relax in your current machine if you just know your remote machine credentials and path.

vim scp://[email protected]_IP_or_hostname/relative/path/of/file

For example: I need to edit a file on 10.0.18.12 stored in /home/dev-john/project/src/main.c and I have login credentials for dev-john, I can access the main.c using:

$ vim scp://[email protected]/project/src/main.c

I can use the relative path because, I can start looking for the file from the home directory of dev-john

TIP: If you access a remote machine frequently, you can create an ssh config file to create a shortcut for the connection. Create a file ~/.ssh/config with

Host remote-dev-machine Hostname 10.0.18.12 User dev-john IdentityFile ~/.ssh/id_rsa

Now you can access your file using:

$ vim scp://remote-dev-machine/project/src/main.c

If it’s confusing to remember the relative path and not intuitive, you can also specify it with an alternative:

$ vim scp://remote-dev-machine/~dev-john/project/src/main.c

Awesome! I’m already thrilled at the out-of-the-box capabilities of Vim. Looks like you’ve a solution to a lot of common editing problems. Let’s see. I have a file with over 2000 lines and the functions of my interest are located at line 9, line 768 and line 1898. I know I can jump to a line using line number but I’m not so good at remembering those numbers. Got anything for me?

Hell yeah! What you’re looking for is a local bookmark solution in Vim using letters. All you have to do is :

  • Place your cursor on any line at any position
  • Press Esc to make sure you’re in normal mode
  • Press m{lowercaseletter} where {lowercaseletter} is any letter from a-z
  • You just created a local bookmark to navigate in your file

To view all your bookmarks: Press Esc and enter command mode, type :marks and hit Enter/Return . You’ll see a list of your bookmarks. To visit any bookmark at any time, just press Esc and type `{lowercaseletter} . Kaboom! You’ll arrive at the exact same location with cursor where you bookmarked. Example:

I have created a local bookmark to line 21, column 18 using a . If I’m editing something on line 1783, I would just press Esc and type `a :

To solve your problem, all you’ve to do is create 3 local bookmarks and quickly jump to them by looking at :marks .

Problem solved ?

What if I told you that you can create global bookmarks too?! ? Yes, it is possible to create global bookmarks too! These are equivalent to your windows or GUI shortcuts (or linux soft/hardlinks) except you don’t need to create an actual link. You heard me right! You can literally jump from editing a file in /dir1 to another file and line in /project/src/ from your Vim without exiting ! ?

Fret not, it’s not a big new thing to remember. All you have to do is:

Use an uppercase letter instead of lower case letter to create a global bookmark. That’s all! Really! You navigate to the global bookmark using the same process. Example: If you’ve created a bookmark using mP , all you’ve to do is press Esc and type `P and BAM! You jump to your global bookmark (Vim remembers the path, so you don’t have to type anything about the path)

You can access the global bookmarks in the same way as local : :marks

:marks mark line col file/text P 53 4 ~/project/src/large-file.c A 11 0 ~/project/README.md

NOTE: If you are not interested in the cursor position and just want to be there at the beginning of you bookmarked line, use 'P instead of `P (Use a single quote instead of back tick to be positioned at the beginning of the line)

I’ve heard that Vim supports window splitting along with tabs! I understand tabs are great and you get to work with multiple open files at once. But, what about splitting? Why would I want that?

Scenarios:

  • You may want to edit a file by looking at another file simultaneously (May be you are defining a C function by looking at it’s declaration in a header file)
  • You may want to edit some portion of a file by looking at the top/bottom portion of the same file simultaneously
  • Your work may require you to edit a file by looking at different portions of different files simultaneously

Vim supports splitting of screen both horizontally and vertically. Even better, you can even browse file system to open a file when you split your screen.

Here are the available options:

:split filename - split window horizontally and load filename :vsplit file - vertical split and open file ctrl-w up arrow - move cursor up a window ctrl-w ctrl-w - move cursor to another window (cycle) ctrl-w _ - maximize current window vertically ctrl-w | - maximize current window horizontally ctrl-w = - make all equal size :sview file - same as split, but readonly :close - close current window

Maximizing a window for work:

Resizing:

CTRL-W [N] - Decrease current window height by N (default 1) CTRL-W [N] + Increase current window height by N (default 1) CTRL-W [N]  Increase current window width by N (default 1)

Is there a way to use file explorer while I split panes? (I can’t remember and type the file names always!)

Of course, all you have to do is type : :Sexplore for horizontal file explorer and :Vexplore for vertical file explorer. You can also use :Vexplore! to open the file explorer on right side (instead of default left)

Again, all this works *without any extra plugins* ?

I am in the middle of editing some code and I quickly need to run a shell command. Should I save my work, exit Vim and run my commands? I bet there is a better way out with Vim

You bet! Vim just doesn’t want you to leave Vim and wants you to continue focussing on your work. Hence the option to execute shell commands from within your Vim. Don’t worry, all your unsaved work is not discarded, you just execute your command and BAM! you are back in your unsaved/saved file safely!

Let’s say you are in the middle of a coding session and you quickly need to head out to take a look at man page of file operations because you forgot the signature! You don’t have to save your work, exit Vim and then check man pages or you don’t have to open another tab just for the man page. You can issue the command from right within the Vim editor.

[DEMO] Unix commands from VIM

VIM allows users to execute shell commands from within VIM without exiting. All you have to do is enter the command…asciinema.org

Guess what! Prepare to be amazed. Vim also supports make command from within your file! All you have to do is navigate to a directory with Makefile . Open any file (Could be your source code) and make all the changes and save it. Wait, there’s no need to exit to see the compilation result. You can trigger your make build from right within Vim:

[DEMO] Trigger make builds from vim

VIM allows users to trigger make builds without exiting VIM. All we have to do is enter the command mode and type :makeasciinema.org

Similarly you can build other targets in your Makefile!

Example: Build directory clean up

I hope these cool features will help you to use Vim more productively.

Your feedback is always welcome.

Feel free to comment, criticize or applaud ?

References:

  • //www.openvim.com/tutorial.html
  • //linuxconfig.org/vim-tutorial
  • ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf
  • //vim.wikia.com/wiki/Tutorial
  • //www.viemu.com/a-why-vi-vim.html
  • //robertames.com/files/vim-editing.html
  • //www.youtube.com/watch?v=wlR5gYd6um0