let NERDTreeWinPos='left'
let NERDTreeWinSize=30
map <F2> :NERDTreeToggle<CR>
"nmap <Leader>tb :TagbarToggle<CR> "快捷键设置
let g:tagbar_ctags_bin='ctags' "ctags程序的路径
let g:tagbar_width=30 "窗口宽度的设置
map <F3> :Tagbar<CR>
"autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen() "如果是c语言的程序的话,tagbar自动开启
set nocompatible " 不兼容vi模式, 关掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set fileformats=unix " 设置文件格式
set history=500 " 历史记录数, 针对Mru插件显示最近100条打开的文件
set nobackup " 禁止生成临时文件
set confirm " 在处理未保护或只读文件的时候,弹出确认
set nowritebackup " 不写入备份文件"
set pumheight=30 " 智能提示框层的高度
"set laststatus=2 " 启动显示状态行(1),总是显示状态行(2)
set autoread " 当文件内容被其他编辑器改变时自动加载
set noswapfile " 不要生成swap文件, 简写 set nowb
set wildignore=.svn,.git,*.swp,*.bak,*~,*.o,*.a,*.pyc " 用于目录插件NERD_tree上,打开目录忽略这些文件
set backspace=eol,start,indent " 插入模式下允许回格键删除字符, win下有用
set list "开启tab space显示
set listchars=tab:»\ ,extends:›,precedes:‹,nbsp:·,trail:· "tab 和 space 显示
set tabstop=4 " Tab键的宽度, 4个空格
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 统一缩进为4, 用4个空格代替1个tab
let Tlist_Sort_Type = "name"
let Tlist_Use_Right_Window = 1
let Tlist_Compart_Format = 1
let Tlist_Exist_OnlyWindow = 1
let Tlist_File_Fold_Auto_Close = 0
let Tlist_Enable_Fold_Column = 0
set selection=exclusive
set selectmode=mouse,key
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul
" 显示 {{{
"set modeline
"set t_ti= t_te= " 设置 退出vim后,内容显示在终端屏幕, 可以用于查看和复制, 不需要可以去掉
set shortmess=atI " 启动的时候不显示那个援助索马里儿童的提示
set showcmd " 输入的命令显示出来,看的清楚些 ,win有用
"set ruler " 显示标尺
set number " 显示行号
set numberwidth=3 " 行号宽度
set showmode " 左下角显示当前vim模式
"set mouse-=a " 充许使用鼠标, 值对win有用
set mousehide " 隐藏鼠标,当是文本的处于编辑的时候, win有用
set nowrap " 取消换行
"set wrap " wrap(弯曲),允许backspace和光标键跨越行边界(不建议), 自动换行, 可以按backspace可以自动到头了可以换行
set scrolloff=7 " 在上下移动光标时,光标的上方或下方至少会保留显示的行数
set hidden " 切换文件不保存,隐藏 牛逼没搞清楚, enable multiple modified buffers
set magic " 选择括号自动匹对闭合的括号
"set showtabline=2 " 显示tab显示框,默认也是开的
setlocal cursorline " 高亮当前行
"setlocal cursorcolumn " 高亮当前列
" }}}
" 代码折叠 {{{
set nofoldenable
" 折叠方法
" manual 手工折叠
" indent 使用缩进表示折叠
" expr 使用表达式定义折叠
" syntax 使用语法定义折叠
" diff 对没有更改的文本进行折叠
" marker 使用标记进行折叠, 默认标记是 {{{ 和 }}}
set foldmethod=indent
set foldcolumn=0
set foldlevel=0
" 代码折叠自定义快捷键 <leader>zz
let g:FoldMethod = 1
map <leader>zz :call ToggleFold()<cr>
fun! ToggleFold()
if g:FoldMethod == 0
exe "normal! zM"
let g:FoldMethod = 1
else
exe "normal! zR"
let g:FoldMethod = 0
endif
endfun
" }}}
" 分屏窗口移动, Smart way to move between windows
nmap <C-H> <C-W>h
nmap <C-J> <C-W>j
nmap <C-K> <C-W>k
nmap <C-L> <C-W>l