Jan 122012

The very first blog entry!
What should it be about?
Linux, device drivers, Lego Mindstorms NXT, Arduino, Raspberry Pi, or ...?
Let's start with the tool I use daily, both at work and at home.

That would be VIM (VI iMproved).

My first encounter with Vim was when a collegue showed it, and then sent me this link.
It has been a real kick-starter for me in the introduction to Vim.

To be honest it was not easy in the beginning, but after using it constantly for several months, I would not like to switch it for any other editor.

Anyhow, here is my .vimrc, which I use both at work and at home.

" not compatible with original vi
set nocompatible
" Status bar --------------------------------------------------------------
" Make command line two lines high
set ch=2
" show current mode in status bar
set showmode
" Set the status line the way I like it
set stl=%f\ %m\ %r\ Line:\ %l/%L[%p%%]\ Col:\ %c\ Buf:\ #%n\ [%b][0x%B]
"set stl=%f\ %m\ %r\ Line:\ %l/%L[%p%%]\ Col:\ %c\ Buf:\ #%n\
" Show statusline in single window
set laststatus=2
" Color, layout etc  ------------------------------------------------------
" background color
set background=dark
" color scheme
colorscheme darkgreen
" Enable syntax highlightning
syntax on
" text width
set tw=120
" highlight column after textwidth
set cc=+1
" wrap text
set nowrap
" tab/backspace are smart
" set smarttab
" Tab length, nbr spaces
set tabstop=8
" indent according to tabstop
set cindent
" help me with indenting
set smartindent
" autoindent
set autoindent
" scrollbar width
set sw=2
" show line numbers
set number
" watch for file changes
set autoread
" nbr undo levels
set undolevels=1000
" Show trailing spaces and tabs
set list
set listchars=trail:+,tab:>-
" Folding
"set foldmethod=syntax
" Folding lines shown
set foldminlines=5
" Folding level
set foldnestmax=3
" Search ------------------------------------------------------------------
" ignore case in pattern
set ignorecase
" override ignorecase
set smartcase
" show pattern in text as it is written
set incsearch
" highlight all matches
set hlsearch
" Set the search scan to wrap around the file
set wrapscan
" search directories
set path+=**
" Copy --------------------------------------------------------------------
" add a $ at end of 'copy/change'
set cpoptions+=$
" Buffer ------------------------------------------------------------------
" change buffer without saving
set hidden
" Switch to first buffer
noremap  :bfirst
" Switch to next buffer
noremap  :bnext
" Switch to previous buffer
noremap  :bprevious
" Switch to last buffer
noremap  :blast
" Windows -----------------------------------------------------------------
" Move the cursor to the window left of the current one
noremap   :wincmd h
" Move the cursor to the window below the current one
noremap   :wincmd j
" Move the cursor to the window above the current one
noremap   :wincmd k
" Move the cursor to the window right of the current one
noremap   :wincmd l
" Cscope----------------------------------------------------------------
if has("cscope")
	set csprg=/usr/bin/cscope
	set csto=0
	set cst
	set nocsverb
	" add any database in current directory
	if filereadable("cscope.out")
	    cs add cscope.out
	" else add database pointed to by environment
	elseif $CSCOPE_DB != ""
	    cs add $CSCOPE_DB
	set csverb

	map g :cs find c =expand("")
	map g :cs find s =expand("")
" Specials ----------------------------------------------------------------
" 'Ctrl s' to save file in both command and insert mode.
map  :w
imap  :wi
" Plugins -----------------------------------------------------------------
:filetype plugin on
" Taglist, need ctags
map  :TlistToggle
" NERDtree
map  :NERDTreeToggle
" Buflist (buflist.vim defines F4 as toggle window
" CScope. Find this definition - :cs f g
map  :cs f g =expand("")
" CScope. Find functions called by this function - :cs f d
map  :cs f d =expand("")
" CScope.  Find functions calling this function - :cs f c
map  :cs f c =expand("")
" CScope.  Find symbol - :cs f s
map  :cs f s =expand("")
" Search for this word in this file
map  :/=expand("")
" Remove MS-DOS carriage returns
"map  :1,$s/
" Cscope
" Matchit
" ColorSamplePack
" SearchComplete
" VcsCommand
" Folding
" Filetype specifics ------------------------------------------------------
" file type detection
:filetype on
autocmd FileType make set noexpandtab sw=4
autocmd FileType c set tw=80
autocmd FileType h set tw=80
" Text width --------------------------------------------------------------
"autocmd BufEnter *.c,*.h let w:m1=matchadd('Search', '/\%<81v.\%77v', -1)
"autocmd BufEnter *.c,*.h let w:m2=matchadd('ErrorMsg', '/\%>80v.\+', -1)

Sorry, the comment form is closed at this time.