1 |
On Tue, Feb 17, 2009 at 9:32 PM, Andreas Niederl <rico32@×××.net> wrote: |
2 |
> Hi, |
3 |
> |
4 |
> Andrei Hanganu wrote: |
5 |
>> helo group, |
6 |
>> |
7 |
>> i've been trying the past 2-3 years to find the most usable and nice ide |
8 |
>> for c/c++ code writing. I've been through vim/vim + plugins/emacs + |
9 |
>> different modes/anjuta/kdevelop/codeblocks/eclipse/netbeans ... every |
10 |
>> single one of them has at least one drawback. |
11 |
> |
12 |
> I'm thinking the more I get to know Vim and the available plugins, the |
13 |
> more it becomes like an IDE to me. I guess the same is true for Emacs. |
14 |
> |
15 |
> My advice would be to take on of those or any other open IDE and learn |
16 |
> and extend them to the point that it's perfect for you. |
17 |
> |
18 |
> |
19 |
I can only give the same advice. I'm mainly an Emacs user, so I think |
20 |
I can fill in the parts you've missed below :-) |
21 |
Oh and (to everybody) Emacs is one thing especially: customizable. You |
22 |
have to work a bit with Emacs to really understand this (because most |
23 |
editors/programs are customizable these days). But enough advertising |
24 |
;-) |
25 |
|
26 |
>> In short words, i am looking for an ide that can do this: |
27 |
>> - syntax highlighting |
28 |
>> - concurrent editing of multiple files (splitting) |
29 |
>> - tabs or buffer list |
30 |
>> - file browser |
31 |
>> - regex search/replace |
32 |
> |
33 |
> Both Vim and Emacs can do these basic features. |
34 |
> Vim even provides a mechanism for saving and restoring editing sessions. |
35 |
> |
36 |
> |
37 |
A file browser is provided by ECB and I have never encountered any |
38 |
minibuffer issues you've mentioned below. I also never encountered any |
39 |
incompatibilities between different customizations and I'm running a |
40 |
lot. Of course you can't use two that do the same thing, but I think |
41 |
that's clear (and usually the last one overrides the first, so no |
42 |
issues there). |
43 |
Restoring and saving sessions is, of course, possible, too :-), see here[1] |
44 |
|
45 |
>> - autocomplete (on the fly, not on demand, and maybe smart? - identify |
46 |
>> structures/classes ) |
47 |
> |
48 |
> Haven't tried it yet, but for Vim word_complete.vim[1] seems to be what |
49 |
> you're looking for. You should also have a look at Omnicompletion. |
50 |
> |
51 |
> As Emacs has hooks for nearly everything it should be doable with it as |
52 |
> well. |
53 |
> |
54 |
> |
55 |
It's possible in Emacs, and how to set it up see here[2], the package |
56 |
you'll see in the link, CEDET, is a complete IDE framework and not |
57 |
just auto-completion (but you can use only parts of it!), it's used |
58 |
for example in ECB and JDEE[3] |
59 |
|
60 |
>> - project manager |
61 |
> |
62 |
> Don't know about that but it would be nice to have simpler project |
63 |
> specific settings for Emacs/Vim. |
64 |
> |
65 |
> |
66 |
For Emacs there's EDE, it's part of CEDET. |
67 |
|
68 |
>> - symbol list/browser current editing buffer |
69 |
> |
70 |
> That's pretty much ctags/etags, maybe cscope. |
71 |
> |
72 |
> |
73 |
And in addition you can browse this stuff with CEDET, see[1] for details. |
74 |
|
75 |
|
76 |
>> - flexible build options that include scons, not just makefile |
77 |
> |
78 |
> You can put the following in ~/.vimrc: |
79 |
> autocmd BufEnter ~/path/to/project/* set makeprg=scons |
80 |
> |
81 |
> |
82 |
In Emacs you can use whatever you want to build your project, because |
83 |
there is no classic restriction called project like all these new IDEs |
84 |
have, but if you want there's EDE. |
85 |
|
86 |
|
87 |
>> - code folding (with detection of blocks) |
88 |
> |
89 |
> Vim does it[2]; Emacs seems to have some kind of FoldingMode according |
90 |
> to Google. |
91 |
> |
92 |
> |
93 |
Yes, there is, it's called hs-minor-mode. |
94 |
|
95 |
>> - lightweight/ergonomic interface (i dislike space being occupied by the |
96 |
>> bar that displays the line numbers, with a padding of 10px for example) |
97 |
> |
98 |
> Both of them are very customisable in this regard. |
99 |
> |
100 |
> |
101 |
If you've customized Emacs alot, and for Vim that probably true too, |
102 |
the startup is a bit slower, but you have several possibilities here: |
103 |
1) start Emacs as server (that's just a normal Emacs but clients can |
104 |
attach) and edit your files by running emacsclient and in Emacs 23 |
105 |
(not yet released) you can daemonize Emacs and attach as many |
106 |
instances of Emacs as you want (even from ttys and X at the same |
107 |
time!) |
108 |
2) start Emacs -Q (no customizations will be loaded) |
109 |
3) use a vanilla Vim (which I do often when I'm editing config files) |
110 |
|
111 |
>> i don't desire gdb or valgrind integration, but would be a + |
112 |
> |
113 |
> Emacs features gdb integration and there's Clewn[3] for GVim. |
114 |
> As for me, I'm rather using a separate screen[4] window in the same session. |
115 |
> |
116 |
> |
117 |
Why don't you desire that? What's the purpose of an IDE if you don't |
118 |
want an integrated debugger? In Emacs run gdb and then |
119 |
gdb-many-windows (then debugging looks the same as in all these IDEs, |
120 |
you have a stack window, local variables window, source view, |
121 |
registers and so on). |
122 |
|
123 |
> |
124 |
> Regards, |
125 |
> Andi |
126 |
> |
127 |
> [1] http://www.vim.org/scripts/script.php?script_id=73 |
128 |
> [2] http://www.linux.com/articles/114138 |
129 |
> [3] http://clewn.sourceforge.net/ |
130 |
> [4] http://www.gnu.org/software/screen/ |
131 |
> |
132 |
> |
133 |
|
134 |
|
135 |
Oh and be aware that there's no single way in Emacs to do something |
136 |
and I've told you just the way I do it or the one I know of. |
137 |
|
138 |
|
139 |
|
140 |
|
141 |
Geralt. |
142 |
|
143 |
|
144 |
|
145 |
[1]http://www.emacswiki.org/emacs/SessionManagement |
146 |
[2]http://xtalk.msk.su/~ott/en/writings/emacs-devenv/EmacsCedet.html |
147 |
[3]http://jdee.sourceforge.net/ |