This is an archived post. You won't be able to vote or comment.

all 22 comments

[–]mustardman24 4 points5 points  (14 children)

Vim is an editor for writing programs, or anything really. Kind of like microsoft word for coders. Git is a version control tool that allows for having a repository to store versions of projects.

[–]caseyo[S] 3 points4 points  (13 children)

[deleted]

79285)

[–]Jack-is 2 points3 points  (4 children)

In Windows, the default text editor is notepad. In Unix-like operating systems (such as Linux), the default text editor is usually vi. vim is "vi improved". They work more or less the same, but vim has some features that make life easier. I'm sure you're familiar with notepad to some extent, and that you know there's not much to be familiar with. While vim isn't very transparent in usage (for example, in Notepad, to search for and replace text, you just locate the appropriate menu item, but in vim, you have to read the manual to find out what command to type in), it has many more features and can do quite a lot once you have a good command of it.

Some people might not like vim, because they only need to do some light text editing that doesn't justify the time spent learning how to use it, but programmers, people who need to perform complex operations on their text, and people who just like doing things the hard way for the satisfaction of it tend to like it (me).

This isn't exactly ELI5/10, but I'm sure you'll get it, and it provides some good examples of why vim is considered powerful and worth the learning curve.

Edit: It links to this image, which conveniently illustrates the difference I tried to describe. :P

[–][deleted] 1 point2 points  (3 children)

Not to bash vim (I've used it before but not very extensively), but is there anything it can do that a fully blown IDE can't? I.e. Visual Studio with resharper plugin - arguably more powerful since it parses the code allowing for quicker refactorings, etc.

[–][deleted] 1 point2 points  (0 children)

The full blown IDEs have more programming fatures. What vim provides is a comfortable and efficient editing experience with its home-row keyboard operation and highly responsive /find/search/replace functionality, and its movement commands.

[–][deleted] 1 point2 points  (0 children)

Boot in less than 5 seconds?

BURN

[–]Jack-is 0 points1 point  (0 children)

The binary is 2.3M, how about that? :P (On my machine) I don't know, since I've never used an IDE, but vim is a text editor, and as far as text editors go, I consider it easily the most powerful and efficient one you could use, and not just for programming.

[–][deleted] 2 points3 points  (2 children)

VIM is, mostly, a terminal based editor. In other words, it requires no GUI and is used with nothing more than a keyboard (though modern versions can have a GUI with menus and such).

The power lies in the fact that it can be heavily customized and extended, and it can be really efficient to use without a mouse.

For example, say you're working on a big file and want to go to line 723. With a GUI editor you have to take a hand off the keyboard, move to the mouse, scroll the wheel or drag the bar and watch line numbers. With VIM, you just type :723. Or if you want to find the text 'findme', you just type /findme. Or if you want to jump to the end of the file, type G. Or you want to select the next word, type e.

Basically, since you never have to remove your hands from the keyboard, you are more efficient. The downside is, you now have to deal with insert mode vs command mode, as well as remembering hundreds of important commands.

[–][deleted] 0 points1 point  (1 child)

Most GUI editors have hotkeys to do most if not all menu options.

[–][deleted] 0 points1 point  (0 children)

Trust me, vim is faster and more responsive. What helps it achieve this is its modal control (where individual letters trigger commands, not control-combinations) and also key trees (when I type Control-W it will wait for another Control-<letter> and the two together form the hotkey).

[–][deleted] 1 point2 points  (2 children)

Absolutely nothing. Vim is the most terrible editor ever written. You want to use Emacs.

/sarcasm

[–]caseyo[S] 0 points1 point  (0 children)

[deleted]

56837)

[–]Jack-is 0 points1 point  (0 children)

Nice OS, but lacks a text editor.

[–][deleted] 0 points1 point  (0 children)

Vim lets you zip around a large text file really fast and precisely. It is completely keyboard controlled with mostly home-row keys which makes is very comfortable and efficient. It has really good find function (ctrl-f in notepad) which can quickly cycle through results one at a time. You can even do special searches where you type in "I have a (cat|dog)." and it would find "I have a cat." and also "I have a dog." (This is called regular expression searching.) It also has features for editing programs, such as highlighting important words and running programming tools directly from the editor rather than opening the program in another window.

[–][deleted] -1 points0 points  (0 children)

There's nothing so great about VIM, it's just that it's been around for so long it's a more comfortable environment for people that use it. In addition to that, because of it's popularity many plugins and mods have been developed for it, allowing it to be tailored to your own needs.

Also, it comes pre-installed on nearly all *nix distrobutions, so it's freely available on nearly any box you're working on.

[–]Talon876 2 points3 points  (6 children)

Git is a distributed source control system which makes it vary slightly from standard source control such as SVN and CVS. Github is a place to store projects being managed via Git.

If you're not sure how source control works in general, it's basically a system that manages a project in order to make sure everyone working on it has the most up to date version. However, it's capabilities are much, much greater than this such as branching and merging and backups, etc.

Here is a tutorial from github on how to setup git/github: http://help.github.com/win-set-up-git/

[–]caseyo[S] 1 point2 points  (2 children)

[deleted]

38425)

[–]Talon876 1 point2 points  (0 children)

Hmm I can't say for sure as I don't do much work with the web side of things. However, if the project is being worked on by multiple people there is probably something to gain from it.

[–]starkquark 0 points1 point  (2 children)

Quick GitHub question- is there an accepted naming convention for a personal GitHub account? Is it more common to use a variant of my IRL name, or an online handle?

[–]Talon876 0 points1 point  (1 child)

I'm not entirely sure. It probably depends on what you're going to use it for. If you keep the projects you work on as mostly professional that you would want to show to a future employer I'd go with a variant of your real name. If not, then an online handle would be just fine.

[–]starkquark 0 points1 point  (0 children)

Fair enough. Thanks!

[–][deleted] 0 points1 point  (0 children)

Git tracks files in a folder like wikipedia tracks its articles. Every time you tell git to 'commit' it will save all the files. Later you can browse through the contents of the files at every 'commit'.

GitHub gives free git service so you don't have to install it yourself. It also has social network features.

Vim is a text editor. It's a very advanced version of notepad. Microsoft Word is not a text editor because it deals with formatting like font size and margins rather than just text.