Created
June 23, 2016 21:24
-
-
Save mdtareque/9d28c7b63b2b77d15679374a8dfbad20 to your computer and use it in GitHub Desktop.
Vimrc
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 ts=4 | |
set sw=4 | |
set et | |
set ai | |
set hls | |
so ~/.vim/Align.vim | |
" https://github.com/tpope/vim-pathogen To install vim plugins | |
execute pathogen#infect() | |
syntax on | |
filetype plugin indent on | |
" https://github.com/godlygeek/tabular vim plugin to align | |
inoremap <silent> <Bar> <Bar><Esc>:call <SID>align()<CR>a | |
function! s:align() | |
let p = '^\s*|\s.*\s|\s*$' | |
if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p) | |
let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g')) | |
let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*')) | |
Tabularize/|/l1 | |
normal! 0 | |
call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) | |
endif | |
endfunction | |
" only to work in insert mode | |
iab ic #include | |
iab id #define | |
iab ci cin>>;<Esc>i | |
iab co cout<<;<Esc>i | |
iab con cout<<endl; | |
iab cen cerr<<endl; | |
iab el <<endl; | |
iab pf printf("");<Esc>hhi | |
iab pfn printf("\n"); | |
iab pfd printf("%d",);<Esc>hhhi | |
iab pfs printf("%s\n",);<Esc>hhhi | |
iab sf scanf("%", &);<Esc>hhhi | |
iab sfd scanf("%d", &);<Esc>hhhi | |
iab sfs scanf("%s", &);<Esc>hhhi | |
iab fori for(int i=0; i<n; i++) | |
iab forj for(int j=0; j<n; j++) | |
iab wi while(i<n) | |
iab ints int myInts[] = {75, 23, 65, 42, 13}; | |
iab for9 for(int i=0; i<9; i++) | |
iab maps map<char, int> letter_counts {{'a', 27}, {'b', 3}, {'c', 1}}; | |
iab fora for(auto it : p) { | |
}<esc>O | |
iab veci vector<int> v; | |
iab vecit vector<int>::iterator vit; | |
iab mapi map<string, int> m; | |
iab mapit map<string, int>::iterator m; | |
iab seti set<int> m; | |
iab setit set<int>::iterator m; | |
iab 2dvec vector<vector<int>> v2(3, vector<int>(2,0)); // all initialized to 0 | |
"iab fgets | |
" strip trailing space on save | |
autocmd BufWritePre * :%s/\s\+$//e | |
" auto-indent, expand-tab, shift-width, tab-stop | |
set et | |
set sw=4 | |
set ts=4 | |
" display status line 'laststatus' | |
" set ls=2 | |
set ai | |
colorscheme desert | |
autocmd BufNewFile *.cpp -r ~/Dropbox/a/template.cpp | |
" autocmd BufNewFile *.cpp -r ~/Dropbox/a/template.mini.cpp | |
"set spell | |
" save and load folds | |
autocmd BufWinLeave *.* mkview | |
autocmd BufWinEnter *.* silent loadview | |
" Syntastic | |
set statusline+=%#warningmsg# | |
set statusline+=%{SyntasticStatuslineFlag()} | |
set statusline+=%* | |
let g:syntastic_always_populate_loc_list = 1 | |
let g:syntastic_auto_loc_list = 1 | |
let g:syntastic_check_on_open = 1 | |
let g:syntastic_check_on_wq = 0 | |
let g:syntastic_cpp_compiler_options = ' -DCODING -std=c++11' | |
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] } | |
nnoremap <C-w>E :SyntasticCheck<CR> :SyntasticToggleMode<CR> | |
set number numberwidth=5 | |
set shiftround | |
" relative number | |
set rnu | |
set wrap | |
let mapleader="\\" | |
"let mapleader="<" | |
"toggle line number | |
"nnoremap <leader>l :set nonu! nornu!<cr> | |
nnoremap <F2> :set nonu! nornu! nu? <cr> | |
nnoremap ,ev :vsplit $MYVIMRC<cr> | |
nnoremap ,sv :source $MYVIMRC<cr> | |
" quickly open cpp template file | |
nnoremap ,et :vsplit $MYCPPTEMPLATE<cr> | |
nnoremap ,eb :vsplit $HOME/.bashrc<cr> | |
:autocmd FileType python nnoremap <buffer> <localleader>c I#<esc> | |
:autocmd FileType cpp nnoremap <buffer> <localleader>c I#<esc> | |
"inoremap jk <esc> | |
"inoremap <esc> <nop> | |
" nnoremap <F2>E :set number!<CR> | |
" Start NERDTree | |
" autocmd VimEnter * NERDTree | |
" Go to previous (last accessed) window. | |
autocmd VimEnter * wincmd p | |
" toggle nerdtree | |
map <C-n> :NERDTreeToggle<CR> | |
" close nerdtree if it's last buffer | |
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif | |
let NERDTreeShowBookmarks=1 | |
set pastetoggle=<F10> | |
set swapfile | |
set dir=$HOME/.vim/swapfiles | |
" move between viewports | |
nnoremap <C-j> <C-W>j | |
nnoremap <C-k> <C-W>k | |
nnoremap <C-h> <C-W>h | |
nnoremap <C-l> <C-W>l | |
" nnoremap <leader>sw :w !sudo tee %<CR> | |
nnoremap <leader>ci :execute "vsplit %:r.in"<CR><C-W>r<CR>; | |
" NerdCommenter | |
let g:NERDSpaceDelims = 1 | |
let g:NERDCompactSexyComs = 1 | |
"autocmd VimEnter * noremap <leader>cc <leader>ci | |
nmap <Leader>cc <Plug>NERDCommenterInvert | |
set title | |
set titleold= | |
" open input file | |
noremap <F3> :execute "split %:r.in"<CR><C-W>r<CR> | |
" Execute | |
nnoremap <F4> :execute '!g++ --std=c++11 -Wall -g -DCODING ' . shellescape(join([expand("%:r"),"cpp"],"."),1). | |
\ ' && ./a.out < '. shellescape(join([expand("%:r"), "in"], "."), 1)<CR> | |
" verbose nnoremap <C-q> :execute 'q'<CR> | |
verbose nnoremap <C-q> :q<CR> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment