set
sw
=
4
set
ts
=
4
set
et
set
smarttab
set
smartindent
set
lbr
set
fo
+=mB
set
sm
set
selection
=inclusive
set
wildmenu
set
mousemodel
=
popup
au
FileType php
setlocal
dict
+=~
/.vim/
dict/php_funclist.
dict
au
FileType css
setlocal
dict
+=~
/.vim/
dict/css.
dict
au
FileType
c
setlocal
dict
+=~
/.vim/
dict/
c.
dict
au
FileType cpp
setlocal
dict
+=~
/.vim/
dict/cpp.
dict
au
FileType scale
setlocal
dict
+=~
/.vim/
dict/scale.
dict
au
FileType javascript
setlocal
dict
+=~
/.vim/
dict/javascript.
dict
au
FileType html
setlocal
dict
+=~
/.vim/
dict/javascript.
dict
au
FileType html
setlocal
dict
+=~
/.vim/
dict/css.
dict
"
"syntastic相关
execute pathogen#infect
()
let
g:syntastic_python_checkers
=[
'pylint']
let
g:syntastic_php_checkers
=[
'php'
,
'phpcs'
,
'phpmd']
"golang
"Processing... % (ctrl+c to stop)
let
g:fencview_autodetect
=
0
set
rtp
+=$GOROOT
/misc/
vim
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 显示相关
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
syntax
on
set
cul
"高亮光标所在行
set
cuc
set
shortmess
=atI
" 启动的时候不显示那个援助乌干达儿童的提示
set
go
=
" 不要图形按钮
"color desert " 设置背景主题
color ron
" 设置背景主题
"color torte " 设置背景主题
"set guifont=Courier_New:h10:cANSI " 设置字体
"autocmd InsertLeave * se nocul " 用浅色高亮当前行
autocmd
InsertEnter *
se
cul
" 用浅色高亮当前行
set
ruler
" 显示标尺
set
showcmd
" 输入的命令显示出来,看的清楚些
"set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议)
set
scrolloff
=
3
" 光标移动到buffer的顶部和底部时保持3行距离
set
statusline
=%F%
m%
r%
h%
w\ [FORMAT
=%{&
ff}]\ [TYPE
=%Y]\ [POS
=%
l
,%
v][%
p%%]\ %{strftime
(\
"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容
set
laststatus
=
2
" 启动显示状态行(1),总是显示状态行(2)
"set foldenable " 允许折叠
""set foldmethod=manual " 手动折叠
set
nocompatible
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
" 显示中文帮助
if
version
>=
603
set
helplang
=
cn
set
encoding
=utf
-8
endif
" 自动缩进
set
autoindent
set
cindent
" Tab键的宽度
set
tabstop
=
4
" 统一缩进为4
set
softtabstop
=
4
set
shiftwidth
=
4
" 不要用空格代替制表符
set
expandtab
" 在行和段开始处使用制表符
set
smarttab
" 显示行号
set
number
" 历史记录数
set
history
=
1000
"搜索逐字符高亮
set
hlsearch
set
incsearch
"语言设置
set
langmenu
=zh_CN.UTF
-8
set
helplang
=
cn
" 总是显示状态行
set
cmdheight
=
2
" 侦测文件类型
filetype
on
" 载入文件类型插件
filetype plugin
on
" 为特定文件类型载入相关缩进文件
filetype indent
on
" 保存全局变量
set
viminfo
+=!
" 带有如下符号的单词不要被换行分割
set
iskeyword
+=_
,$
,@
,%
,#
,-
" 字符间插入的像素行数目
"markdown配置
au
BufRead
,
BufNewFile *.{md
,mdown
,mkd
,mkdn
,markdown
,mdwn}
set
filetype
=mkd
au
BufRead
,
BufNewFile *.{
go}
set
filetype
=
go
au
BufRead
,
BufNewFile *.{
js}
set
filetype
=javascript
"rkdown to HTML
nmap md :
!~
/.vim/markdown.pl %
> %.html
<CR
><CR
>
nmap
fi :
!firefox %.html &
<CR
><CR
>
nmap \ \
cc
vmap \ \
cc
"将tab替换为空格
nmap tt :%
s
/\t/ /
g
<CR
>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新文件标题
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自动插入文件头
autocmd
BufNewFile *.cpp
,*.[
ch]
,*.
sh
,*.java
,*.
py exec
":call SetTitle()"
""定义函数SetTitle,自动插入文件头
func SetTitle
()
"如果文件类型为.sh文件
if &
filetype
==
'sh'
call setline
(
1
,
"\#!/bin/bash"
)
call append
(line
(
"."
),
""
)
elseif &
filetype
==
'python'
call setline
(
1
,
"#!/usr/bin/env python"
)
call append
(line
(
"."
),
"# coding=utf-8"
)
call append
(line
(
"."
)+
1
,
""
)
" elseif &filetype == 'mkd'
" call setline(1,"<head><meta charset=\"UTF-8\"></head>")
else
call setline
(
1
,
"/*************************************************************************"
)
call append
(line
(
"."
),
" > File Name: ".expand
(
"%"
))
call append
(line
(
"."
)+
1
,
" > Author: "
)
call append
(line
(
"."
)+
2
,
" > Mail: "
)
call append
(line
(
"."
)+
3
,
" > Created Time: ".strftime
(
"%c"
))
call append
(line
(
"."
)+
4
,
" ************************************************************************/"
)
call append
(line
(
"."
)+
5
,
""
)
endif
if &
filetype
==
'cpp'
call append
(line
(
"."
)+
6
,
"#include<iostream>"
)
call append
(line
(
"."
)+
7
,
"using namespace std;"
)
call append
(line
(
"."
)+
8
,
""
)
endif
if &
filetype
==
'c'
call append
(line
(
"."
)+
6
,
"#include<stdio.h>"
)
call append
(line
(
"."
)+
7
,
""
)
endif
" if &filetype == 'java'
" call append(line(".")+6,"public class ".strpart(expand("%d"),0,strlen(expand("%"))-5))
" call append(line(".")+7,"")
" endif
"新建文件后,自动定位到文件末尾
endfunc
autocmd
BufNewFile * normal G
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"键盘命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:nmap
<
silent
>
<F9
>
<ESC
>:Tlist
<RETURN
>
map
!
<C
-Z
>
<Esc
>zzi
map
!
<C
-O
>
<C
-Y
>,
map
<C
-A
> ggVG$"
+
y
map
<F12
> gg
=G
map
<C
-
w
>
<C
-
w
>
w
imap
<C
-
k
>
<C
-
y
>,
imap
<C
-
j
>
<ESC
>
" 选中状态下 Ctrl+c 复制
"map <C-v> "*pa
imap
<C
-
v
>
<Esc
>"*
pa
imap
<C
-
a
>
<Esc
>^
imap
<C
-
e
>
<Esc
>$
vmap
<C
-
c
>
"+y
set
mouse
=
v
"set clipboard=unnamed
"去空行
nnoremap
<F2
> :
g
/^\s*$/
d
<CR
>
"比较文件
nnoremap
<C
-F2
> :
vert
diffsplit
"nnoremap <Leader>fu :CtrlPFunky<Cr>
"nnoremap <C-n> :CtrlPFunky<Cr>
"列出当前目录文件
map
<F3
> :NERDTreeToggle
<CR
>
imap
<F3
>
<ESC
> :NERDTreeToggle
<CR
>
"打开树状文件目录
map
<C
-F3
> \be
:
autocmd
BufRead
,
BufNewFile *.dot map
<F5
> :
w
<CR
>:
!dot
-Tjpg
-
o %
<.jpg % && eog %
<.jpg
<CR
><CR
> && exec
"redr!"
"C,C++ 按F5编译运行
map
<F5
> :
call CompileRunGcc
()<CR
>
func
! CompileRunGcc
()
exec
"w"
if &
filetype
==
'c'
exec
"!g++ % -o %<"
exec
"!time ./%<"
elseif &
filetype
==
'cpp'
exec
"!g++ % -o %<"
exec
"!time ./%<"
elseif &
filetype
==
'java'
exec
"!javac %"
exec
"!time java %<"
elseif &
filetype
==
'sh'
:
!time bash %
elseif &
filetype
==
'python'
exec
"!time python2.7 %"
elseif &
filetype
==
'html'
exec
"!firefox % &"
elseif &
filetype
==
'go'
" exec "!go build %<"
exec
"!time go run %"
elseif &
filetype
==
'mkd'
exec
"!~/.vim/markdown.pl % > %.html &"
exec
"!firefox %.html &"
endif
endfunc
"C,C++的调试
map
<F8
> :
call Rungdb
()<CR
>
func
! Rungdb
()
exec
"w"
exec
"!g++ % -g -o %<"
exec
"!gdb ./%<"
endfunc
"代码格式优化化
map
<F6
> :
call FormartSrc
()<CR
><CR
>
"定义FormartSrc()
func FormartSrc
()
exec
"w"
if &
filetype
==
'c'
exec
"!astyle --style=ansi -a --suffix=none %"
elseif &
filetype
==
'cpp'
|| &
filetype
==
'hpp'
exec
"r !astyle --style=ansi --one-line=keep-statements -a --suffix=none %> /dev/null 2>&1"
elseif &
filetype
==
'perl'
exec
"!astyle --style=gnu --suffix=none %"
elseif &
filetype
==
'py'
||&
filetype
==
'python'
exec
"r !autopep8 -i --aggressive %"
elseif &
filetype
==
'java'
exec
"!astyle --style=java --suffix=none %"
elseif &
filetype
==
'jsp'
exec
"!astyle --style=gnu --suffix=none %"
elseif &
filetype
==
'xml'
exec
"!astyle --style=gnu --suffix=none %"
else
exec
"normal gg=G"
return
endif
exec
"e! %"
endfunc
"结束定义FormartSrc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""实用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has
(
"autocmd"
)
autocmd
BufReadPost *
\
if line
(
"'\""
)
>
0 && line
(
"'\""
)
<= line
(
"$"
)
|
\ exe
"normal g`\""
|
\
endif
endif
"当打开vim且没有文件时自动打开NERDTree
autocmd vimenter *
if
!argc
()
| NERDTree
|
endif
" 只剩 NERDTree时自动关闭
autocmd bufenter *
if
(winnr
(
"$"
)
==
1 && exists
(
"b:NERDTreeType"
) &&
b:NERDTreeType
==
"primary"
)
|
q
|
endif
" 设置当文件被改动时自动载入
set
autoread
" quickfix模式
autocmd
FileType
c
,cpp map
<buffer
>
<leader
><space
> :
w
<
cr
>:
make
<
cr
>
"代码补全
set
completeopt
=preview
,menu
"允许插件
"filetype plugin on
"共享剪贴板
"set clipboard+=unnamed
"自动保存
set
autowrite
"set ruler " 打开状态栏标尺
"set cursorline " 突出显示当前行
set
magic
" 设置魔术
set
guioptions
-=T
" 隐藏工具栏
set
guioptions
-=
m
" 隐藏菜单栏
""set foldcolumn=0
""set foldmethod=indent
""set foldlevel=3
" 不要使用vi的键盘模式,而是vim自己的
set
nocompatible
" 去掉输入错误的提示声音
set
noeb
" 在处理未保存或只读文件的时候,弹出确认
set
confirm
"禁止生成临时文件
set
nobackup
set
noswapfile
"搜索忽略大小写
set
ignorecase
set
linespace
=
0
" 增强模式中的命令行自动完成操作
set
wildmenu
" 使回格键(backspace)正常处理indent, eol, start等
set
backspace
=
2
" 允许backspace和光标键跨越行边界
set
whichwrap
+=<,>,
h
,
l
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set
mouse
=
a
set
selection
=exclusive
set
selectmode
=
mouse
,
key
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set
report
=
0
" 在被分割的窗口间显示空白,便于阅读
set
fillchars
=
vert:\
,
stl:\
,stlnc:\
" 高亮显示匹配的括号
set
showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set
matchtime
=
1
" 光标移动到buffer的顶部和底部时保持3行距离
set
scrolloff
=
3
" 为C程序提供自动缩进
"自动补全
"":inoremap ( ()<ESC>i
"":inoremap ) <c-r>=ClosePair(')')<CR>
":inoremap { {<CR>}<ESC>O
":inoremap } <c-r>=ClosePair('}')<CR>
"":inoremap [ []<ESC>i
"":inoremap ] <c-r>=ClosePair(']')<CR>
"":inoremap " ""<ESC>i
"":inoremap ' ''<ESC>i
""function! ClosePair(char)
"" if getline('.')[col('.') - 1] == a:char
"" return "\<Right>"
"" else
"" return a:char
"" endif
""endfunction
filetype plugin indent
on
"打开文件类型检测, 加了这句才可以用智能补全
set
completeopt
=longest
,menu
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let Tlist_Sort_Type
=
"name"
" 按照名称排序
let Tlist_Use_Right_Window
=
1
" 在右侧显示窗口
let Tlist_Compart_Format
=
1
" 压缩方式
let Tlist_Exist_OnlyWindow
=
1
" 如果只有一个buffer,kill窗口也kill掉buffer
""let Tlist_File_Fold_Auto_Close = 0 " 不要关闭其他文件的tags
""let Tlist_Enable_Fold_Column = 0 " 不要显示折叠树
"let Tlist_Show_One_File=1 "不同时显示多个文件的tag,只显示当前文件的
"设置tags
"set tags=tags
"set autochdir
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"其他东东
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"默认打开Taglist
let Tlist_Auto_Open
=
0
""""""""""""""""""""""""""""""
" Tag list (ctags)
""""""""""""""""""""""""""""""""
let Tlist_Ctags_Cmd
=
'/usr/local/bin/ctags'
let Tlist_Show_One_File
=
1
"不同时显示多个文件的tag,只显示当前文件的
let Tlist_File_Fold_Auto_Close
=
1
let Tlist_Exit_OnlyWindow
=
1
"如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window
=
1
"在右侧窗口中显示taglist窗口
" minibufexpl插件的一般设置
let
g:miniBufExplMapWindowNavVim
=
1
let
g:miniBufExplMapWindowNavArrows
=
1
let
g:miniBufExplMapCTabSwitchBufs
=
1
let
g:miniBufExplModSelTarget
=
1
nmap
tl :Tlist
<
cr
>
"输入法
:
let
g:vimim_map
=
'c-/'
":let g:vimim_cloud='sougou' " QQ云输入
:
let
g:vimim_punctuation
=
0
" 不用中文标点
:
set
pastetoggle
=<C
-H
>
:
let
g:vimim_cloud
=
-1
"python补全
let
g:pydiction_location
=
'~/.vim/after/complete-dict'
let
g:pydiction_menu_height
=
20
let Tlist_Ctags_Cmd
=
'/usr/local/bin/ctags'
let
g:miniBufExplMapWindowNavVim
=
1
let
g:miniBufExplMapWindowNavArrows
=
1
let
g:miniBufExplMapCTabSwitchBufs
=
1
let
g:miniBufExplModSelTarget
=
1
set
iskeyword
+=.
set
termencoding
=utf
-8
set
encoding
=utf8
set
fileencodings
=utf8
,ucs
-bom
,gbk
,cp936
,gb2312
,gb18030
autocmd
FileType python
set
omnifunc
=pythoncomplete#Complete
"set nocompatible " be iMproved
"filetype off " required!
set
rtp
+=~
/.vim/bundle
/vundle/
call vundle#rc
()
" let Vundle manage Vundle
" required!
Bundle
'gmarik/vundle'
" My Bundles here:
"
" original repos on github
Bundle
'tpope/vim-fugitive'
Bundle
'rstacruz/sparkup'
, {
'rtp':
'vim/'}
Bundle
'Yggdroot/indentLine'
let
g:indentLine_char
=
'┊'
"ndle 'tpope/vim-rails.git'
" vim-scripts repos
Bundle
'L9'
Bundle
'FuzzyFinder'
" non github repos
Bundle
'git://git.wincent.com/command-t.git'
Bundle
'Auto-Pairs'
Bundle
'python-imports.vim'
Bundle
'CaptureClipboard'
Bundle
'ctrlp-modified.vim'
Bundle
'last_edit_marker.vim'
Bundle
'synmark.vim'
"Bundle 'Python-mode-klen'
Bundle
'SQLComplete.vim'
Bundle
'Javascript-OmniCompletion-with-YUI-and-j'
"Bundle 'JavaScript-Indent'
"Bundle 'Better-Javascript-Indentation'
Bundle
'jslint.vim'
Bundle
"pangloss/vim-javascript"
Bundle
'Vim-Script-Updater'
Bundle
'ctrlp.vim'
Bundle
'tacahiroy/ctrlp-funky'
Bundle
'jsbeautify'
Bundle
'The-NERD-Commenter'
"django
Bundle
'django_templates.vim'
Bundle
'Django-Projects'
"Bundle 'FredKSchott/CoVim'
"Bundle 'djangojump'
" ...
let
g:html_indent_inctags
=
"html,body,head,tbody"
let
g:html_indent_script1
=
"inc"
let
g:html_indent_style1
=
"inc"
filetype plugin indent
on
" required!
"
" Brief help
" :BundleList - list configured bundles
" :BundleInstall(!) - install(update) bundles
" :BundleSearch(!) foo - search(or refresh cache first) for foo
" :BundleClean(!) - confirm(or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle command are not allowed..
"
"
"ctrlp设置
"
set
wildignore
+=*
/tmp/*
,*.
so
,*.swp
,*.zip
,*.pyc
,*.png
,*.jpg
,*.gif
" MacOSX/Linux
set
wildignore
+=*\\tmp\\*
,*.swp
,*.zip
,*.exe
,*.pyc
,*.png
,*.jpg
,*.gif
" Windows
let
g:ctrlp_custom_ignore
=
'\v[\/]\.(git|hg|svn)$'
let
g:ctrlp_custom_ignore
=
'\v\.(exe|so|dll)$'
let
g:ctrlp_extensions
= [
'funky']
let NERDTreeIgnore
=[
'\.pyc']
vim配置文件
最新推荐文章于 2022-07-12 19:06:46 发布