Aw, I missed the tabs-vs-spaces war! :-) (I won't bore you with my opinions on that, but if you're thinking about it I encourage you to consider how your code is handled when not viewed in an editor. I read a lot of code in
diff and
git log --patch output.)
Emacs versus vi is the classic editor war. If you're not very skilled with an editor it probably doesn't matter which you use, or even if you use neither. (And you're also crippling yourself, but that's another topic.) The primary difference between the two is that vim has a more efficient typing interface (again, if you're skilled with it) and Emacs has much better programability (Vim programmability is a nightmare in comparison ) and rather more features. Some of the extra features and functionality may be of little value to you if you're a command-line power user and already have a good windowing system. (I have a
heavily-customized set of Git commands, not to mention close to a thousand lines of other stuff in my
.bashrc, already; porting all that to Emacs would be a huge project, and then that port wouldn't work on remote systems without Emacs. And who wants to start up Emacs just to do a
git log <insert-lots-of-options-here>, anyway?) Using nested windowing systems, to the point of putting a terminal window in a Vim window in a tmate window in an X11 window, is oddly popular.
By the way, vim also offers folding. I've not used it in many, many years (basically, since I stopped programming in painfully verbose languages like Java), but now that I'm doing extensive documentation in Markdown text files I'm considering spending some time to learn how to use it again.
Bregalad wrote:
I presonally use of course multiple backups levels. First I regularly copy important source files to their equivalent, so that I have both source.asm and source.bak. Then I copy the whole folder somewhere else regularly, and copy it to as many different computers/USB keys as possible, but I have the "main" version always at the same place so that I know which one is the latest....
You might consider creating a few scripts to make this process easier. Instead of copying the folder, store a snapshot of it in a ZIP file. Then write something that tracks the relationships between the ZIP files (i.e., version Y is based on X with whatever changes) as a graph, lets you add a note to each explaining what the change is, lets you get diffs between versions, etc. Last, add some code that lets you automatically synchronize these sets of ZIP files so that you can simply say, "add to that other set of ZIPs (possibly on an exteranl drive or a remote machine) everything it doesn't have from my set here," or "fetch from that other set everything I don't have."
Of course, then you'll have rewritten the core of Git. :-)
Quote:
I do not use git or other things, I am worried about their privacy....
A Git repo is just a bunch of files, exactly as your copied folders are. So there are no privacy issues in Git that do not exist in your current system. If you don't want to make your code public, don't upload your files or Git repo to a public server.
Quote:
....and they are extremely hard to use anyway.
I wouldn't say that they're
extremely hard to use, any more than object-oriented programming is extremely hard. With both there are (possibly radically unfamiliar) concepts one needs to learn, yeah, but lots of people learn the basics without too much difficulty. Git does suffer from a UI much worse than it needs to be that, very unfortunately, cleverly hides its easy-to-understand core.
Quote:
They sure are worthy if more than 1 people is working on the project, there's no doubt.
I find Git invaluable for solo use. The two features I can no longer live without even when programming (or making any sorts of files, such as schematics or documentation) entirely solo are easy backups without requiring any sort of server software ("git push" to another directory, local or remote, is even easier than copying a folder) and easy arbitrary code checkpoints with attached descriptions. I have a half dozen very private Git repos that have never been (and, I hope will never be) seen by others; managing them without Git would add a significant amount of unnecessary work to my life.