BB: vimrc update.
This commit is contained in:
354
vim/vimrc
354
vim/vimrc
@@ -1,7 +1,23 @@
|
||||
"source $VIMRUNTIME/vimrc_example.vim
|
||||
"source $VIMRUNTIME/mswin.vim
|
||||
"behave mswin
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Behaviour.
|
||||
"
|
||||
|
||||
" All our scripts and files are here.
|
||||
if filereadable(expand("~/devel/scripts/vim/vimrc"))
|
||||
set runtimepath+=~/devel/scripts/vim
|
||||
endif
|
||||
|
||||
" Set 'nocompatible' to ward off unexpected things that your distro might
|
||||
" have made, as well as sanely reset options when re-sourcing .vimrc
|
||||
set nocompatible
|
||||
" Line ending is UNIX.
|
||||
set fileformat=unix
|
||||
" Swap files go here.
|
||||
"set directory="~/tmp,." console version complains all the time.
|
||||
" Don't backup files.
|
||||
set nobackup
|
||||
"set backupdir="~/tmp,." git commit doesn't work.
|
||||
" Try to set up UTF-8 encoding.
|
||||
if has("multi_byte")
|
||||
if &termencoding == ""
|
||||
let &termencoding = &encoding
|
||||
@@ -11,47 +27,211 @@ if has("multi_byte")
|
||||
"setglobal bomb
|
||||
set fileencodings=ucs-bom,utf-8,latin1
|
||||
endif
|
||||
" Make tabes to be equal to 4 space chars.
|
||||
set tabstop=4
|
||||
" Number of spaces a <Tab> counts. If different from tabstop a combination of
|
||||
" tabs and spaces will be inserted.
|
||||
set softtabstop=4
|
||||
" For indentation shift by 4 chars.
|
||||
set shiftwidth=4
|
||||
" When on <Tab> insert shiftwidth space in front of line. When off <Tab> inserts
|
||||
" blanks according to softtabstop.
|
||||
set smarttab
|
||||
" Don't expand tabs.
|
||||
set noexpandtab
|
||||
if has('autocmd')
|
||||
" Unset expandtab for make files in any case.
|
||||
autocmd FileType make setlocal noexpandtab
|
||||
" Set expandtab for python files in any case.
|
||||
autocmd FileType python setlocal expandtab
|
||||
endif
|
||||
" Attempt to determine the type of a file based on its name and possibly its
|
||||
" contents. Use this to allow intelligent auto-indenting for each filetype,
|
||||
" and for plugins that are filetype specific.
|
||||
filetype indent plugin on
|
||||
" When opening a new line and no filetype-specific indenting is enabled, keep
|
||||
" the same indent as the line you're currently on. Useful for READMEs, etc.
|
||||
set autoindent
|
||||
" Allow backspacing over autoindent, line breaks and start of insert action
|
||||
set backspace=indent,eol,start
|
||||
" Stop certain movements from always going to the first character of a line.
|
||||
" While this behaviour deviates from that of Vi, it does what most users
|
||||
" coming from other editors would expect.
|
||||
set nostartofline
|
||||
" Try to not cross 80 char boundary.
|
||||
set textwidth=80
|
||||
|
||||
" Existing long lines are not broken.
|
||||
set formatoptions+=l
|
||||
" Auto-wrap comments using textwidth.
|
||||
set formatoptions=cq
|
||||
" Insert comment leader if <Enter> is hit in insert mode or 'o' in Normal mode.
|
||||
set formatoptions+=ro
|
||||
"set formatoptions-=o " don't autoformat on 'o' e.g. comment wrapping
|
||||
|
||||
"
|
||||
" C++ oriented.
|
||||
"
|
||||
"do not auto insert single line comments
|
||||
set comments-=://
|
||||
" Auto-insert multi-line comment continuations
|
||||
set comments+=f://
|
||||
" Do not indent after namespace XX{
|
||||
set cino+=N-s
|
||||
" Match open-bracket indentation when breaking parameter lists over multiple
|
||||
" lines.
|
||||
set cino+=(0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
set nocompatible " Use Vim defaults (much better!)
|
||||
set backspace=indent,eol,start " allow backspacing over everything in insert mode
|
||||
"set bs=2 " allow backspacing over everything in insert mode
|
||||
"set backup " keep a backup file
|
||||
set viminfo='20,\"50 " read/write a .viminfo file, don't store more
|
||||
" than 50 lines of registers
|
||||
set history=50 " keep 50 lines of command line history
|
||||
set ruler " show the cursor position all the time
|
||||
set tabstop=4 " make tabes to be equal to 4 space chars.
|
||||
set shiftwidth=4 " for indentation shift by 4 chars.
|
||||
set noexpandtab " don't expand tabs. For MG devel/mg/.vimrc sets expandtab.
|
||||
set softtabstop=4 " insert/<BS> deletes 4 space chars.
|
||||
set smarttab " insert/<BS> space in front of line instead of tab.
|
||||
set fileformat=unix " line ending is unix
|
||||
set textwidth=80 " 80 char text
|
||||
let g:netrw_preview = 1 " netrw open window to the right
|
||||
let g:netrw_browse_split = 3 " open in a tab
|
||||
|
||||
" In many terminal emulators the mouse works just fine, thus enable it.
|
||||
if has('mouse')
|
||||
set mouse=a
|
||||
|
||||
set ttyfast "tf "smooths redraw by using more bandwidth
|
||||
"set sessionoptions-=options
|
||||
"show shortmessages
|
||||
"set shortmess+=atIW
|
||||
" Set timeout for detecting command key sequence
|
||||
set timeoutlen=400
|
||||
|
||||
"set autoread "update file modified outside of vim
|
||||
|
||||
" Quickly time out on keycodes, but never time out on mappings
|
||||
set notimeout ttimeout ttimeoutlen=200
|
||||
" Use <F11> to toggle between 'paste' and 'nopaste'
|
||||
"set pastetoggle=<F11>
|
||||
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Display
|
||||
"
|
||||
|
||||
" wrap text at window edge without modifying buffer
|
||||
set nowrap
|
||||
" Scroll this much chars when scrolled horizontally.
|
||||
set sidescroll=1
|
||||
" break at a suitable character (as in breakat)
|
||||
"set linebreak
|
||||
" Begin scrolling this lines from window edge.
|
||||
set scrolloff=0
|
||||
|
||||
" Set the command window height to 2 lines, to avoid many cases of having to
|
||||
" press <Enter> to continue"
|
||||
set cmdheight=2
|
||||
" Always display the status line, even if only one window is displayed
|
||||
set laststatus=2
|
||||
" Display the cursor position on the last line of the screen or in the status
|
||||
" line of a window
|
||||
if exists('&ruler')
|
||||
set ruler
|
||||
endif
|
||||
" Instead of failing a command because of unsaved changes, raise a dialogue
|
||||
" asking if you wish to save changed files.
|
||||
if exists('&confirm')
|
||||
set confirm
|
||||
endif
|
||||
" Use visual bell instead of beeping when doing something wrong
|
||||
if exists('&visualbell')
|
||||
set visualbell
|
||||
" And reset the terminal code for the visual bell. If visualbell is set, and
|
||||
" this line is also included, vim will neither flash nor beep. If visualbell
|
||||
" is unset, this does nothing.
|
||||
set t_vb=
|
||||
endif
|
||||
" Display line numbers on the left
|
||||
if exists('&number')
|
||||
set number
|
||||
endif
|
||||
" Turn on spell check.
|
||||
if exists("+spell")
|
||||
set spell
|
||||
endif
|
||||
" Show 80th column.
|
||||
if exists("+colorcolumn")
|
||||
set colorcolumn=+1 " color textwidth+1-th line
|
||||
endif
|
||||
|
||||
" a copy-past from my linux vimrc
|
||||
if &term=="xterm"
|
||||
set t_Co=8
|
||||
set t_Sb=[4%dm
|
||||
set t_Sf=[3%dm
|
||||
endif
|
||||
" Show command-line completion above the command line.
|
||||
set wildmenu
|
||||
" wildmenu ignore list
|
||||
set wildignore=*.o,*.obj,*.bak,*.exe,*.d,*.dd
|
||||
" Complete to longest common string
|
||||
set wildmode=longest:full
|
||||
" remember more history
|
||||
set history=1000
|
||||
|
||||
" 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
|
||||
"
|
||||
" This will turn on svrf highlighting
|
||||
au BufRead,BufNewFile *.svrf set filetype=calibre
|
||||
endif
|
||||
|
||||
" Enable syntax highlighting
|
||||
highlight DiffAdd cterm=none ctermfg=Black ctermbg=Green gui=none guifg=Black guibg=Green
|
||||
highlight DiffDelete cterm=none ctermfg=Black ctermbg=Red gui=none guifg=Black guibg=Red
|
||||
highlight DiffChange cterm=none ctermfg=Black ctermbg=Yellow gui=none guifg=Black guibg=Yellow
|
||||
highlight DiffText cterm=none ctermfg=Black ctermbg=Magenta gui=none guifg=Black guibg=Magenta
|
||||
" Display tabs and trailing spaces visually
|
||||
set list
|
||||
set listchars=tab:>-,trail:·
|
||||
|
||||
|
||||
|
||||
"
|
||||
" .gvimrc content here.
|
||||
"
|
||||
if has("gui_running")
|
||||
" set color scheme
|
||||
colorscheme darkblue
|
||||
"set guioptions-=m
|
||||
"set guioptions-=T
|
||||
set lines=50
|
||||
set columns=85
|
||||
|
||||
" Set the font.
|
||||
if has("win32") || has("win64")
|
||||
"set guifont=FreeMono:h14:cANSI
|
||||
"set guifont=Courier\ AM:h12
|
||||
else
|
||||
"set guifont=Bitstream\ Vera\ Sans\ Mono\ 12
|
||||
set guifont=Monospace\ 12
|
||||
endif
|
||||
else
|
||||
colors vahagn_black_terminal
|
||||
endif
|
||||
" Configure coloring on command line terminals.
|
||||
if &term=="xterm"
|
||||
set t_Co=8
|
||||
set t_Sb=[4%dm
|
||||
set t_Sf=[3%dm
|
||||
endif
|
||||
" In many terminal emulators the mouse works just fine, thus enable it.
|
||||
if has('mouse')
|
||||
" set mouse=n
|
||||
endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
" One such option is the 'hidden' option, which allows you to re-use the same
|
||||
" window and switch from an unsaved buffer without saving it first. Also allows
|
||||
" you to keep an undo history for multiple files when re-using the same window
|
||||
@@ -64,32 +244,6 @@ if exists('&hidden')
|
||||
set hidden
|
||||
endif
|
||||
|
||||
" Instead of failing a command because of unsaved changes, raise a dialogue
|
||||
" asking if you wish to save changed files.
|
||||
if exists('&confirm')
|
||||
set confirm
|
||||
endif
|
||||
|
||||
" Use visual bell instead of beeping when doing something wrong
|
||||
if exists('&visualbell')
|
||||
set visualbell
|
||||
endif
|
||||
|
||||
" Display line numbers on the left
|
||||
if exists('&number')
|
||||
set number
|
||||
endif
|
||||
|
||||
" Turn on spell check.
|
||||
if exists("+spell")
|
||||
set spell
|
||||
endif
|
||||
|
||||
" Show 80th column.
|
||||
if exists("+colorcolumn")
|
||||
set colorcolumn=+1 " color textwidth+1-th line
|
||||
endif
|
||||
|
||||
" Modelined are used to configure files.
|
||||
if exists('&modeline')
|
||||
set modeline
|
||||
@@ -100,8 +254,10 @@ endif
|
||||
if has('folding')
|
||||
set nofoldenable
|
||||
set foldmethod=indent "fold based on indent
|
||||
set foldnestmax=5
|
||||
set foldnestmax=3
|
||||
set foldminlines=4
|
||||
set foldlevel=1
|
||||
set foldcolumn=2 " foldcolumn is width 2
|
||||
if has("autocmd")
|
||||
autocmd FileType vim setlocal foldmethod=marker
|
||||
autocmd FileType c setlocal foldmethod=syntax
|
||||
@@ -110,16 +266,6 @@ if has('folding')
|
||||
endif
|
||||
endif
|
||||
|
||||
" Unset expandtab for make files in any case.
|
||||
if has('autocmd')
|
||||
autocmd FileType make setlocal noexpandtab
|
||||
endif
|
||||
|
||||
" Set expandtab for python files in any case.
|
||||
if has('autocmd')
|
||||
autocmd FileType python setlocal expandtab
|
||||
endif
|
||||
|
||||
" Only do this part when compiled with support for autocommands.
|
||||
if has("autocmd")
|
||||
|
||||
@@ -129,12 +275,17 @@ if has("autocmd")
|
||||
" Also load indent files, to automatically do language-dependent indenting.
|
||||
filetype plugin indent on
|
||||
|
||||
" start with all folds open
|
||||
au BufRead,BufNewFile,BufWinEnter * normal zR
|
||||
" highlight lone colon characters
|
||||
highlight WarnChar ctermbg=yellow ctermfg=red guibg=#FFCC33 guifg=#FF0000
|
||||
"apply highlight when opening a file, changing text (N or I), or opening a split
|
||||
au BufRead,InsertCharPre *.cpp 2mat WarnChar /\w\+;\?:;\?\w\+/
|
||||
|
||||
" 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=79
|
||||
|
||||
" 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
|
||||
@@ -148,8 +299,6 @@ if has("autocmd")
|
||||
|
||||
augroup END
|
||||
|
||||
else
|
||||
set autoindent " always set autoindenting on
|
||||
endif " has("autocmd")
|
||||
|
||||
" Convenient command to see the difference between the current buffer and the
|
||||
@@ -160,38 +309,16 @@ if !exists(":DiffOrig")
|
||||
\ | wincmd p | diffthis
|
||||
endif
|
||||
|
||||
set diffexpr=MyDiff()
|
||||
function MyDiff()
|
||||
let opt = '-a --binary '
|
||||
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
|
||||
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
|
||||
let arg1 = v:fname_in
|
||||
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
|
||||
let arg2 = v:fname_new
|
||||
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
|
||||
let arg3 = v:fname_out
|
||||
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
|
||||
let eq = ''
|
||||
if $VIMRUNTIME =~ ' '
|
||||
if &sh =~ '\<cmd'
|
||||
let cmd = '""' . $VIMRUNTIME . '\diff"'
|
||||
let eq = '"'
|
||||
else
|
||||
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
|
||||
endif
|
||||
else
|
||||
let cmd = $VIMRUNTIME . '\diff'
|
||||
endif
|
||||
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
|
||||
endfunction
|
||||
|
||||
" Don't let vim be too smart.
|
||||
set formatoptions=cql
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" Key Mappings
|
||||
"
|
||||
" P4
|
||||
command! -nargs=* PFedit :!p4 edit <args> %
|
||||
command! -nargs=* PFrevert :!p4 revert <args> %
|
||||
command! -nargs=* PFdiff :!p4 diff <args> %
|
||||
|
||||
" F4 grep the word under cursor.
|
||||
map <F4> :execute "grep " . expand("<cword>") . " -r *.h *.cpp *.c *.f" <Bar> cw<CR>
|
||||
" Create a new tab.
|
||||
map <silent> <C-F3> :tabnew<CR>
|
||||
"
|
||||
"command! -nargs=* PFdiff :!p4 diff <args> %
|
||||
"
|
||||
" Loads CF5Compile
|
||||
" Compile and run file if Ctrl-F5 is pressed.
|
||||
@@ -214,7 +341,7 @@ noremap <Down> gj
|
||||
imap <Up> <C-O>gk
|
||||
imap <Down> <C-O>gj
|
||||
"
|
||||
" Working with tabs especially if using Putty.
|
||||
" Working with tabs especially if using console version.
|
||||
"
|
||||
nnoremap th :tabfirst<CR>
|
||||
nnoremap tj :tabnext<CR>
|
||||
@@ -226,16 +353,6 @@ nnoremap td :tabclose<CR>
|
||||
" .gvimrc content here.
|
||||
"
|
||||
if has("gui_running")
|
||||
|
||||
colors darkblue " set color scheme
|
||||
set lines=50
|
||||
set columns=85
|
||||
if has("win32") || has("win64")
|
||||
set guifont=FreeMono:h14:cANSI
|
||||
"set guifont=Courier\ AM:h12
|
||||
endif
|
||||
|
||||
|
||||
":tab drop {file}
|
||||
|
||||
" Hide show menu and toolbar.
|
||||
@@ -253,11 +370,18 @@ if has("gui_running")
|
||||
if has("browsefilter")
|
||||
let g:browsefilter = "All Files (*.*)\t*\n"
|
||||
endif
|
||||
"if has("browse")
|
||||
map <silent> <C-F3> :browse tabnew %:p:h<CR>
|
||||
"endif
|
||||
|
||||
else
|
||||
colors vahagn_black_terminal
|
||||
endif
|
||||
|
||||
"
|
||||
" Vundle experimental stuff here.
|
||||
"
|
||||
if filereadable(expand("~/.vim/bundle/Vundle.vim/README.md"))
|
||||
filetype off
|
||||
set rtp+=~/.vim/bundle/Vundle.vim
|
||||
call vundle#begin()
|
||||
Plugin 'VundleVim/Vundle.vim'
|
||||
call vundle#end()
|
||||
filetype plugin indent on
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user