Help me to choose an editor.

Started by
11 comments, last by EyeballKid 13 years, 2 months ago
Hi,

First of all sorry for my english, is not my mother tongue.

I am interested by starting game development (I've just
installed an Ubuntu!) but I haven't choose yet any source editor.

I've read some review and I've ask some friends about most used
editors and I wonder why I don't be able to make any choice. May
be there is an ideal choice I've missed up?

If I made a short list of most used editors by my research I can
make these statements:

(g)vi(m):
It's typically not an editor designed for editing source code (even
if it seems to be the perfect tool for editing config files like
resolv.conf). It's a light and speed editor but it lack of most of
useful features for editing source code effectively.

Nano:
Just much poor than vi ?

[gk]edit:
It's like notepad under windows, it comes naturally with gnome/kde, it's
just design to edit text files for the average usage, not specially
editing source code; so it doesn't be as good as if they were specially
designed for editing source!

geany:
Just a [gk]edit like?

(x)emacs:
It seems to be fat and slow, with brain fucked bindkey and comes with
lips (an outdated 50 years old language) configuration files.

eclipse/netbeams:
It seems that it's possible to be more fat and slow than emacs.. It take
a looong time to start (on my old computer?), it take a large amount of
memory; and I don't think it add serious features advantage compared to
other (may be it's just tools more designed for high-level and/or web
language, like java or whatever?).

kdevelop:
It don't get any opinion yet on this one, what do you think about it?

visual-studio:
There is also the solution of editing the source code with visual-studio
on windows before compiling/running it under linux! Did you think that
VS present all needed features for programing, or this is just a pain
in the ass solution?

So, did you have a better idea/choice (or may be more arguments about
listed editors) ?

Thanks.
Advertisement
I think that the best way to start a flame war is taking about editors...most people have strong attachments to their editor...however:

