Created
November 15, 2019 08:11
-
-
Save adolli/360d090d85d61ad4f557457a4ce883f2 to your computer and use it in GitHub Desktop.
.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
set nocompatible " be iMproved, required | |
filetype off " required | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
" alternatively, pass a path where Vundle should install plugins | |
" call vundle#begin('~/some/path/here') | |
" | |
" let Vundle manage Vundle, required | |
Plugin 'VundleVim/Vundle.vim' | |
" All of your Plugins must be added before the following line | |
call vundle#end() " required | |
" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just | |
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime | |
" you can find below. If you wish to change any of those settings, you should | |
" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten | |
" everytime an upgrade of the vim packages is performed. It is recommended to | |
" make changes after sourcing debian.vim since it alters the value of the | |
" 'compatible' option. | |
" This line should not be removed as it ensures that various options are | |
" properly set to work with the Vim-related packages available in Debian. | |
runtime! debian.vim | |
" Uncomment the next line to make Vim more Vi-compatible | |
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous | |
" options, so any other options should be set AFTER setting 'compatible'. | |
"set compatible | |
" Vim5 and later versions support syntax highlighting. Uncommenting the next | |
" line enables syntax highlighting by default. | |
if has("syntax") | |
syntax on | |
endif | |
" If using a dark background within the editing area and syntax highlighting | |
" turn on this option as well | |
"set background=dark | |
" Uncomment the following to have Vim jump to the last position when | |
" reopening a file | |
"if has("autocmd") | |
" au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif | |
"endif | |
" Uncomment the following to have Vim load indentation rules and plugins | |
" according to the detected filetype. | |
"if has("autocmd") | |
" filetype plugin indent on | |
"endif | |
" The following are commented out as they cause vim to behave a lot | |
" differently from regular Vi. They are highly recommended though. | |
"set showcmd " Show (partial) command in status line. | |
"set showmatch " Show matching brackets. | |
"set ignorecase " Do case insensitive matching | |
"set smartcase " Do smart case matching | |
"set incsearch " Incremental search | |
"set autowrite " Automatically save before commands like :next and :make | |
"set hidden " Hide buffers when they are abandoned | |
"set mouse=a " Enable mouse usage (all modes) | |
" Source a global configuration file if available | |
if filereadable("/etc/vim/vimrc.local") | |
source /etc/vim/vimrc.local | |
endif | |
"recover the position last edited | |
au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#rc() | |
" Bundle 'gmarik/vundle' | |
" Bundle 'davidhalter/jedi' | |
" Bundle 'marijnh/tern_for_vim' | |
" Bundle 'Valloric/YouCompleteMe' | |
" Bundle 'Valloric/ListToggle' | |
" Bundle 'scrooloose/syntastic' | |
:colorscheme default | |
:set number | |
:set tabstop=4 | |
:set shiftwidth=4 | |
:set expandtab | |
:set smarttab | |
:set hlsearch | |
:set incsearch | |
:set smartindent | |
:set foldenable | |
:set foldmethod=indent | |
:set enc=utf-8 | |
:set fencs=utf-8,gbk,ucs-bom,cp936 | |
:set fenc=utf-8 | |
:set mouse=a | |
:set nopaste | |
set nocp | |
filetype plugin on | |
set undodir=~/.undodir | |
let Tlist_Show_One_File=1 | |
let Tlist_Exit_OnlyWindow=1 | |
function! UPDATE_TAGS() | |
let _f_ = expand("%:p") | |
let _cmd_ = '"ctags -a -f /dvr/tags --c++-kinds=+p --fields=+iaS --extra=+q " ' . '"' . _f_ . '"' | |
let _resp = system(_cmd_) | |
unlet _cmd_ | |
unlet _f_ | |
unlet _resp | |
endfunction | |
autocmd BufWrite *.cpp,*.h,*.c call UPDATE_TAGS() | |
func! CompileGcc() | |
exec "w" | |
let compilecmd="!gcc " | |
let compileflag=" -o %< " | |
exec compilecmd." % ".compileflag | |
endfunc | |
func! CompileGpp() | |
exec "w" | |
let compilecmd="!g++ -std=c++11 " | |
let compileflag=" -o %< " | |
exec compilecmd." % ".compileflag | |
endfunc | |
func! RunLua() | |
exec "!lua %" | |
endfunc | |
func! CompileCode() | |
exec "w" | |
if &filetype == "lua" | |
exec "call RunLua()" | |
else | |
exec "call CompileGpp()" | |
exec "! ./%<" | |
endif | |
endfunc | |
func! RunResult() | |
exec "w" | |
if search("mpi\.h") != 0 | |
exec "!mpirun -np 4 ./%<" | |
elseif &filetype == "cpp" | |
exec "! ./%<" | |
elseif &filetype == "c" | |
exec "! ./%<" | |
elseif &filetype == "python" | |
exec "call RunPython" | |
elseif &filetype == "java" | |
exec "!java %<" | |
endif | |
endfunc | |
map <F5> :call CompileCode()<CR> | |
imap <F5> <ESC>:call CompileCode()<CR> | |
vmap <F5> <ESC>:call CompileCode()<CR> | |
map <F6> :call RunResult()<CR> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment