VIM: what if there is a IDE, and how?

Today was a text on how people switched from Sublime to VIM. In the comments, as usually happens, there were reports in the spirit of "Why waste my time in Vim, if you have an IDE where everything works?" (people even articles on these topics write). Wanted to contribute my two cents, but the amount of smoothly written text translated from the category "review" in the category of small articles.


In General, everything below is an improvement, of course. Whether you like your IDE (or your current tool), and please. Use for current tasks what you most proficient in, it is an axiom of effective work. But if you suddenly had some time on improving your effectiveness as a whole, will try to interest you it Secondly ohms, comparing it with a certain generalized IDE.



the

Why?


In my opinion the cons of any IDE in comparison with VIM (or, on the contrary, the advantages of VIM) with the following:


the
    the
  • IDE is much heavier than VIM (even with plugins); hence the obvious disadvantage that for IDE need a fairly powerful workstation.
  • the
  • IDE typically maintains a small number of languages/platforms. Vim also supports uniformly everything. In Vim, I write on Ruby/Rails, Python (or so), C OpenCL (+PyOpenCL), CUDA (+PyCUDA), bash, Go, XML, YAML, HTML, Markdown, Textile, CSS, .ini, Sage, Magma, GAP (the last 3 — computer algebra system), LaTex, as well as edit specific config files, some programs (like X, mutt, etc.) and edit the mail. Configs and mail is a specific example, but that applies to programming languages and markup, you will need to learn some IDE with its own characteristics, hot keys, etc. just because the IDE usually has a narrow range of supported technologies. Vim (like Emacs) knows almost everything, and you don't need to get used to the tool. In addition, the Creator of the plugin just need to focus on getting well support specific to JAPANESE things, and everything else Vim already knows how. As a consequence, in the transition from one technology to another (conventionally, it is written in Ruby, Python tomorrow, and then back), you will not lose the usual basic things, how could it be when you change the IDE, because it will remain in Vim.
  • the
  • Vim, as a consequence of the previous one, supports the things that no one else supports: try to find an IDE for Magma. And for Vim everything is. The reason is that for rare items to create IDE unreasonably, and to write base plugin for Vim is not so difficult.
  • the
  • Vim can run in console mode only. In other words with Vim, your computer may be thin client. Specifically, in my case there is a 10-year-old Full HD laptop IBM'ovsky. It is clear that it already for the normal use as a workstation for programming, lacks does well: the tests on it will go forever, and mentioned IDE will significantly slow down. At the same time have ssh access to a powerful server where the result is under development: chase the tests, runs the editor, etc. in addition, a bunch of vim + tmux + ssh is constantly open working session. Started to work on one machine (e.g. at work), otogenic without closing the editor, etc., continued from home with laptop — extremely convenient. And in my case, and for some tasks, the main computing equipment (multiple GPU) physically plugged into the server, i.e. in addition to the facilities described above, be a thin client still needed. Try to do all this in your favorite IDE!
  • the
  • With Vim you won't need a mouse, unless of course you want (if you don't want to, then Vim is great. integrated with mouse). It hurts me to see people suffer with touchpads or carry a mouse, placing them on different surfaces, when working with a laptop.
  • the
  • Vim is incredibly extensible, any your wishlist and or otherwise implemented or can be implemented in Vim.
  • the
  • Your configuration for VIM is generally easily transferred from machine to machine. Would it be so easy with your IDE?

If not enough, here's some more literature on the topic: raz, two, tree.


And Yes, the Vim community is obsessed efficiency, there are always cool new tools that accelerate, automate, and facilitate, or otherwise. And if you lie to the soul, then work in VIM will deliver you a lot of fun.


the

How?


do Not just give a hell of harvesters from someone's configs. Yeah, they look cool, but there is often unintuitive hotkeys, a lot of magic and excess. Go vimtutor. Then put a naked VIM (usually he's not as naked as it seems at first glance) and work. Well, OK, fine. Set in the vimrc set nocompatible (to break compatibility with VI) or put sensible (superbaby vimrc with settings of type nocompatible), or work in neovim (new mostly compatible with VIM implementation of VIM with a human default settings).


In the process, you will receive the wishlist. As soon as a wishlist, you need to:


the
    the
  • to Look, this function can be among the basic features of VIM (and most of it is true).
  • the
  • If not found, look for an appropriate plugin and install. Plugins suggest to put vim-plug.
  • the
  • be Sure to read the documentation for the installed plugin (:help <plugin-name>). It is always good and clear!

do Not put a lot of plugins at once. As a General rule, no more than 2 plugins per day, then you will always know what is the cause of the failure, or Vice versa, the reason for the speed. And if you just put 33 plugins, then in your head there porridge, and you won't use none of these 33 even half.


PS just In case I will add: I'm not saying that VIM IDE cooler in any situation. I would argue that there are parameters for which VIM steeper IDE, so it makes sense to pay attention to it. These parameters are significant for me personally, and I have them listed in the paragraph "Why?".

Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

Automatically create Liquibase migrations for PostgreSQL

Looking for books as you want

Vkontakte sync with address book for iPhone. How it was done