博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vi配置
阅读量:5098 次
发布时间:2019-06-13

本文共 6934 字,大约阅读时间需要 23 分钟。

syntax enable

"set color theme
"colorscheme blackboard
set hidden " so if u want to go directly to a file, no tips show.
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle
" required!
" let Vundle manage Vundle, required
 Plugin 'VundleVim/Vundle.vim'
" tip on github use username/repo
" tip on vim-script use repo
" other use git://git.user.com/comand-t.git
 Plugin 'OmniCppComplete'
 Plugin 'winmanager'
 Plugin 'taglist.vim'
 Plugin 'SuperTab'
 Plugin 'scrooloose/nerdtree'
 Plugin 'vim-scripts/c.vim'
 Plugin 'grep.vim'
 Plugin 'chazy/cscope_maps'
 Plugin 'tpope/vim-surround'
 Plugin 'vim-scripts/a.vim'
 Plugin 'godlygeek/tabular'
 Plugin 'plasticboy/vim-markdown'
 Plugin 'neilagabriel/vim-geeknote'
 Plugin 'Emmet.vim'
 Plugin 'altercation/vim-colors-solarized'
" " The following are examples of different formats supported.
" " Keep Plugin commands between vundle#begin/end.
" " plugin on GitHub repo
 Plugin 'tpope/vim-fugitive'
" " plugin from http://vim-scripts.org/vim/scripts.html
 Plugin 'L9'
" " Git plugin not hosted on GitHub
 "Plugin 'git://git.wincent.com/command-t.git'
" " git repos on your local machine (i.e. when working on your own plugin)
" Plugin 'file:///home/gmarik/path/to/plugin'
" " The sparkup vim script is in a subdirectory of this repo called vim.
" " Pass the path to set the runtimepath properly.
 Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" " Avoid a name conflict with L9
" Plugin 'user/L9', {'name': 'newL9'}
"
" " All of your Plugins must be added before the following line
 call vundle#end()            " required
set background=light
let g:solarized_termcolors=256
colorscheme solarized
filetype plugin indent on
"auto completed
"RUBY
let g:rubycomplete_buffer_loading = 1
let g:rubycomplete_classes_in_global = 1
let g:rubycomplete_rails = 1
"RUBY plugin
autocmd FileType ruby compiler ruby
"autocmd vimenter * if !argc() | NERDTree | endif
"autocmd VimEnter * NER
" 设定文件浏览器目录为当前目录
set bsdir=buffer
" 设置编码
set enc=utf-8
" 设置文件编码
set fenc=utf-8
" 设置文件编码检测类型及支持格式
set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
"显示行号
set number
"忽略大小写查找
set ic
" tab宽度
set tabstop=2
set expandtab
retab
set cindent shiftwidth=2
set autoindent shiftwidth=2
set shiftround
" set 折叠
set foldmethod=indent
" 打开文件默认不折叠
set foldlevelstart=99
let g:vim_markdown_folding_disabled = 1
"set my leader
let mapleader=","
let g:mapleader=","
"tabs
map <leader>tn :tabnew<cr>
map <leader>te :tabedit
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
"打开vimrc 文件 edit vimrc
:nnoremap <leader>ev :vsplit $MYVIMRC<cr>
"source file, the file excute as VimScript
:nnoremap <leader>sv :source $MYVIMRC<cr>
" 映射NERDTree插件
":map <leader>n :NERDTree<CR>
"let loaded_nerd_tree = 1
let NERDTreeQuitOnOpen = 0
let NERDChristmasTree=1
let g:NERDTreeWinSize = 18
map <leader>f :NERDTreeToggle<CR>
"switch window
:map <leader>w <C-W>w
" 把 CTRL-S 映射为 保存,因为这个操作做得太习惯了
imap <C-S> <C-C>:w<CR>
"set zen coding
 let g:user_zen_settings = {
  \ 'php' : {
  \ 'extends' : 'html',
  \ 'filters' : 'c',
  \ },
  \ 'xml' : {
  \ 'extends' : 'html',
  \ },
  \ 'haml' : {
  \ 'extends' : 'html',
  \ },
  \ 'erb' : {
  \ 'extends' : 'html',
  \ },
  \}
