Vim Editor... A Win-Win Tool for Coding and Charity!

Vim Editor... A Win-Win Tool for Coding and Charity!
Vim Editor... A Win-Win Tool for Coding and Charity!

In addition to business and financial turnover, programming and technology can serve for the purpose of humanity. This statement stands true for Vim editor. Bram Moolenaar from Dutch, the developer of Vim editor proved it by providing the text editor as an open source tool for developers thereby providing a better and most invited support for programmers. The most interesting feature of Vim editor is that it supports both Command Line Interface and Graphical User Interface thereby providing its support to a wide range of operating systems like Unix, Linux, Windows, Android, macOS. The end users of Vim editors were not asked for payment rather expected to donate for the needy in Uganda. Therefore, the Vim Editor is titled as 'Charityware' and 'Careware'.

Initially Bram Moolenaar launched the text editor as Vim referring to Vi IMitation for Unix which later evolved to Vi IMproved for multiple platforms. It is a well known fact that working in Linux and Windows is completely a different experience. The biggest challenge here is to collaborate all the asynchronous features and functionalities of all the operating system to match the workouts of Vim editor so that there is no further misinterpretations on the developed functionality and targeted functionality. Even for an experienced coder, it needs some extra effort to work efficiently in both the operating systems. But Bram broke that myth by his product.

The fact that triggered users to opt Vim editor is the user friendly characteristics which overcomes the traditional shifts between mouse and keyboard while editing. The most advantageous aspects that promoted VIM amongst users are the editing mode options, user-customizable editors, learnability, command functionality and usability.

The most desirable features for an editor which a user expects are

  • Text editing options like find and replace, cut, copy and paste.
  • Text formatting options like indent, spacing, line wrapping, numbering and bullet listing.
  • Filtering options like sorting, selecting a particular section of text.
  • Source code editing support for editing various programming languages.
  • A support for remembering the syntax for various programming languages.
  • Now, let's lookout for what Vim Editor offers its users.
  • A support for remote editing via Secure Shell (SSH) and Telnet.
  • Could be used in CLI and GUI.
  • Common for multiple operating systems.
  • Facilitate a development environment in a distributed and insecure network.
  • Maximize efficiency of the tools and human resource involved in the process.

Atmost usage of external plug-ins that may provide easiness in using the editor. Some of the plug-ins are Syntastic - Syntax checker, The Nerd Tree - A tree explorer, vim-colors-solarized - precision colour schemes for vim text editor, vim-javascript - greatly improved JavaScript syntax and indent formatting support.

Texts are not just texts here. They are treated as motion objects or text objects with which the coder can hit a commands like:

Motion object - 'delete text from the current cursor until the next occurrence of a letter'.

Text object - 'add text inside or around the paragraph'.

VIM Modes - normal mode - execute command; insert mode - write texts.

Find and replace made easy and customizable. For instance, user can decide on how many words to replace.

Creative and prompt in command execution thereby saving time and energy of the developers.

Light-weight - supports and performs well while using large files.

Wide range of language support - Over 200 languages including Python, C, Perl, CSS, HTML, JavaScript.

Access to multiple external programs and applications through shortcuts. For instance, the developer can send a pull request on GitHub with just a keyboard short-cut, 'Ctrl -W f' without opening a browser.

The most important alert that Vim editor wants to intimate its users is that their coding environment will not be differing in design or structure but it's all about the automation of repetitive tasks that consumes more time and human efforts.

While talking about the features and configurations, Bram mentioned that the configuration file .vimrc is a total mess and it contains random mappings of configuration variables to match the updates over various versions of the editor. The most simple trick followed by Bram to balance the functionality in different operating systems is a set of few 'if' statements which might gradually grew complex in the near future. Therefore the inference from the configuration file reveals that Bram did not use many plug-ins for developing the editor.

It has been more than 25 years since the first official release of Vi editor. The developer of Vi editor confessed that not all the technical part were developed solely by himself but with the bug or error reports that were received from customers helped him to build such a dynamically active and stable product. He also mentioned that he is unaware of the code and the complete functionality of the product since he was more intentional in streamlining the tool. And what's more interesting is that the product became better when he added whatever functionality he felt was necessary.

The previous version of Vim editor was released by 2006 with salient features like native support for spell-check, tab interface, auto-completion system and advanced undo features. Recently in 2016, the latest version of Vim editor, Vim 8 was released with new features like Asynchronous I/O, JSON and channels support, Job handling support and package support and some vast improvements in existing features and bug fixes.

Vim 8 - Features

Asynchronous I/O, JSON and Channels Support


Package Support

Message exchange with other processes

Web services - request and response - JSON formats are unavoidable part in communication.

Start, communicate, stop the job

File operations like read and write.

Build packages with plug-ins

As plug-ins increases, complexity increases.

Apart from all the technical aspects, Vim editor plays a vital role social development activities which greatly motivates its users to extend their gratitude by donating for the children in Uganda to get proper clinical support and education. "It all started with a children's center in Uganda which inspired Bram to start up a charity or non-profit organization, International Child Care Fund Holland (ICCF) to aid the HIV positive kids", said Bram.

Bram strongly believes that a small amount of contribution could bring a noticeable and optimistic change in the lives of poor children. Yes. Technologies are here to bring a sophisticated life. Here, Bram did it for both the world-wide developers and the poor children of Uganda.