[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Settings for vim for C programming?



On Sat, Oct 20, 2001 at 11:19:19AM +1000, mdevin@ozemail.com.au wrote:
| On Thu, Oct 18, 2001 at 10:45:39PM -0400, dman wrote:
| > Here's what I do:
...
| > First I set some default values the way I want them for all buffers.
| > Then I have a series of auto commands to set certian properties for
| > certain buffer types.  For C programs, set the indent level
| > (shiftwidth and softtabstop) to 4 spaces.  Also set the textwidth to
| > 80 and set the formatoptions so my comments automatically are
| > line-wrapped.
| > 
| > Version 6 has some neat new features including plugins and folding.
| > The plugins I enabled so that when a C source file is opened, some
| > good default options are set.  (this applies to other types as well)
| > Folding is the ability to "collapse" a block of source into a single
| > line of display.  This allows for better usage of vertical screen real
| > estate.  I enable the folding so that the curly braces define a fold
| > region.  Then 'zo' opens a fold and 'zc' closes a fold.
| 
| Thanks for all the info.  Very helpful and good explanations.

You're welcome.

| Before printing my assignment this time, I had done the set expandtab to
| convert the tabs to spaces.  

Setting expandtab will only perform the conversion as you insert text.
It doesn't change existing text.  See the 'retab' command for that.
Set expandtab, then run ":retab".

| But then after I took it off 'cause I thought it would be better to
| still be able to put tabs in.  But now I can see that it just causes
| more headaches.

With sw and sts set properly you interact with the text as if there
were 4-space-tabs in the file, but really only spaces exist.  It is
just as convenient as using tabs, except you get to pick the
indentation level.  See also the "<<" and ">>" commands.  They
decrease and increase the indent level.

| It seems that the best way is to get rid of the tabs all together and
| make it put spaces instead like you have done above.  And like other
| people suggested also.

| I don't have version 6, but over Christmas, I am thinking about changing
| to running woody, so I will get a chance to experiment with the folding
| then.  Folding looks as though it really would help you "process" in
| your mind a large amount of source code.

Yeah, version 6 rocks.

| > There are much more details in the help documents (type ":help
| > <topic>").  
|
| I find it so hard to search through this help.  Especially when you
| don't know what you are looking for in the first place.

It can be.  Now that you have seen some more relevant commands and
options you know where to start looking.

Be sure and use the ^} and ^T commands while browsing the help.  ^}
jumps to a tag (for example, if the cursor is on a colored word) and
^T jumps back to the previous location in the tag stack.  Tags are
really cool and helpful too.  Install the 'exuberant-ctags' package
and run ctags on your source files.  Then try typing
":tag <function_name>" and see what happens.  (You jump to the line
the function starts on)  The tags work for C++, Java, Python, and lots
of other languages too.

vim+bash (and the rest of a *nix system) makes for the best IDE I have
seen so far.

-D



Reply to: