`

一个适合自己的vim设置。

    博客分类:
  • vim
阅读更多

经过3天的煎熬,找各种资料终于弄了个基本的符合自己vim配置。

 

这篇文章以后会不定时更新。

 

用到的插件:

a.vim    //头文件和编程文件之间切换
bufexplorer.vim      //文件浏览器,基本不用
color_sample_pack.vim   //各种颜色主题
csExplorer.vim                //
DoxygenToolkit.vim         //个性文本生成工具,知道大概干什么,以后再说
genutils.vim 
list
lookupfile.vim                 //查找文件插件
mark.vim                        //标记高亮显示
minibufexpl.vim              //很好用的打开文件显示浏览器
NERD_commenter.vim   //注释插件
NERD_tree.vim
project.vim                    //工程目录插件
ShowFunc.vim               //显示函数插件,还没怎么用
taglist.vim                     //前提是安装了ctags,此插件才好用,Exburant ctags
winfileexplorer.vim        //winmanager里的,winmanager可以控制taglist和bufexplorer的显示。
winmanager.vim
wintagexplorer.vim

 

vimrc文件:

 

 

"display the cursor
"set ruler
set nocp
filetype plugin on

" detect the filetype
" this sentence eq   filetype on, filetype plugin on, filetype indent on
filetype plugin indent on
set nocompatible

set foldmethod=syntax

"set color display
set t_Co=256


"Set mapleader
"when use just in normal mode type ,ee 
let mapleader = ","

"Fast reloading of the .vimrc
map <silent> <leader>ss :source ~/.vimrc<cr>
"Fast editing of .vimrc
map <silent> <leader>ee :e ~/.vimrc<cr>
"When .vimrc is edited, reload it
autocmd! bufwritepost .vimrc source ~/.vimrc

""""""""""""""""""""""""""""
"     MiniBufferExplorer   "
""""""""""""""""""""""""""""
let g:miniBufExplMapWindowNavVim=1
let g:miniBufExplMapWindowNavArrows=1
let g:miniBufExplMapCTabSwitchBufs=1
"let g:miniBufExplModSelTarget=1 


"进行Taglist的设置
"TlistUpdate可以更新tags
map <F3> :silent! Tlist<CR>
"按下F3就可以呼出了
let Tlist_Ctags_Cmd='/usr/bin/ctags' 
"因为我们放在环境变量里,所以可以直接执行
let Tlist_Use_Right_Window=1
"让窗口显示在右边,0的话就是显示在左边
let Tlist_Show_One_File=1
"让taglist可以同时展示多个文件的函数列表
let Tlist_File_Fold_Auto_Close=1
"非当前文件,函数列表折叠隐藏
let Tlist_Exit_OnlyWindow=1
"当taglist是最后一个分割窗口时,自动推出vim
"是否一直处理tags.1:处理;0:不处理
let Tlist_Process_File_Always=0
"不是一直实时更新tags,因为没有必要
let Tlist_Inc_Winwidth=0


"设置字体
"set guifont=DejaVu\ Sans\ Mono\ 10
set guifont=Consolas\ 11
" 开启语法高亮
syntax enable
syntax on
"设置了在窗口右侧何处开始换行没有\n符号,textwidth有\n
set wrapmargin=10

"在代码使用4个空格代替TAB符
autocmd FileType c,cpp,py set shiftwidth=4 | set expandtab

"zzg added 
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
"set laststatus=2
"imap <C-s> <ESC>:w<cr>a

set shiftwidth=4
"set indent length

set expandtab
" set use a series of backspaces to  replace tab

set tabstop=4
" set when press a tab how many backspaces will skip

"关闭vi兼容模式
"set nocp

" 自动切换目录
set autochdir
" 打开行号显示
set nu
" 设置文字编码自动识别
set fencs=utf-8,cp936
" 使用鼠标
set mouse=a
" 设置高亮搜索
set hlsearch
" 设置代码折叠
"set fdm=indent
"set foldmethod=syntax
"autocmd FileType c,cpp  setl fdm=syntax | setl fen 
" 输入字符串就显示匹配点
set incsearch
" 输入的命令显示出来,看的清楚些。
set showcmd
" 选择配色方案
"hi Nomal ctermfg=Grey ctermbg=Black
colorscheme darkburn
"colorscheme darkblue
"colorscheme morning

""""""""""""""""""""""""""""""
" BufExplorer
""""""""""""""""""""""""""""""
"let g:bufExplorerDefaultHelp=0       " Do not show default help.
"let g:bufExplorerShowRelativePath=1  " Show relative paths.
"let g:bufExplorerSortBy='mru'        " Sort by most recently used.
"let g:bufExplorerSplitRight=0        " Split left.
"let g:bufExplorerSplitVertical=1     " Split vertically.
"let g:bufExplorerSplitVertSize=30    " Split width
"let g:bufExplorerUseCurrentWindow=1  " Open in new window.
"autocmd BufWinEnter \[Buf\ List\] setl nonumber 

"打开当前目录文件列表
""""""""""""""""""""""""""""""
" netrw setting
""""""""""""""""""""""""""""""
let g:netrw_winsize = 30
nmap <silent> fe :Sexplore!<cr> 


let g:LookupFile_TagExpr = '"./filenametags"' 



"""""""""""""""""""""""""""""
" WinManager setting
"""""""""""""""""""""""""""""
let g:winManagerWindowLayout = "FileExplorer|TagList"
let g:winManagerWidth = 30
let g:defaultExplorer = 0
nmap <C-W><C-F> :FirstExplorerWindow<cr>
nmap <C-W><C-B> :BottomExplorerWindow<cr>
nmap <silent> wm :WMToggle<cr>

""""""""""""""""""""""""""""""
" lookupfile setting
""""""""""""""""""""""""""""""
let g:LookupFile_MinPatLength = 2               "最少输入2个字符才开始查找
let g:LookupFile_PreserveLastPattern = 0        "不保存上次查找的字符串
let g:LookupFile_PreservePatternHistory = 1     "保存查找历史
let g:LookupFile_AlwaysAcceptFirst = 1          "回车打开第一个匹配项目
let g:LookupFile_AllowNewFiles = 0              "不允许创建不存在的文件
if filereadable("./filenametags")                "设置tag文件的名字
let g:LookupFile_TagExpr = '"./filenametags"'
endif
"映射LookupFile为,lk
nmap <silent> <leader>lk :LUTags<cr>
"映射LUBufs为,ll
nmap <silent> <leader>ll :LUBufs<cr>
"映射LUWalk为,lw
nmap <silent> <leader>lw :LUWalk<cr>

" lookup file with ignore case
function! LookupFile_IgnoreCaseFunc(pattern)
    let _tags = &tags
    try
        let &tags = eval(g:LookupFile_TagExpr)
        let newpattern = '\c' . a:pattern
        let tags = taglist(newpattern)
    catch
        echohl ErrorMsg | echo "Exception: " . v:exception | echohl NONE
        return ""
    finally
        let &tags = _tags
    endtry

    " Show the matches for what is typed so far.
    let files = map(tags, 'v:val["filename"]')
    return files
endfunction
let g:LookupFile_LookupFunc = 'LookupFile_IgnoreCaseFunc' 


""""""""""""""""""""""""""""""
" mark setting
""""""""""""""""""""""""""""""
nmap <silent> <leader>hl <Plug>MarkSet
vmap <silent> <leader>hl <Plug>MarkSet
nmap <silent> <leader>hh <Plug>MarkClear
vmap <silent> <leader>hh <Plug>MarkClear
nmap <silent> <leader>hr <Plug>MarkRegex
vmap <silent> <leader>hr <Plug>MarkRegex 

"Quickfix hotkey
autocmd FileType c,cpp  map <buffer> <leader><space> :w<cr>:make<cr>
nmap <leader>cn :cn<cr>
nmap <leader>cp :cp<cr>
nmap <leader>cw :cw 10<cr> 

"在当前文件中快速查找光标下的单词: 
nmap <leader>lv :lv /<c-r>=expand("<cword>")<cr>/ %<cr>:lw<cr> 


map <F12> :call Do_CsTag()<CR>
nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>:copen<CR>
nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>:copen<CR>
nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>:copen<CR>
function Do_CsTag()
    let dir = getcwd()
    if filereadable("tags")
        if(g:iswindows==1)
            let tagsdeleted=delete(dir."\\"."tags")
        else
            let tagsdeleted=delete("./"."tags")
        endif
        if(tagsdeleted!=0)
            echohl WarningMsg | echo "Fail to do tags! I cannot delete the tags" | echohl None
            return
        endif
    endif
    if has("cscope")
        silent! execute "cs kill -1"
    endif
    if filereadable("cscope.files")
        if(g:iswindows==1)
            let csfilesdeleted=delete(dir."\\"."cscope.files")
        else
            let csfilesdeleted=delete("./"."cscope.files")
        endif
        if(csfilesdeleted!=0)
            echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.files" | echohl None
            return
        endif
    endif
    if filereadable("cscope.out")
        if(g:iswindows==1)
            let csoutdeleted=delete(dir."\\"."cscope.out")
        else
            let csoutdeleted=delete("./"."cscope.out")
        endif
        if(csoutdeleted!=0)
            echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.out" | echohl None
            return
        endif
    endif
    if(executable('ctags'))
        "silent! execute "!ctags -R --c-types=+p --fields=+S *"
        silent! execute "!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ."
    endif
    if(executable('cscope') && has("cscope") )
        if(g:iswindows!=1)
            silent! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.java' -o -name '*.cs' > cscope.files"
        else
            silent! execute "!dir /s/b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files"
        endif
        silent! execute "!cscope -b"
        execute "normal :"
        if filereadable("cscope.out")
            execute "cs add cscope.out"
        endif
    endif
endfunction




" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
let OmniCpp_MayCompleteDot = 1 " autocomplete after .
let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
let OmniCpp_MayCompleteScope = 1 " autocomplete after ::
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" automatically open and close the popup menu / preview window
autocmd CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif



" set something for ominicomplete
set completeopt=longest,menu 

"对NERD_commenter的设置
let NERDShutUp=1

map fg :Dox<cr>
let g:DoxygenToolkit_authorName="zzg"
let g:DoxygenToolkit_licenseTag="My own license\<enter>"
let g:DoxygenToolkit_undocTag="DOXIGEN_SKIP_BLOCK"
let g:DoxygenToolkit_briefTag_pre = "@brief\t"
let g:DoxygenToolkit_paramTag_pre = "@param\t"
let g:DoxygenToolkit_returnTag = "@return\t"
let g:DoxygenToolkit_briefTag_funcName = "no"
let g:DoxygenToolkit_maxFunctionProtoLines = 30



" mapping omini
inoremap <expr> <CR>       pumvisible()?"\<C-Y>":"\<CR>"
inoremap <expr> <C-J>      pumvisible()?"\<PageDown>\<C-N>\<C-P>":"\<C-X><C-O>"
inoremap <expr> <C-K>      pumvisible()?"\<PageUp>\<C-P>\<C-N>":"\<C-K>"
inoremap <expr> <C-U>      pumvisible()?"\<C-E>":"\<C-U>" 


set tags+=~/.vim/stl_tags

"set paste  if set this the omnicomplete will not work 
"remember to the last position you edit zzg
if has("autocmd")
       autocmd BufRead *.txt set tw=78
       autocmd BufReadPost *
        \ if line("'\"") > 0 && line ("'\"") <= line("$") |
        \   exe "normal g'\"" |
        \ endif
endif

 

 

 

 

总结一下安装过程中遇到的问题:

   安装ctags由于以前安装过emacs,所以有了emacs的ctags,我误以为是exburant ctags已经安装了,结果错了很长时间,要安装Exburant ctags,也就是正常情况下的ctags。

   安装cscope时make错误,就没安,继续往下,但是cpp的自动补全不好使。后来查到cscope缺少的相关软件有:

   bison , flex  lib curses-dev 什么的

   用 apt-cache search keywords 就能找到了.然后再安装对应的包就行了。

 

最后设置vim下用256色,并用了一个非常好看的颜色主题:darkburn.vim

 

有两个网站关于vim讲的非常好:

http://www.vimer.cn/

http://easwy.com/blog/     很敬佩这位大牛!!

 

 

 

下载插件的官网是:搜一下想找的插件立马就会出来,官网很强大。

http://www.vim.org/scripts/

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论
1 楼 dc0453 2011-08-30  
赞一个啊,你那代码用的“java”代码

相关推荐

    vim设置20130906, 适合编程爱好者

    每个插件的目录下的conf.vim中有更多的设置及说明 "FuzzyFinder fuf.vim模糊查找 source ~/.vim/bundle/fuzzyfinder/conf.vim "NERD_commenter.vim source ~/.vim/bundle/nerdcommenter/conf.vim "单独切换打开...

    Linux系统中vim设置tab键的宽度

    如果`.vimrc`文件不存在,上述命令会自动创建一个新的文件。这个文件是Vim的配置文件,用于保存用户自定义的编辑器设置。 #### 步骤二:配置tab相关选项 在`.vimrc`文件中,可以添加以下几行代码来设置tab键的行为...

    vim颜色设置

    - 设置 Tab 键的宽度为两个字符空间: ```vim set ts=2 ``` - 设置终端支持 256 色: ```vim set t_Co=256 ``` ##### 2. 应用配色方案 - 在 `/etc/vimrc` 文件中添加以下命令来应用预定义的配色方案...

    经典vim插件设置

    本压缩包"经典vim插件设置"旨在帮助用户将Vim打造为一个IDE,使代码编辑、调试和项目管理更加便捷。以下是其中涉及的一些关键知识点: 1. **Cscope**:Cscope是一款源代码浏览工具,它支持多种编程语言,包括C、C++...

    vim样式设置工具

    5. **匹配括号高亮**:当光标位于一个括号内时,Vim可以高亮其匹配的括号,增强代码定位感: ``` set showmatch ``` 6. **文件类型检测与插件**:Vim可以识别不同类型的文件,并应用相应的设置。例如,对于C代码...

    VIM FOR PHP配置

    对于PHP开发者来说,配置一个适合自己的VIM环境可以显著提高编码效率。以下是对"VIM FOR PHP配置"的详细解释: 1. **.vimrc**:这是VIM的配置文件,它包含了用户自定义的设置和快捷键。在`.vimrc`中,你可以定制VIM...

    vim设置取消下划线 set cursorline

    jeffy-vim 很强的一个vim插件及配置 但安装之后出现下划线,那就需要进行设置, 可以在shell终端输入命令:vi ~/.vimrc 然后找到set cursorline 那一行,直接通过dd命令删除掉,退出保存即可

    vim plugin vim changes to ide update

    **vimrc** 文件是Vim的配置文件,它是个人化Vim设置的核心。每个用户都可以根据自己的需求定制vimrc,包含快捷键绑定、颜色方案、自动缩进规则等。在这个上下文中,可能意味着更新vimrc以引入新添加的插件并优化它们...

    Vim设置文件

    总之,`.vimrc`文件是Vim使用者的个性化宝典,它能够帮助我们构建一个高效、舒适的工作环境。熟练掌握`.vimrc`的编写和使用,将极大地提升你在编程过程中的效率和体验。对于喜欢源码和工具的开发者来说,理解和定制`...

    vim自动生成文件模板 templates 设置方法

    在你的`~/.vim/`目录下创建一个`templates`子目录(如果不存在的话)。这个目录将用来存放所有自定义的模板文件。每个模板文件应以`.template`为扩展名,例如,`python.template`用于Python代码的模板。 2. **编写...

    vim-configure.tar.gz_vim_vim_configure

    "vim-configure.tar.gz_vim_vim_configure" 是一个包含了 Vim 配置文件的压缩包,旨在帮助用户优化 Vim 的使用体验,提供自动提示、补全功能以及代码高亮等特性。 在 Vim 中配置这些功能,可以使编辑效率大幅提升。...

    vsVim一个visual studio 的vim插件

    一个visual studio 的vim插件 喜欢VIM的人赶紧下了

    vim 配置 vim 配置

    Vim是一款强大的文本编辑器,其高度可定制性使得用户能够根据个人喜好和需求进行配置。...记住,每个开发者的Vim配置都是独一无二的,根据自己的需求进行调整,才能让Vim成为真正的个人化高效工具。

    如何配置一个好看的vim

    **如何配置一个好看的Vim** ...以上是配置一个好看Vim的基础步骤,实际上,Vim的自定义可能性几乎无穷无尽,你可以根据自己的需求不断探索和完善。通过不断调整.vimrc,你会发现Vim不仅好用,而且极具个性。

    超强的vim设置代码

    超强的vim设置代码,总共800行,实现各种功能

    一个vim设置文件

    一个还算不错的vimrc文件, vim写C和c++代码必备,含ctag cscope, 窗口等快捷方式

    开源项目-vim-vim.zip

    通过编译这些源代码,用户可以构建适合自己操作系统和需求的Vim版本。 总的来说,开源项目Vim 8.0不仅是一个功能强大的文本编辑器,更是一个具有高度可扩展性和定制性的开发工具。它的异步I/O、多窗口支持、增强的...

    vim的配置文件设置

    在解压缩提供的`vimconfig.zip`文件后,你会看到一个.sh文件,这可能是一个安装或配置脚本。执行这个.sh文件可以快速应用预设的Vim配置。由于在Linux系统中,隐藏文件(以`.`开头的文件)不会在默认视图中显示,所以...

    blog.csdn.net-VIM配置vim-airline插件安装 - 最暖一天 - 博客频道

    **vim-airline**是一款用于美化Vim状态栏的插件,它可以显示当前文件的相关信息,如文件名、文件类型、文件编码等,同时还能展示缓冲区信息,帮助用户更好地管理多个缓冲区。此外,该插件还提供了丰富的主题和高度的...

Global site tag (gtag.js) - Google Analytics