ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
As I move through CS classes in college, I'll next be getting to Java and then C. I'd like to plan early and start getting used to the system I'll be using to code/compile, so I thought I'd post here and see if people have recommendations. This isn't a tell-me-the-best-one-now post as there are clearly several options, but I wanted to explain where I'm coming from and see if someone can point me in the right direction.
This semester I'm doing Lisp in Emacs, which, as I understand it, has clear advantages as Emacs is based around a variant of Lisp and the two integrate so well. I've always used Vim for working with config files and simple text files, although I've never gotten comfortable enough with it to be able to do much more than that. For something like programming, I feel like there's a lot of moving back and forth, adding a few characters here and there, and moving somewhere else, whereas much of the Vim work I've done has been moving to a line, inserting a new line, typing some text, and saving.
I've been searching around and it seems there are quite a few IDEs for this sort of thing, although (correct me if I'm wrong), it seems like they don't provide the same navigational flexibility as Emacs/Vim, and Emacs/Vim can replicate almost all their features with some work. I guess my first question is whether an IDE is something I should look into and what kind of pros/cons they have.
Assuming that's the case, I guess we're down to Emacs and Vim, and I'd rather avoid posing a question like that. I've always had a sort of draw away from Emacs to Vim, but does Vim really work as something you can use to code for long hours? It seems that the whole concept of editing modes results in a lot of escapes (which I already have bound to Caps-[, but still), and isn't well suited for something where almost all your editing consists of going back and making many small changes in different places. The Emacs ctrl-A and ctrl-E and modeless system have felt more comfortable to me (much more comfortable than something so out of reach as $ in Vim) for that kind of work.
Still, if others use and suggest it, Vim is really the way I'd like to go. If it's something you'd suggest, what tutorials, configurations, modifications, tips, etc. would you recommend, and what helped you get over the learning curve and the difficulties I described? If not, what would you recommend and why?
I apologize in advance for the long post, but I'd like to put some thought in before I set in stone the editor I'll be using for the next year (and, I assume, will continue to use after that).
Let's not get involved in this flamewar! I use vim, and I love it, though I'm certain if you got involved in either vim or emacs, you'd feel more comfortable. If you the tricks of either editor, you'll be amazed how useful they are. You can start out with something like this for vim:
Yeah, I've used vi & vim for years at work, inc some very substantial progs/projects.
Once you get into it, it's fine.
Definitely get the full install with colour syntax highlighting.
Have a read of the tutorial that comes as part of the vim install, either externally or from within vim itself.
However, use the editor you prefer.
For general availability on any Unix style OS (Unix/Linux/*BSD), I'd stick with one of those 2.
In particular, vi is part of the default install in commercial Unices.
Also very lightweight for using over long/noisy connections.
As you mentioned you'll be getting to Java, I am not sure about vi, but Emacs java mode is pretty good.
However, if you plan to do something sofisticated, I'd recommend a specific Java IDE such as Eclipse. It makes Java programming the easiest thing, with refactoring and code generation. It's bundled with JDT compiler that makes the compilation process transparent to the programmer. Eclipse has Emacs-mode for the key scheme BTW. But it has a downsize: it can make you dependent on it in a point that you'd forget how to do anything without it...