Created
October 2, 2012 17:43
-
-
Save natedsaint/3821549 to your computer and use it in GitHub Desktop.
NateDSaint's .vimrc (work version)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" set title | |
set title | |
" set cgi to read as perl | |
au BufNewFile,BufRead *.cgi setf perl | |
set mouse=a | |
nmap <C-W>e :new \| vimshell bash<CR> | |
nmap <C-W>E :vnew \| vimshell bash<CR> | |
" enable syntax highlighting | |
syntax on | |
" automatically indent lines (default) | |
set smartindent | |
" set autoindent | |
" make searches case insensitive | |
set ignorecase | |
" show cursor line and column in the status line | |
set ruler | |
" show matching brackets | |
set showmatch | |
" display mode INSERT/REPLACE/... | |
set showmode | |
" changes special characters in search patterns (default) | |
" set magic | |
" Show line numbers | |
" set number | |
" Required to be able to use keypad keys and map missed escape sequences | |
set esckeys | |
" get easier to use and more user friendly vim defaults | |
" CAUTION: This option breaks some vi compatibility. | |
" Switch it off if you prefer real vi compatibility | |
set nocompatible | |
" set tab width, default is 8 | |
set tabstop=2 | |
set shiftwidth=2 | |
set softtabstop=2 | |
set expandtab | |
" set background to dark for syntax-higlighting purposes | |
set background=dark | |
" Complete longest common string, then each full match | |
" enable this for bash compatible behaviour | |
" set wildmode=longest,full | |
" Try to get the correct main terminal type | |
if &term =~ "xterm" | |
let myterm = "xterm" | |
else | |
let myterm = &term | |
endif | |
let myterm = substitute(myterm, "screen", "xterm", "") | |
let myterm = substitute(myterm, "cons[0-9][0-9].*$", "linux", "") | |
let myterm = substitute(myterm, "vt1[0-9][0-9].*$", "vt100", "") | |
let myterm = substitute(myterm, "vt2[0-9][0-9].*$", "vt220", "") | |
let myterm = substitute(myterm, "\\([^-]*\\)[_-].*$", "\\1", "") | |
" Here we define the keys of the NumLock in keyboard transmit mode of xterm | |
" which misses or hasn't activated Alt/NumLock Modifiers. Often not defined | |
" within termcap/terminfo and we should map the character printed on the keys. | |
if myterm == "xterm" || myterm == "kvt" || myterm == "gnome" | |
" keys in insert/command mode. | |
map! <ESC>Oo : | |
map! <ESC>Oj * | |
map! <ESC>Om - | |
map! <ESC>Ok + | |
map! <ESC>Ol , | |
map! <ESC>OM | |
map! <ESC>Ow 7 | |
map! <ESC>Ox 8 | |
map! <ESC>Oy 9 | |
map! <ESC>Ot 4 | |
map! <ESC>Ou 5 | |
map! <ESC>Ov 6 | |
map! <ESC>Oq 1 | |
map! <ESC>Or 2 | |
map! <ESC>Os 3 | |
map! <ESC>Op 0 | |
map! <ESC>On . | |
" keys in normal mode | |
map <ESC>Oo : | |
map <ESC>Oj * | |
map <ESC>Om - | |
map <ESC>Ok + | |
map <ESC>Ol , | |
map <ESC>OM | |
map <ESC>Ow 7 | |
map <ESC>Ox 8 | |
map <ESC>Oy 9 | |
map <ESC>Ot 4 | |
map <ESC>Ou 5 | |
map <ESC>Ov 6 | |
map <ESC>Oq 1 | |
map <ESC>Or 2 | |
map <ESC>Os 3 | |
map <ESC>Op 0 | |
map <ESC>On . | |
endif | |
" xterm but without activated keyboard transmit mode | |
" and therefore not defined in termcap/terminfo. | |
if myterm == "xterm" || myterm == "kvt" || myterm == "gnome" | |
" keys in insert/command mode. | |
map! <Esc>[H <Home> | |
map! <Esc>[F <End> | |
" Home/End: older xterms do not fit termcap/terminfo. | |
map! <Esc>[1~ <Home> | |
map! <Esc>[4~ <End> | |
" Up/Down/Right/Left | |
map! <Esc>[A <Up> | |
map! <Esc>[B <Down> | |
map! <Esc>[C <Right> | |
map! <Esc>[D <Left> | |
" KP_5 (NumLock off) | |
map! <Esc>[E <Insert> | |
" PageUp/PageDown | |
map <ESC>[5~ <PageUp> | |
map <ESC>[6~ <PageDown> | |
map <ESC>[5;2~ <PageUp> | |
map <ESC>[6;2~ <PageDown> | |
map <ESC>[5;5~ <PageUp> | |
map <ESC>[6;5~ <PageDown> | |
" keys in normal mode | |
map <ESC>[H 0 | |
map <ESC>[F $ | |
" Home/End: older xterms do not fit termcap/terminfo. | |
map <ESC>[1~ 0 | |
map <ESC>[4~ $ | |
" Up/Down/Right/Left | |
map <ESC>[A k | |
map <ESC>[B j | |
map <ESC>[C l | |
map <ESC>[D h | |
" KP_5 (NumLock off) | |
map <ESC>[E i | |
" PageUp/PageDown | |
map <ESC>[5~ | |
map <ESC>[6~ | |
map <ESC>[5;2~ | |
map <ESC>[6;2~ | |
map <ESC>[5;5~ | |
map <ESC>[6;5~ | |
endif | |
" xterm/kvt but with activated keyboard transmit mode. | |
" Sometimes not or wrong defined within termcap/terminfo. | |
if myterm == "xterm" || myterm == "kvt" || myterm == "gnome" | |
" keys in insert/command mode. | |
map! <Esc>OH <Home> | |
map! <Esc>OF <End> | |
map! <ESC>O2H <Home> | |
map! <ESC>O2F <End> | |
map! <ESC>O5H <Home> | |
map! <ESC>O5F <End> | |
" Cursor keys which works mostly | |
" map! <Esc>OA <Up> | |
" map! <Esc>OB <Down> | |
" map! <Esc>OC <Right> | |
" map! <Esc>OD <Left> | |
map! <Esc>[2;2~ <Insert> | |
map! <Esc>[3;2~ <Delete> | |
map! <Esc>[2;5~ <Insert> | |
map! <Esc>[3;5~ <Delete> | |
map! <Esc>O2A <PageUp> | |
map! <Esc>O2B <PageDown> | |
map! <Esc>O2C <S-Right> | |
map! <Esc>O2D <S-Left> | |
map! <Esc>O5A <PageUp> | |
map! <Esc>O5B <PageDown> | |
map! <Esc>O5C <S-Right> | |
map! <Esc>O5D <S-Left> | |
" KP_5 (NumLock off) | |
map! <Esc>OE <Insert> | |
" keys in normal mode | |
map <ESC>OH 0 | |
map <ESC>OF $ | |
map <ESC>O2H 0 | |
map <ESC>O2F $ | |
map <ESC>O5H 0 | |
map <ESC>O5F $ | |
" Cursor keys which works mostly | |
" map <ESC>OA k | |
" map <ESC>OB j | |
" map <ESC>OD h | |
" map <ESC>OC l | |
map <Esc>[2;2~ i | |
map <Esc>[3;2~ x | |
map <Esc>[2;5~ i | |
map <Esc>[3;5~ x | |
map <ESC>O2A ^B | |
map <ESC>O2B ^F | |
map <ESC>O2D b | |
map <ESC>O2C w | |
map <ESC>O5A ^B | |
map <ESC>O5B ^F | |
map <ESC>O5D b | |
map <ESC>O5C w | |
" KP_5 (NumLock off) | |
map <ESC>OE i | |
endif | |
if myterm == "linux" | |
" keys in insert/command mode. | |
map! <Esc>[G <Insert> | |
" KP_5 (NumLock off) | |
" keys in normal mode | |
" KP_5 (NumLock off) | |
map <ESC>[G i | |
endif | |
" This escape sequence is the well known ANSI sequence for | |
" Remove Character Under The Cursor (RCUTC[tm]) | |
map! <Esc>[3~ <Delete> | |
map <ESC>[3~ x | |
" Only do this part when compiled with support for autocommands. | |
if has("autocmd") | |
" 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 | |
endif " has("autocmd") | |
" Changed default required by SuSE security team | |
set modelines=0 | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Perl | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" want .pcf files to be treated as perl | |
au BufNewFile,BufRead *.pcf setf perl | |
au BufNewFile,BufRead *.pcf.* setf perl | |
au BufNewFile,BufRead *.mcf setf perl | |
au BufNewFile,BufRead *.pm.* setf perl | |
au BufNewFile,BufRead *.pl.* setf perl | |
au BufNewFile,BufRead *.js.* setf javascript | |
au BufNewFile,BufRead *.html.* setf html | |
au BufNewFile,BufRead *.xml.* setf xml | |
let perl_extended_vars=1 " highlight advanced perl vars inside strings | |
"highlight DiffChange ctermbg=124 | |
"highlight DiffAdd ctermbg=17 | |
"highlight DiffText ctermbg=235 | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Folding | |
" Enable folding, but by default make it act like folding is off, because folding is annoying in anything but a few rare cases | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
set foldenable " Turn on folding | |
"set foldmethod=indent " Make folding indent sensitive | |
set foldlevel=100 " Don't autofold anything (but I can still fold manually) | |
"set foldopen-=search " don't open folds when you search into them | |
"set foldopen-=undo " don't open folds when you undo stuff | |
" Open folds on: | |
" - Horizontal movement upon the fold | |
" - Movement to a mark | |
" - Searches | |
" - Movement to a tag | |
" - Undo (or redo) | |
set foldopen=hor,mark,search,tag,undo | |
set foldcolumn=6 | |
set foldmethod=syntax " Make folding syntax sensitive | |
let perl_fold_blocks=1 | |
let perl_fold=1 | |
let javaScript_fold=1 | |
set incsearch | |
function InsertTabWrapper() | |
let col = col('.') -1 | |
if !col || getline('.')[col -1] !~ '\k' | |
return "\<tab>" | |
else | |
return "\<c-p>" | |
endif | |
endfunction | |
inoremap <tab> <c-r>=InsertTabWrapper()<cr> | |
" get easier to use and more user friendly vim defaults | |
" /etc/vimrc ends here | |
colorscheme herald | |
set number |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment