Last active
December 17, 2015 07:39
-
-
Save svagionitis/5574519 to your computer and use it in GitHub Desktop.
Dot file .vimrc
This file contains hidden or 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
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Maintainer: | |
" Amir Salihefendic | |
" http://amix.dk - [email protected] | |
" | |
" Version: | |
" 5.0 - 29/05/12 15:43:36 | |
" | |
" Blog_post: | |
" http://amix.dk/blog/post/19691#The-ultimate-Vim-configuration-on-Github | |
" | |
" Awesome_version: | |
" Get this config, nice color schemes and lots of plugins! | |
" | |
" Install the awesome version from: | |
" | |
" https://github.com/amix/vimrc | |
" | |
" Syntax_highlighted: | |
" http://amix.dk/vim/vimrc.html | |
" | |
" Raw_version: | |
" http://amix.dk/vim/vimrc.txt | |
" | |
" Sections: | |
" -> General | |
" -> VIM user interface | |
" -> Colors and Fonts | |
" -> Files and backups | |
" -> Text, tab and indent related | |
" -> Visual mode related | |
" -> Moving around, tabs and buffers | |
" -> Status line | |
" -> Editing mappings | |
" -> vimgrep searching and cope displaying | |
" -> Spell checking | |
" -> Misc | |
" -> Helper functions | |
" | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => General | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Enable filetype plugins | |
filetype plugin on | |
filetype indent on | |
" By default, when you copy and paste in Vi or Vim (through a remote SSH session), | |
" it adds incremented tabs on each line. | |
" http://en.kioskea.net/faq/981-vi-vim-avoid-tabs-when-you-copy-paste | |
" Also look http://superuser.com/questions/372894/tabs-in-vim-how-do-you-make-it-so-that-when-you-copypaste-code-legally-from | |
" set paste | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => VIM user interface | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Turn on the WiLd menu | |
set wildmenu | |
"Always show current position | |
set ruler | |
" Configure backspace so it acts as it should act | |
set backspace=eol,start,indent | |
set whichwrap+=<,>,h,l | |
" When searching try to be smart about cases | |
set smartcase | |
" Highlight search results | |
set hlsearch | |
" Makes search act like search in modern browsers | |
set incsearch | |
" Don't redraw while executing macros (good performance config) | |
set lazyredraw | |
" For regular expressions turn magic on | |
set magic | |
" Show matching brackets when text indicator is over them | |
set showmatch | |
" How many tenths of a second to blink when matching brackets | |
set mat=2 | |
" No annoying sound on errors | |
set noerrorbells | |
set novisualbell | |
set t_vb= | |
set tm=500 | |
" Show partial commands in the last line of the screen | |
set showcmd | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Colors and Fonts | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Enable syntax highlighting | |
syntax enable | |
colorscheme desert | |
set background=dark | |
" Set utf8 as standard encoding and en_US as the standard language | |
set encoding=utf-8 | |
" http://stackoverflow.com/questions/4103970/how-to-read-sjis-encoded-file-in-vim | |
set fileencodings=ucs-bom,utf-8,sjis,default | |
" Use Unix as the standard file type | |
set ffs=unix,dos,mac | |
" Make trailing whitespace annoyingly highlighted. | |
" Source http://dysfunctionalprogramming.co.uk/blog/2013/08/15/fight-with-tools/ | |
highlight ExtraWhitespace ctermbg=red guibg=red | |
match ExtraWhitespace /\s\+$/ | |
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/ | |
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/ | |
autocmd InsertLeave * match ExtraWhitespace /\s\+$/ | |
autocmd BufWinLeave * call clearmatches() | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Text, tab and indent related | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Be smart when using tabs ;) | |
set smarttab | |
set shiftwidth=4 | |
set softtabstop=4 | |
" Linebreak on 500 characters | |
set lbr | |
set tw=500 | |
" http://vim.wikia.com/wiki/Converting_tabs_to_spaces | |
" To control the number of space characters that will be inserted | |
" when the tab key is pressed, set the 'tabstop' option. For example, | |
" to insert 4 spaces for a tab, use | |
set tabstop=4 | |
" To insert space characters whenever the tab key is pressed, | |
" set the 'expandtab' option: | |
set expandtab | |
" Disable autoident because of problems while pasting | |
"set ai "Auto indent | |
set si "Smart indent | |
set wrap "Wrap lines | |
" http://www.mike-griffith.com/blog/2009/05/vim-tip-of-the-day-leave-python-comments-indented-dont-put-cursor-at-beginning-of-the-line/ | |
":inoremap # X<C-H># | |
"""""""""""""""""""""""""""""" | |
" => Visual mode related | |
"""""""""""""""""""""""""""""" | |
" Visual mode pressing * or # searches for the current selection | |
" Super useful! From an idea by Michael Naumann | |
vnoremap <silent> * :call VisualSelection('f')<CR> | |
vnoremap <silent> # :call VisualSelection('b')<CR> | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Moving around, tabs, windows and buffers | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Return to last edit position when opening files (You want this!) | |
autocmd BufReadPost * | |
\ if line("'\"") > 0 && line("'\"") <= line("$") | | |
\ exe "normal! g`\"" | | |
\ endif | |
" Remember info about open buffers on close | |
set viminfo^=% | |
"""""""""""""""""""""""""""""" | |
" => Status line | |
"""""""""""""""""""""""""""""" | |
" Always show the status line | |
set laststatus=2 | |
" Format the status line | |
" http://archive09.linux.com/feature/120126 | |
" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L] | |
set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l\ Column:\ %v\ %p%% | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Helper functions | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
function! CmdLine(str) | |
exe "menu Foo.Bar :" . a:str | |
emenu Foo.Bar | |
unmenu Foo | |
endfunction | |
function! VisualSelection(direction) range | |
let l:saved_reg = @" | |
execute "normal! vgvy" | |
let l:pattern = escape(@", '\\/.*$^~[]') | |
let l:pattern = substitute(l:pattern, "\n$", "", "") | |
if a:direction == 'b' | |
execute "normal ?" . l:pattern . "^M" | |
elseif a:direction == 'gv' | |
call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.') | |
elseif a:direction == 'replace' | |
call CmdLine("%s" . '/'. l:pattern . '/') | |
elseif a:direction == 'f' | |
execute "normal /" . l:pattern . "^M" | |
endif | |
let @/ = l:pattern | |
let @" = l:saved_reg | |
endfunction | |
" Returns true if paste mode is enabled | |
function! HasPaste() | |
if &paste | |
return 'PASTE MODE ' | |
en | |
return '' | |
endfunction | |
" Don't close window, when deleting a buffer | |
command! Bclose call <SID>BufcloseCloseIt() | |
function! <SID>BufcloseCloseIt() | |
let l:currentBufNum = bufnr("%") | |
let l:alternateBufNum = bufnr("#") | |
if buflisted(l:alternateBufNum) | |
buffer # | |
else | |
bnext | |
endif | |
if bufnr("%") == l:currentBufNum | |
new | |
endif | |
if buflisted(l:currentBufNum) | |
execute("bdelete! ".l:currentBufNum) | |
endif | |
endfunction | |
" How To Add A File Extension To vim Syntax Highlighting | |
" http://beerpla.net/2008/04/02/how-to-add-a-vim-file-extension-to-syntax-highlighting/ | |
au BufNewFile,BufRead *.thrift set filetype=idl | |
" Vundle install | |
" https://github.com/gmarik/vundle | |
set rtp+=~/.vim/bundle/vundle/ | |
call vundle#rc() | |
" https://github.com/wakatime/vim-wakatime | |
Bundle 'wakatime/vim-wakatime' | |
" http://vim.wikia.com/wiki/Indenting_source_code | |
" Using the "after" directory as above is recommended, but it is possible to put commands such as the following in your vimrc as an alternative: | |
" e.g. autocmd FileType html setlocal shiftwidth=2 tabstop=2 | |
" e.g. autocmd FileType python setlocal expandtab shiftwidth=4 softtabstop=4 | |
autocmd FileType python setlocal expandtab shiftwidth=4 softtabstop=4 | |
autocmd FileType cpp setlocal expandtab shiftwidth=4 softtabstop=4 cindent | |
autocmd FileType c setlocal expandtab shiftwidth=4 softtabstop=4 cindent | |
autocmd FileType javascript setlocal expandtab shiftwidth=4 softtabstop=4 | |
autocmd FileType html setlocal expandtab shiftwidth=4 softtabstop=4 | |
autocmd FileType idl setlocal expandtab shiftwidth=4 softtabstop=4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment