Setting up development environment
Sean C. Farley
scf at FreeBSD.org
Mon Jul 16 15:00:51 UTC 2007
On Mon, 16 Jul 2007, Tom Evans wrote:
> On Wed, 2007-05-30 at 08:21 +0200, Dag-Erling Smørgrav wrote:
> ...
>> Emacs setup (for both C and C++):
>>
>> (defun des-knf ()
>> (interactive)
>>
>> ;; Basic indent is 8 spaces
>> (make-local-variable 'c-basic-offset)
>> (setq c-basic-offset 8)
>>
>> ;; Continuation lines are indented 4 spaces
>> (make-local-variable 'c-offsets-alist)
>> (c-set-offset 'arglist-cont 4)
>> (c-set-offset 'arglist-cont-nonempty 4)
>> (c-set-offset 'statement-cont 4)
>>
>> ;; Labels are flush to the left
>> (c-set-offset 'label [0])
>>
>> ;; Fill column
>> (make-local-variable 'fill-column)
>> (setq fill-column 74))
>>
>> (add-hook 'c-mode-common-hook 'des-knf)
>>
>> As for how to cross-build, read build(7).
>>
>> DES
>
> Before I start translating this/style(9), does anyone already have an
> equivalent for vim?
I have not made a proper indent file out of this, but this is what I
use. Before I work on BSD code I just run :call FreeBSD_Style(). The
IgnoreParenIndent() function is needed to avoid vim's built-in cindent
code when it comes to line-continuation after a parentheses. Better
solutions are welcome.
---------------------------------------------
set nocompatible
set autoindent
" Let vim determine the file type to be edited.
"filetype plugin indent on
" Ignore indents caused by parentheses in FreeBSD style.
fun! IgnoreParenIndent()
let indent = cindent(v:lnum)
if indent > 4000
if cindent(v:lnum - 1) > 4000
return indent(v:lnum - 1)
else
return indent(v:lnum - 1) + 4
endif
else
return (indent)
endif
endfun
" Conform to style(9).
fun! FreeBSD_Style()
setlocal cindent
setlocal formatoptions=clnoqrt
setlocal textwidth=80
setlocal indentexpr=IgnoreParenIndent()
setlocal indentkeys=0{,0},0),:,0#,!^F,o,O,e
setlocal cinoptions=(4200,u4200,+0.5s,*500,t0,U4200
setlocal shiftwidth=8
setlocal tabstop=8
setlocal noexpandtab
endfun
---------------------------------------------
Sean
--
scf at FreeBSD.org
More information about the freebsd-hackers
mailing list