zhuker
4/16/2020 - 5:54 PM

zhukers .vimrc

zhukers .vimrc

" An example for a vimrc file.
"
" Maintainer:	Bram Moolenaar <Bram@vim.org>
" Last change:	2002 Sep 19
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"	      for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"	    for OpenVMS:  sys$login:.vimrc

" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif
set tabstop=4
set shiftwidth=4
set expandtab

" tab expansion
function! CleverTab()
   if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$'
      return "\<Tab>"
   else
      return "\<C-N>"
endfunction
inoremap <Tab> <C-R>=CleverTab()<CR>

" freescope macros
" func FREESCOPE_INIT() 
" if has("cscope")
"    set csprg=/usr/local/bin/freescope
"    set csto=0
"    set cst
"    set nocsverb
"    cs add freescope.out
"    set csverb
"endif
" endfunction

" The following macros and functions can be added to your .vimrc for quick and handy database queries.

func FIND_IN_CSCOPE(arg)
    let a=expand("")
    if (a:arg == "s")
        exe "normal :cscope find s"a"^M"
    elseif (a:arg == "g")
        exe "normal :cscope find g"a"^M"
    elseif (a:arg == "c")
        exe "normal :cscope find c"a"^M"
    elseif (a:arg == "f")
        exe "normal :cscope find f"a"^M"
    elseif (a:arg == "e")
        exe "normal :cscope find e"a"^M"
    elseif (a:arg == "i")
        exe "normal :cscope find i"a"^M"
    endif
endfunction


"Find function calling this function
map fc :cscope find c 
"Find symbol
map fs :cscope find s 
"Find definition
map fg :cscope find g 
"Find file
map ff :cscope find f 
"Find egrep pattern
map fe :cscope find e 
"Find file #including this file
map fi :cscope find i 
map <C-_> :cs find c <C-R>=expand("<cword>")<CR><CR>

" autocmd FileType c :set foldmethod=indent foldlevelstart=99
set hidden

    
" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

set nobackup		" do not keep a backup file, use versions instead
set history=50		" keep 50 lines of command line history
set ruler		" show the cursor position all the time
set showcmd		" display incomplete commands
set incsearch		" do incremental searching

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
" let &guioptions = substitute(&guioptions, "t", "", "g")

" Don't use Ex mode, use Q for formatting
map Q gq

" This is an alternative that also works in block mode, but the deleted
" text is lost and it only works for putting the current register.
"vnoremap p "_dp

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx
  au!

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  autocmd BufReadPost *
    \ if line("'\"") > 0 && line("'\"") <= line("$") |
    \   exe "normal g`\"" |
    \ endif

  augroup END

else

  set autoindent		" always set autoindenting on

endif " has("autocmd")

func Myfold()
set foldlevelstart=99
syn region myFold start="{" end="}" transparent fold
syn sync fromstart
set foldmethod=syntax
endfunction
autocmd FileType c :call Myfold()
let g:miniBufExplMapWindowNavArrows = 1