"===============================================
"Description: my vimrc for linux
"
"
"Author: Wran
"
" 工欲善其事必先利其器
"================================================javascript
"關閉vi兼容模式
set nocompatible
"顏色配方
"colorscheme Wrancolor
"colorscheme anotherdark
"colorscheme darkburn
colorscheme asmanian2
map b <c-b>
map f <c-f>
"顯示行號
set nu
"爲了方便複製,用<F2>開啓/關閉行號顯示
nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR>
"設置 tab 的長度
set tabstop=4
"突出顯示當前行
set cursorline
"顯示垂直線
nnoremap <F4> :set cursorcolumn!<CR>
"在狀態欄上顯示正在輸入的命令
set showcmd
"打開狀態欄標尺
set ruler
"設置縮進長度
set expandtab
set shiftwidth=4
set softtabstop=4
set autoindent
set backspace=indent,eol,start
"高亮顯示當前的匹配
set wildmenu
"設置字體
"set guifont=Courier_New:h10:cANSI
set commentstring=\ #\ %s
"顯示狀態欄(默認的值爲1 沒法顯示)
set laststatus=2
"設置在狀態欄上顯示的信息
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
"設置不自動拆行
set nowrap
"高亮顯示搜索結果
set hlsearch
map <C-n> :noh<CR>php
"實時進行高亮查詢
set incsearch
"共享剪切板
set clipboard+=unnamed
"設置編碼
set fileencoding=utf-8
set encoding=utf-8
"設置不自動拆行
set nowrap
"臨時粘貼,解決縮進混亂的問題,進入paste模式
set pastetoggle=<F10>
"窗口切換快捷鍵修改
map <c-j> <c-w>j
map <c-k> <c-w>k
map <c-l> <c-w>l
map <c-h> <c-w>hhtml
" 保證vim在reopen一個文件的時候定位到同一行
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endifjava
" 自動檢測文件的類型並加載相應的位置python
syntax on
filetype plugin indent on
autocmd FileType python setlocal et sta sw=4 sts=4
autocmd FileType java setlocal et sta sw=4 sts=4
autocmd FileType php setlocal et sta sw=4 sts=4
autocmd FileType c setlocal et sta sw=4 sts=4
autocmd FileType cpp setlocal et sta sw=4 sts=4
autocmd FileType html setlocal et sta sw=2 sts=2
autocmd FileType xml setlocal et sta sw=4 sts=4
autocmd FileType bash setlocal et sta sw=4 sts=4linux
" 代碼摺疊
autocmd FileType python setlocal foldmethod=indent
autocmd FileType java setlocal foldmethod=indent
autocmd FileType php setlocal foldmethod=indent
autocmd FileType c setlocal foldmethod=indent
autocmd FileType cpp setlocal foldmethod=indent
autocmd FileType html setlocal foldmethod=indent
autocmd FileType xml setlocal foldmethod=indent
autocmd FileType bash setlocal foldmethod=indent
"默認展開全部代碼
set foldlevel=99
"空格鍵做爲快捷鍵
nnoremap <space> zagit
"插件管理
call pathogen#infect()
imap jj <esc>
"導入gdb
map <F6> :call AddTitle()<cr>'s
function AddTitle()
let lnum = line(".")
let indt = indent(lnum)
let space = ""
for i in range(indt)
let space .= " "
endfor
call append(lnum, space . "import pdb; pdb.set_trace()")
endf
"高亮空白符
highlight ExtraWhitespace ctermbg=red guibg=red
autocmd BufWinEnter * match ExtraWhitespace /\s\+$\| \+\ze\t\+\|\t\+\zs \+/
"垂直線
map <F9> :call SetColorColumn()<CR>
function! SetColorColumn()
let col_num = 80
let cc_list = split(&cc,',')
if count (cc_list,string(col_num)) <= 0
execute "set cc +=".col_num
else
execute "set cc -=".col_num
endif
endfunction
"NERDTree
"map <silent> <C-t> :NERDTreeToggle<CR>
nmap <F3> :NERDTreeToggle<CR>
let NERDTreeIgnore = ['\.pyc$', '\.egg-info', '\.egg$', '\.pyo']
let NERDTreeWinSize=20vim
"Tagbar
nmap <F5> :TagbarToggle<CR>
let tagbar_width = 30bash
set tags=tags;/markdown
" ====== 代碼檢查 ======
"
" 禁止PyFlakes使用QuickFix,這樣在按下<F7>時會調用flake8,而有對於代碼編輯時的錯誤仍能獲得有效的提示
let g:pyflakes_use_quickfix = 0
"若有須要,可設置忽略部分錯誤
" let g:flake8_ignore="W801,W802,H405,H904"
let g:flake8_ignore="W801,W802"
" Python文件使用Flake8,當:w保存時,會自動進行檢查
" autocmd BufWritePost *.py call Flake8()
" For html and javascript
let g:SimpleJsIndenter_BriefMode = 1
let g:html_indent_script1 = "inc"
let g:html_indent_style1 = "inc"
let g:html_indent_inctags = "html,body,head,tbody"
" 回車即選中當前項
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
" 上下左右鍵的行爲
inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>"
inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>"
inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"
" ===== plantuml =====
let g:plantuml_executable_script='java -jar ~/.vim/bundle/plantuml-syntax/plantuml.'
" ====== CommandT =====
" 快捷鍵F打開CommandTmap
map F :CommandT<CR>
let g:CommandTMaxHeight=20
let g:CommandTWildIgnore=&wildignore . ",**/*.egg-info/**,*.pyc,*.pyo,**/*.egg*/**"
"set wildignore+=*.o,*.obj,.git,*.pyc,*pyo,**/*.egg-info/**,**/*.egg*/**
let g:CommandTCancelMap='<Esc>'
" ======vim-markdown===== let g:vim_markdown_folding_disabled=1