Skip to content

advancevillage/vim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

配置自己风格的VIM

目录结构

vim 
 |------autoload (插件管理器plug.vim)
 |		 	|------plug.vim
 |
 |------plugged  (插件目录)
 |
 |------after(此目录是插件vim-cpp-enhanced-highlight需要而创建的)
 |		  	|------syntax
 |			 			|------cpp.vim
 |						|------c.vim
 |
 |------conf (配置vim的脚本文件夹)
 |			|
 |			|------basic.vim	(vim基本配置)
 |			|
 |			|------keymap.vim	(vim按键映射)
 |			|
 |			|------pluginmanager.vim  (加载插件和插件的配置文件)
 |			|
 |			|------pluginconf (插件的配置目录)
 |
 |------doc	(参考资料)
 |			|------README.md
 |
 |------tags(标签文件目录)
 |			|------cpptags
 |			|
 |			|------opencvtags

VIM补充知识

(1)当vim启动时,vim会自动的加载配置文件vimrc,读取并执行该内容。注意加载路 径/etc/vimrc(所有用户共用), $HOME/.vimrc(当前用户), ~/.vim/vimrc(当前用户)

命令:   vim  --version

(2)vim变量:

g(全局变量,可以在当前脚本和其他外部脚本中引用), 
s(局部变量,仅在当前脚本中起效)

(3)可在vimrc脚本中加载其他vim脚本

格式: execute  ':so'  path/xxx.vim
eg:
let g:vim_home=expand('~/.vim')
execute ':so' g:vim_home."/conf/basic.vim"

应用的插件(插件链接在doc/README.md)

外观类:
(1)主题背景:  molokai
(2)目录树形结构:  nerdtree
(3)状态标签栏:  vim-airline
代码类设置
(4)自动补全:  auto-pairs
(5)代码折叠:  indentLine
(6)代码自动补全: YouCompleteMe
(7)关键字高亮显示: vim-cpp-enhanced-highlight
(8)语法错误: syntastic

加载过程

设置一个全局变量,VIM自动加载vimrc文件,所以从vimrc设置使它自动加载其他vim脚本 定义一个全局变量,使VIM从当前目录下.vim加载配置文件

let g:vim_home = expand('~/.vim')

设置加载的VIM脚本, . 表示字符串连接符, 先加载VIM基本配置脚本,basic.vim中定义 常规设置,例如显示行号, 编码设置,鼠标任意点击等

execute ':so' g:vim_home."/conf/basic.vim"

加载快键键重映射,根据自己的习惯定义

execute ':so' g:vim_home."/conf/keymap.vim"

加载插件

第一步先将插件地址写入g:vim_home."/conf/pluginmanager.vim"中注意这里使用的是plug.vim插件管理器

第二步编辑插件的配置文件并放在g:vim_home."/conf/pluginconf/xxx.vim"(xxx表示插件的名称);

第三步在pluginmanager.vim脚本中的g:plugins数组中添加xxx;第四步生效vimrc脚本

execute ':so' g:vim_home."/conf/pluginmanager.vim"

安装

(1)执行centos-vim-install.sh脚本,安装配置环境(只适合centos)

(2)随便用vim打开一个文件,在vim环境中执行命令:PlugInstall

(3)进入plugged/YouCompleteMe目录中

    git submodule update --init --recursive

(4)执行python脚本

    sudo apt-get install -y python-dev

    ./install.py --clang-completer

修改git-blame插件代码

#file: .vim/plugged/git-blame.vim/autoload/gitblame.vim
function! gitblame#echo()
    let l:blank = ' '
    let l:file = expand('%')
    let l:line = line('.')
    let l:gb = gitblame#commit_summary(l:file, l:line)
    if has_key(l:gb, 'error')
        let l:echoMsg = '['.l:gb['error'].']'
        let l:hcommit = ''
        let l:history = ''
    else
        let l:echoMsg = '['.l:gb['commit_hash'][0:8].'] '.l:gb['summary'] .l:blank .l:gb['author_mail'] .l:blank .l:gb['author'] .l:blank .'('.l:gb['author_time'].')'
        let l:hcommit = l:gb['commit_hash']
        let l:history = split(s:system('cd "$(dirname "'.l:file.'")"; git show "'.l:hcommit.'" "$(basename "'.l:file.'")"'), "\n")

        echo l:echoMsg
        echo l:file
        echo l:hcommit

        for line in l:history
            echo line
        endfor

    endif
    if (g:GBlameVirtualTextEnable)
       let l:ns = nvim_create_namespace('gitBlame'.b:GBlameVirtualTextCounter)
       let b:GBlameVirtualTextCounter = (b:GBlameVirtualTextCounter + 1)%50
       let l:line = line('.')
       let l:buffer = bufnr('')
       call nvim_buf_set_virtual_text(l:buffer, l:ns, l:line-1, [[g:GBlameVirtualTextPrefix.l:echoMsg, 'GBlameMSG']], {})
       call timer_start(g:GBlameVirtualTextDelay, { tid -> nvim_buf_clear_namespace(l:buffer, l:ns, 0, -1)})
    endif

endfunction

LICIENCE

CUG@2016 SUN-HE

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published