Skip to content

我的vim配置 #22

@sunyongjian

Description

@sunyongjian

背景

存一下自己的vim配置...

vi跟vim

vim = Vi IMproved

现在很多发行版直接把vi做成vim的软连接了,如果你直接执行vi欢迎界面上显示了VIM - Vi IMproved字样,就说明你实际上用的就是vim.

vi本来只能运行于unix中,而vim可以运行于unix,windows ,mac等多操作平台。
另外vim在多级撤销,语法高亮等方面做了增强。

安装

  • linux

    一般都是用apt-get安装
    ubuntu 下

    sudo apt-get install vim-gtk
    
  • mac

    Mac os自带vim,我升级是使用homebrew安装的,

    brew install vim --with-lua --with-override-system-vi
    
    

    这样安装是放到

    /usr/local/bin/vim
    

    目录下的,也就是用户自己编译的放在/usr/local/xxx. 关于linux的文件系统区别

终端配置

  • 因为我用的是oh-my-zsh,并不是mac自带的bash,很多配置文件都要单独source。zsh的配置都在 ~/.zshrc里。
    比如我执行vi的时候,都是执行我安装的最新vim,可以使用alias(别名设置),就可以在.zshrc 加 alias vi=vim.当然也可以单独建一个.alias文件,在.zshrc里面 source .alias。 注意都在~目录下。

  • 由于个人比较喜欢直接git commit写commit文本,所以我的git配置里面 editor=vim.
    特定的仓库在someproject/.git/config 文件,加入

    [core]
       editor = vim
    

    用户git全局的配置在~/.gitconfig

我的vim配置

插件管理是用的比较老的 vundle...
常用的工作目录,自动补全,语法检测,文件搜索... 都是有的
选用哪些插件可以边试边选择, 关于如何配置,网上的教程很多...
随便搜了一个

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

" 集中管理vim插件
execute pathogen#infect()

" 文件目录插件
Bundle "scrooloose/nerdtree"
nmap <F5> :NERDTreeToggle<cr>
let NERDTreeWinSize=30

" 状态栏插件
Bundle "Lokaltog/vim-powerline"
set laststatus=2
let g:Powerline_symbols='unicode'

Bundle 'neomake/neomake'

function! NeomakeEslintChecker()
    let l:eslint = 'eslint'
    let l:git_root = split(system('git rev-parse --show-toplevel'))[0]
    if executable(l:git_root . '/node_modules/.bin/eslint')
      let l:eslint = l:git_root . '/node_modules/.bin/eslint'
    endif
    let b:neomake_javascript_eslint_exe = l:eslint
endfunction

let g:neomake_javascript_enabled_makers=['eslint']
let g:syntastic_check_on_open=1

autocmd FileType javascript :call NeomakeEslintChecker()
" 模糊搜索插件
Bundle 'kien/ctrlp.vim'

Bundle 'croaky/vim-colors-github'

" 搜索高亮度反白
set hlsearch

" 启用语法折叠
set foldmethod=syntax

" tab自动缩进
set tabstop=2

"autoindent
set ai!

" 显示行号
set nu

" 设置默认进行大小写不敏感查找
set ignorecase

" 如果有一个大写字母,则切换到大小写敏感查找
set smartcase 

" 修复delete不能删除的情况
set backspace=2
colorscheme solarized

"自动补全
Bundle 'Valloric/YouCompleteMe'

" ternjs
Bundle 'marijnh/tern_for_vim'

" 设置错误符号
let g:syntastic_error_symbol='o'
" 设置警告符号
let g:syntastic_warning_symbol='⚠'
" 是否在打开文件时检查
" 是否在保存文件后检查
let g:syntastic_check_on_wq=1


syntax enable "开启语法高亮功能
syntax on " 允许用指定语法高亮配色方案替换默认方案
set t_Co=256
let g:solarized_termtrans=1
set background=dark
let g:solarized_termcolors=256
set tags+=~/.vim/systags "路径跳转


"CtrlP 配置
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
" 设置过滤不进行查找的后缀名
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn|pyc)$'

autocmd BufNewFile,BufFilePre,BufRead *.jsx set filetype=javascript
autocmd! BufWritePost,BufEnter * Neomake

主题要配合shell的主题,一起才会好看一些。
关于我使用的配置推荐两个文章,别人已经写好的教程,我就不写了。有问题可以comment.

zsh+vim

zsh+vim+iterm

自我感觉还是比较秀色可餐的。。。

vim

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions