我的 vim 配置

东拼西凑,终于搞了个勉强能用的,没有太多高级功能,只是给初学者提供便利 

用法:在/home下创建 .vimrc 文件,直接复制进去就好,然后重启vim。

set nocompatible
filetype off
 
 
"""tagbar相关配置(ctags可执行文件不能是mac只带的ctags,mac用户需要brew install
"""ctags 并且软连接 ctags
"""为当前环境变量的ctags,然后利用ctags生成tags文件给vim函数分屏读取
"""
"let g:tagbar_ctags_bin='/usr/local/Cellar/ctags/5.8_1/bin/ctags'
let g:tagbar_right=1
set tags=tags;
set autochdir
"ctrl+m开启文件tagbar(就是函数提示分屏)
map <C-m> :TagbarToggle<CR>
"""

"文件目录树分屏ctrl+n
map <C-n> :NERDTreeToggle<CR>

"显示行号
set nu
"高亮搜索
set hlsearch
set ruler
set showmode
syntax on
"使用空格代替缩进.tab默认2个(前端),后端默认4个是吧
set tabstop=4
set shiftwidth=4
set expandtab
autocmd FileType make set noexpandtab

"文件编码模式指定utf
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

"""ctrlp 文件检索配置ctrl + p
nmap <F12> <ESC>:.cc<CR><C-W>p
set runtimepath^=~/.vim/bundle/ctrlp.vim
let g:ctrlp_cache_dir = $HOME.'/.cache/ctrlp'
let g:ctrlp_open_multiple_files = 'ij'
let g:ctrlp_extensions = ['tag', 'buffertag', 'quickfix', 'dir', 'rtscript', 'undo', 'line', 'changes', 'mixed', 'bookmarkdir']
let g:ctrlp_working_path_mode = 'ra'
set wildignore+=*/tmp/*,*/node_modules/*,*.so,*.swp,*.zip
let g:ctrlp_custom_ignore = {'dir':  '\v[\/]\.(git|hg|svn)$', 'file': '\v\.(exe|so|dll)$'}
let g:SuperTabDefaultCompletionType = 'context'
"""
 
syntax enable

"主题色配置
set nocompatible
"设置不产生swp文件
set nobackup
set autochdir
"字体配置
set guifont=Consolas:h17
set laststatus=2
set backspace=2
"一些vim内置高亮覆盖,参考highlight
"highlight LineNr cterm=bold ctermfg=242 
"hi Search cterm=NONE ctermfg=blue ctermbg=black cterm=reverse
"highlight Directory ctermfg=blue
set cursorline
 

     


"""底层命令行美化,好像可以不装字体
"先安装字体 git clone https://github.com/powerline/fonts.git --depth=1 
"./install.sh

"""powerline配置
let g:Powerline_symbols = 'fancy'
set t_Co=256
set fillchars+=stl:\ ,stlnc:\
set term=xterm-256color

""" you complate me 配置 
""" 安装
"  --> 装好后去bundle里面编译,最好看文档
"  --> https://github.com/Valloric/YouCompleteMe#mac-os-x
"  --> install
"  --> cd ~/.vim/bundle/YouCompleteMe
"  --> ./install.py --clang-completer
" 2个字符之后自动补全
let g:ycm_min_num_of_chars_for_completion = 2
let g:ycm_min_num_identifier_candidate_chars = 4
let g:ycm_enable_diagnostic_highlighting = 0
" ycm预览窗口不显示
set completeopt-=preview
" 补全之后自动关闭预览窗口
let g:ycm_autoclose_preview_window_after_insertion = 1
let g:ycm_add_preview_to_completeopt = 0
" 设置默认预览窗口在下面
set splitbelow
" 语法关键字补全
let g:ycm_seed_identifiers_with_syntax = 1
" 在注释输入中也能补全
let g:ycm_complete_in_comments = 1
" 在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
" 传说中的vim8 + ycm异步补全, 2个字符后开始补全
if !exists('g:ycm_semantic_triggers')
    let g:ycm_semantic_triggers = {}
endif
let g:ycm_semantic_triggers.python = ['re!(?=[a-zA-Z_]{2})']

" F1 手动开启函数文档
noremap <F1> :YcmCompleter GetDoc<CR>
"""

"自动缩进,当你第一行敲 tab + 文字 回车后 下一行自动给你加个 tab 
set autoindent


"支持光标快速移动,就是支持鼠标滚轮啦,如果用的item2,如果你滚轮,它会提示你要不要开启滚轮上拉,如果开启就不需要开启这个配置,开启这个模式复制的话要按住option键
"set mouse=a

"代码缩进块显示 + 奇偶行缩进颜色配置 + 缩进块宽度
let g:indent_guides_enable_on_vim_startup = 1
let g:indent_guides_guide_size = 1
let g:indent_guides_auto_colors = 0
autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd  ctermbg=237
autocmd VimEnter,Colorscheme * :hi IndentGuidesEven ctermbg=236
let g:indent_guides_exclude_filetypes = ['help', 'nerdtree']
let g:indent_guides_color_change_percent = 1

"彩虹括号
let g:rbpt_colorpairs = [
    \ ['brown',       'RoyalBlue3'],
    \ ['Darkblue',    'SeaGreen3'],
    \ ['darkgray',    'DarkOrchid3'],
    \ ['darkgreen',   'firebrick3'],
    \ ['darkcyan',    'RoyalBlue3'],
    \ ['darkred',     'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['brown',       'firebrick3'],
    \ ['gray',        'RoyalBlue3'],
    \ ['black',       'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['Darkblue',    'firebrick3'],
    \ ['darkgreen',   'RoyalBlue3'],
    \ ['darkcyan',    'SeaGreen3'],
    \ ['darkred',     'DarkOrchid3'],
    \ ['red',         'firebrick3'],
    \ ]
let g:rbpt_max = 16
let g:rbpt_loadcmd_toggle = 0




" 高亮,仿git diff
highlight GitGutterAdd    guifg=#009900 ctermfg=2 ctermbg=39
highlight GitGutterChange guifg=#bbbb00 ctermfg=3 ctermbg=204
highlight GitGutterDelete guifg=#ff2222 ctermfg=1 ctermbg=59


" vim tmux 居中展示风格
let g:tmuxline_preset = 'full'
" 检查tmux环境变量,如果有,就改变vim的底部powerline样式 
if $TMUX != ""
    autocmd VimEnter * Tmuxline powerline
endif




autocmd BufNewFile *.c exec ":call AddTitleForShell()"
function AddTitleForShell()
call append(0,"#include <stdio.h>")
call append(1,"#include <stdlib.h>")
call append(2,"#include <string.h>")
call append(3,"#include <pthread.h>")
call append(4,"#include <unistd.h>")
call append(5,"#include <sys/stat.h>")
call append(6,"#include <sys/wait.h>")
call append(7,"#include <errno.h>")
call append(8,"#include <sys/socket.h>")
call append(9,"#include <arpa/inet.h>")
call append(10,"#include <ctype.h>")
call append(11,"                   ")
call append(12,"void sys_err(const char *str){")
call append(13,"    perror(str);")
call append(14,"    exit(1);")
call append(15,"}")
call append(16,"                   ")
call append(17,"int main(int argc, char *argv[]){")
call append(18,"     ")
call append(19,"    return 0;")
call append(20,"}")
endfunction

set tabstop=4
set shiftwidth=4
set expandtab

inoremap <CR> <c-r>=BracketIndent()<CR>

inoremap { {}<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap < <><ESC>i
inoremap ' ''<ESC>i
inoremap " ""<ESC>i

" 在大括号内换行时进行缩进
func! BracketIndent()
	let l:line = getline(".")
	let l:current_char = l:line[col(".")-1] 
	let l:previous_char = l:line[col(".")-2] 
	
	if l:previous_char == "{" && l:current_char == "}"
		return "\<cr>\<esc>\ko\<tab>"
	else
		return "\<cr>"
	end
endfunc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值