Linux VIM配置

刚开始用Vim不久,特别喜欢倒腾它,记录下自己的.vimrc文件。只是些简单的配置。如下:


bundle包管理器下载:

mkdir -p ~/.vim/bundle/vundle
git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

vim ~/.vimrc

复制下面内容到vimrc文件中。

set nocompatible 
filetype off 
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" My Bundles here: /* 插件配置格式 */
Bundle 'scrooloose/nerdtree'
Bundle 'majutsushi/tagbar'
Bundle 'Lokaltog/vim-powerline'
Bundle 'fholgado/minibufexpl.vim'
Plugin 'kien/ctrlp.vim'
Plugin 'scrooloose/nerdcommenter'
Bundle 'Valloric/YouCompleteMe'
"Bundle 'klen/python-mode'
" original repos on github 
"Bundle 'tpope/vim-fugitive'
"Bundle 'Lokaltog/vim-easymotion'
"Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
"Bundle 'tpope/vim-rails.git'

" vim-scripts repos (vim-scripts仓库里的,按下面格式填写)
"Bundle 'L9'
"Bundle 'FuzzyFinder'
" non github repos 
"Bundle 'git://git.wincent.com/command-t.git'

filetype plugin indent on " required! /** vimrc文件配置结束 **/
" /** vundle命令 **/
" 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..

filetype on


"=============NERDcommenter============
"使用:
"1、 \cc 注释当前行和选中行  
"2、 \cn 没有发现和\cc有区别  
"3、 \c<空格> 如果被选区域有部分被注释,则对被选区域执行取消注释操作,其它情况执行反转注释操作  
"4、 \cm 对被选区域用一对注释符进行注释,前面的注释对每一行都会添加注释  
"5、 \ci 执行反转注释操作,选中区域注释部分取消注释,非注释部分添加注释  
"6、 \cs 添加性感的注释,代码开头介绍部分通常使用该注释  
"7、 \cy 添加注释,并复制被添加注释的部分  
"8、 \c$ 注释当前光标到改行结尾的内容  
"9、 \cA 跳转到该行结尾添加注释,并进入编辑模式  
"10、\ca 转换注释的方式,比如: /**/和//  
"11、\cl \cb 左对齐和左右对其,左右对其主要针对/**/  
"12、\cu 取消注释  



"=============CtrlP============
"ctrl + j/k 进行上下选择
"ctrl + x 在当前窗口水平分屏打开文件
"ctrl + v 同上, 垂直分屏
"ctrl + t 在tab中打开
"<leader>-p模糊搜索当前目录及其子目录下的所有文件

let g:ctrlp_custom_ignore = {
    \ 'dir':  '\v[\/]\.(git|hg|svn|rvm)$',
    \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$',
    \ }
let g:ctrlp_working_path_mode=0
let g:ctrlp_match_window_bottom=1
let g:ctrlp_max_height=15
let g:ctrlp_match_window_reversed=0
let g:ctrlp_mruf_max=500
let g:ctrlp_follow_symlinks=1


"=============NERDTree============

map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>

let NERDChristmasTree=0
let NERDTreeWinSize=30
let NERDTreeChDirMode=2
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
let NERDTreeWinPos="left"
let NERDTreeShowBookmarks=1

"--- Automatically open a NERDTree if no files where specified
"autocmd vimenter * if !argc() | NERDTree | endif

"turn off vim when only nerdtree window last.
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

let g:NERDTreeMapOpenSplit = 's'  
let g:NERDTreeMapOpenVSplit = 'v'

"o 打开关闭文件或者目录
"t 在标签页中打开
"T 在后台标签页中打开
"! 执行此文件
"p 到上层目录
"P 到根目录
"K 到第一个节点
"J 到最后一个节点
"u 打开上层目录
"m 显示文件系统菜单(添加、删除、移动操作)
"? 帮助
"q 关闭


"=============Tagbar============

nnoremap <silent> <F9> :TagbarToggle<CR>
let g:tagbar_width=30
let g:tagbar_autofocus=1
let g:tagbar_sort = 0
let g:tagbar_autoshowtag = 1


"=============CTags============

"set tags=tags


"==============minibufexpl===========

"<Tab>  切换buffer
"左右方向键  切换buffer
"bn   切到后一个
"bp   切到前一个
"bd   关闭当前buffer

"--- 按下Ctrl+h/j/k/l,可以切换到当前窗口的上下左右窗口  
 let g:miniBufExplMapWindowNavVim = 1

 let g:miniBufExplMapWindowNavArrows = 1
 let g:miniBufExplMapCTabSwitchBufs = 1
 let g:miniBufExplModSelTarget = 1

"--- 不要在不可编辑内容的窗口(如TagList窗口)中打开选中的buffer
let g:miniBufExplModSelTarget = 1 

"用法:
"<Tab>  移到上一个buffer
"<Shift-Tab> 移到下一个buffer
"<Enter>  打开光标所在的buffer

"=============YouCompleteMe============
let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"

"--- 不显示每次加载配置文件的提示
let g:ycm_confirm_extra_conf = 0

let g:ycm_auto_trigger = 1
let g:ycm_error_symbol = '>>'
let g:ycm_warning_symbol = '>*'
let g:ycm_autoclose_preview_window_after_completion = 1 
let g:ycm_autoclose_preview_window_after_insertion = 1

""--- 跳转到声明
nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR>
"--- 跳转到定义
nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>
""--- 跳转到两者的合体
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
"--- 命令 :YcmDiags 可以打开location-list查看警告和错误信息
nnoremap <F4> :YcmDiags<CR>
inoremap <c-o> <c-x><c-o>
""--- 在注释输入中也能补全
let g:ycm_complete_in_comments = 1
"--- 在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
""--- 注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0
"--- 让Vim的补全菜单行为与一般IDE一致
set completeopt=longest,menu
""--- 离开插入模式后自动关闭预览窗口
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
"回车即选中当前项"
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
""--- 从第2个键入字符就开始罗列匹配项
let g:ycm_min_num_of_chars_for_completion=1
"--- 禁止缓存匹配项,每次都重新生成匹配项
" let g:ycm_cache_omnifunc=0
"--- 语法关键字补全
let g:ycm_seed_identifiers_with_syntax=1
""--- 设置在下面几种格式的文件上屏蔽ycm
let g:ycm_filetype_blacklist = {
            \ 'tagbar' : 1,
            \ 'nerdtree' : 1,
            \}


"=============Vim UI============
set encoding=utf-8
set nu
"set number
set showcmd
"set cursorline
"set cursorcolumn

set autoindent
set cindent

set tabstop=4
set softtabstop=4
set shiftwidth=4

set ignorecase
set hlsearch
set incsearch

set laststatus=2
set cmdheight=2

set scrolloff=3

syntax enable
syntax on
set t_Co=256

colorscheme molokai
let g:molokai_original=1
"set background=dark

nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

"Quickly Run
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 "!time go run %"
    elseif &filetype == 'mkd'
        exec "!~/.vim/markdown.pl % > %.html &"
        exec "!firefox %.html &"
    endif
endfunc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值