Some of your entries were actually IDEs (http://en.wikipedia....ent_environment) and not text editors...long story short an IDE is a combination of a text editor,compiler,debbuger,etc). The usual practice (maybe not the best one but by far the easiest) is to change IDE according to the programming language. example:

Java -- Eclipse
C# Visual Studio / MonoDevelop
C++ Visual Studio / Kdevelop, etc

Why is that? well everyone loves a good code completion while programming...and usually the IDES tailored for a specific language come with out of the box code completion (and a very good one)

That being said, usually text editors that come with IDES (visual studio,etc) are very basic, you definitely can benefit by learning some of the "low level" text editors like vim / emacs.
I use vim and I really love it! (http://www.vim.org/docs.php) usually every IDE has either a vim mode or a vim add-on that you can use to emulate vim key bindings. you really can speed up your development process by knowing your text editor.

You mention in your post that vim lacks some features to edit code efficiently. I beg to differ, vim is ALL about efficiency...the problem is that it has a REALLY steep learning curve, so you really cant appreciate it until you learn a few commands. Also everything can be customized by plugins (really everything O_O). Its really great.
For beginners I would recommend Kdevelop. It comes with optional vim emulation.

In linux I use gVIM for almost everything (mostly C++), for java I use Eclipse + eclim, and in in windows I use visual studio + viemu (mostly C++ / C#).

So...what programming language are you interested in? or do you want to learn a generic editor (in that case viiiiiiiiiim laugh.gif)
Check out my blog: vladimirsan.com
I primarily use Netbeans, mostly for Java but also for some C++. Eclipse has a similar feature set and it is largely a matter of preference which one people use. The program is a bit on the large side, but my 6 year old laptop handles it just fine while running Ubuntu. For simple coding I just use a text editor and make, but larger projects need more organization than that.
Thank's for your reply. I'll focus mainly on C/C++ programming.

You talk about Emacs as an editor but it looks to me more like an IDE
than vim does (you can compile and debug with gdb on your source buffer).

About Vim, I have read this part of the documentation :
http://vimdoc.sourceforge.net/htmldoc/intro.html#vim-modes-intro
How can Vim be efficient as editor if it have six differents modes but
only one as editor (the 'insert' mode). Did you assume pass half of your
time switching between modes, commonly the 'insert', 'visual' and 'select'?

You talk also about completion, did extensions like ctags are sufficient
to avoid fat and slow 'clicking' IDES?

About Netbeans and large project, I think if you need to work with big
IDES for a project organization issue, may be it's just the project which
is poorly designed/organized? I mean, I'll surprised if the majority of the
linux kernel developers/maintainers are working under eclipse.
YAY! Flame War!

About Vim, I have read this part of the documentation :
http://vimdoc.source...vim-modes-intro
How can Vim be efficient as editor if it have six differents modes but
only one as editor (the 'insert' mode). Did you assume pass half of your
time switching between modes, commonly the 'insert', 'visual' and 'select'?

Because you don't spend your time switching between modes? It's efficient because the "normal" mode lets you very quickly move around your document and record macros of what you do in insert mode. This includes cool things like named "bookmarks" for jumping around code. The "visual" mode has all the "normal" mode move commands to select blocks of text. And the "buffers" concept is a much better way to move text around a document than the single item cut/paste most editors have. And while other editors have regex searching and incremental search features, I'm surprised they aren't the default search method.

You talk also about completion, did extensions like ctags are sufficient to avoid fat and slow 'clicking' IDES?


Well I use Clang Complete (http://www.vim.org/s...?script_id=3302 -- the one from the git repository...is WAY BETTER) and really when I'm working with vim I've never missed Visual Studio. It is just about how you customize your editor.


About Netbeans and large project, I think if you need to work with big IDES for a project organization issue, may be it's just the project which is poorly designed/organized? I mean, I'll surprised if the majority of the linux kernel developers/maintainers are working under eclipse.


Well you certainly don't need an IDE to manage your project. I don't use one on Linux. But you have to remember one thing...I'll try to quote well something that one professor once told me:

"You know IDEs and high level languages are popular?. Well sometimes you need a piece of software and you need it RIGHT NOW,maybe you don't have enough members on your team or your boss is just angry..you just ^@%^ do it. and &@%@^ fast"

The point is..if it makes you a more efficient coder...there is no shame in it laugh.gif and almost all the time IDEs are a big help...and for that matter Linux is an IDE by itself so that's why you can survive only with a text editor..try that en windows wink.gif
Check out my blog: vladimirsan.com
I'd agree with what's been said, even though I've only been a very casual VIM user -- VIM is just one of those programs where if you take the time to learn it reasonably well, you can be very efficient -- just like the many command-line utilities in the linux world, and the nearly unknown (though not usually nearly as robust as their linux counterparts) ones in the Windows world. Have you ever witnessed anyone who knows their command-line kung-fu? Its a pretty amazing spectacle to behold -- tools like VIM, though not visually appealing, aspire to *that* level of productivity -- one that is frankly impossible in a GUI editor

Its just a very steep learning curve because most of us have been spoon-fed a happy GUI existence for all of our lives rolleyes.gif

Take the time to learn VIM (or emacs), and customize it to your needs -- scripts and plugins exist for VIM and Emacs for just about everything. Its often joked that they are not much less than an OS in and of themselves, and its a joke not far from the truth.

throw table_exception("(? ???)? ? ???");

Wow, no one is here to defend or proclaim emacs the One True Editor? Well, not like i will, Vim is great. I suppose that's been said enough, but if you want to get into it, it's helpful to find a cheat sheet, participate in vim's IRC channel, and read some examples of .vimrc files which will also help you get a grip of Vim's syntax and power.

Cheat sheet: http://www-rohan.sds...cheat-sheet.gif
.vimrc files: http://www.vi-improved.org/vimrc.php, http://phuzz.org/vimrc.html, http://www.google.co....vimrc+examples
IRC server: irc://chat.freenode.net, channel: #vim

Vim is not something you have to master to be good at, though it helps. Learning only a small subset of Vim's abilities can vastly improves ones productivity. I found through Vim that a good text editor can empower me to work faster than an IDE, even if i have to do it manually. Though it also helps to be good at the command line.
ed
What about Codeblocks ?
http://www.codeblocks.org/

This topic is closed to new replies.

Advertisement