"set CtrlP
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
let g:ctrlp_working_path_mode = 2
"use in edit
imap <C-A> <C-C><c-p>
"use in none edit
:map <leader>t <c-p>
:map <leader>b :CtrlPBuffer<CR>
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.jpg,*.png,*.gif,*.jpeg,.DS_Store " MacOSX/Linux
let g:ctrlp_custom_ignore = '\.git$\|\.hg$\|\.svn$'
" move lines up or down (command - D)
nmap <D-j> mz:m+<cr>`z
nmap <D-k> mz:m-2<cr>`z
vmap <D-j> :m'>+<cr>`<my`>mzgv`yo`z
vmap <D-k> :m'<-2<cr>`>my`<mzgv`yo`z
" Tab move lines left or right (c-Ctrl,s-Shift)
nmap <c-tab> v>
nmap <s-tab> v<
vmap <c-tab> >gv
vmap <s-tab> <gv
" tab navigation like zsh
:nmap <D-1> :tabprevious<CR>
:map <D-1> :tabprevious<CR>
imap <D-1> <Esc>:tabprevious<CR>i
:nmap <D-2> :tabnext<CR>
:map <D-2> :tabnext<CR>
imap <D-2> <Esc>:tabnext<CR>i
"scss,sass
au BufRead,BufNewFile *.scss set filetype=scss
au BufRead,BufNewFile *.sass set filetype=scss
"coffee script
au BufNewFile,BufReadPost *.coffee setl foldmethod=indent nofoldenable
au BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab
hi link coffeeSpaceError NONE
hi link coffeeSemicolonError NONE
hi link coffeeReservedError NONE
map <leader>cf :CoffeeCompile watch vert<cr>
"let skim use slim syntax
au BufRead,BufNewFile *.skim set filetype=slim
"ctags
set tags+=~/gitdb/rails/tags
"auto completed
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Enable omni completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags
" Enable heavy omni completion.
if !exists('g:neocomplcache_omni_patterns')
  let g:neocomplcache_omni_patterns = {}
endif
let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'
autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete
" code search
let g:ackprg = 'ag --nogroup --nocolor --column'
"set powerline
set laststatus=2
"set guifont=Powerline
"set font=Source\ Code\ Pro\:h15
set nocompatible
set t_Co=256
let g:Powerline_cache_enabled = 1
"minitest
set completefunc=syntaxcomplete#Complete
"process past
set pastetoggle=<F2>
nnoremap <F2> :set invpaste paste?<CR>
imap <F2> <C-O>:set invpaste paste?<CR>
set pastetoggle=<F2>
set mouse=a
""""""""""""""""""""""""""""""
" Tag list (ctags)
""""""""""""""""""""""""""""""
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
let Tlist_Show_One_File = 1            "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1          "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Show_Menu = 1
let Tlist_Auto_Open = 1
"let Tlist_Use_Right_Window = 1         "在右侧窗口中显示taglist窗口
"if(executable("cscope") && has("cscope") )
"   silent! execute "!find . -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.m" -o -name "*.mm" -o -name "*.java" -o -name "*.py" > cscope.files"
"endif
"silent! execute "!cscope -b"
"if filereadable("cscope.out")
" execute "cs a cscope.out"
"endif
"save the tag when write the file
function UpdateCtags()
  let curdir=getcwd()
  while !filereadable("./tags")
    cd ..
    if getcwd() == "/"
      break
    endif
  endwhile
  if filewritable("./tags")
    :!ctags -R
  endif
  execute ":cd " . curdir
endfunction
function UpdateCStags()
  let curdir=getcwd()
  while !filereadable("./cscope.out")
    cd ..
    if getcwd() == "/"
      break
    endif
  endwhile
  if filewritable("./cscope.out")
    :!cscope -Rbq
    execute ":cscope reset"
  endif
  execute ":cd " . curdir
endfunction
nnoremap <leader>ut :call UpdateCtags()<CR>
nnoremap <leader>us :call UpdateCStags()<CR>
nmap w= :resize +3<CR>
nmap w- :resize -3<CR>
nmap w, :vertical resize -3<CR>
nmap w. :vertical resize +3<CR>

转载于:https://www.cnblogs.com/csun/p/6135771.html

你可能感兴趣的文章
通过cmd查看环境变量名对应的环境变量值
查看>>
Python: 利用Python进行数据分析 学习记录
查看>>
python 零基础学习之路-06 常用模块
查看>>
[Lintcode]165. Merge Two Sorted Lists/[Leetcode]21. Merge Two Sorted Lists
查看>>
【ASP.NET 进阶】TreeView控件学习
查看>>
linux nfs配置
查看>>
【.Net Core】Assets file project.assets.json not found. Run a NuGet package restore
查看>>
mybatis框架
查看>>
编程语言
查看>>
自己的ORMapping
查看>>
读取NfcA格式数据
查看>>
java泛型 泛型的内部原理:类型擦除以及类型擦除带来的问题
查看>>
urllib.unquote()、urllib.urlencode()
查看>>
JSP的学习(7)——九大隐式对象之pageContext对象
查看>>
.NET对象序列化—TimeSpan
查看>>
sprint 1 总结
查看>>
JS实现禁止短时间内连续触发事件
查看>>
最大连续子序列和问题(Maximum Consecutive Subsequence Sum)
查看>>
redis 的过期策略都有哪些?内存淘汰机制都有哪些?
查看>>
[转]友元函数(friend)
查看>>