将vim变为IDE(不定期更新)

来源:互联网 发布:淘宝买的妹汁是真的吗 编辑:程序博客网 时间:2024/05/21 08:43

今天重新配置了一下vim,将其配置成为了一个完整的IDE。包括自动补全,文件列表,函数列表等  

先来一张图


以下是文件配置:

set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示  set nu              " 显示行号  syntax on           " 语法高亮  set ruler           " 显示标尺  set showmodeset showcmdset hlsearchset nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  set cursorcolumn   "竖行高亮set cursorline     "当前横行高亮set foldmethod=indent "设置折叠   set foldlevelstart=99let g:SimpylFold_docstring_preview=1set autoindent   "自动缩进set tabstop=4set softtabstop=4set shiftwidth=4set relativenumber           "设置相对行号"配色方案set t_Co=256syntax enableset background=darkcolorscheme molokailet mapleader=";"nmap <Leader>q :q<CR>   nmap <Leader>w :w<CR>nmap <Leader>qa :qa<CR>nmap <Leader>wq :wq<CR>"折叠和打开nmap <Leader>a za            "窗口移动nmap <Leader>j <C-W>j nmap <Leader>k <C-W>knmap <Leader>h <C-W>hnmap <Leader>l <C-W>l"创建新的窗口nmap <Leader>g :Te<Space><CR>"窗口切换nmap <Leader>t gt"文件切换nmap <Leader>f gf"方便行数跳转nmap + :+nmap - :-nmap <C-U> <C-v>^dnmap <C-K> <C-v>$hdnmap <CR> Gnmap <backspace> gginoremap jk <Esc>inoremap ( ()<LEFT>inoremap [ []<LEFT>inoremap { {}<LEFT>"inoremap { <CR><Tab>{<CR>}<ESC>O<Tab>  "插入文件开头function HeaderPython()    call setline(1, "#coding: utf-8")    call append(1, "\#Created Time: ".strftime('%Y-%m-%d %T', localtime()))call append(2,"")    normal Gendffunction Headersh()    call setline(1,"\#########################################################################") call append(1,"\#File Name:".expand("%"))call append(2,"\#Created Time:".strftime('%Y-%m-%d %T'))                call append(3, "\#########################################################################")                 call append(4, "\#!/bin/bash") call append(5,"")normal Gendffunction Headercpp()call setline(1,"/*******************************************************")call append(1,"File Name:".expand("%"))call append(2,"Created Time:".strftime('%Y-%m-%d %T'))call append(3,"********************************************************/")call append(4,"\#include<iostream>")call append(5,"using namespace std;")call append(6,"")normal Gendffunction Headerdot()call setline(1,"//usr/bin/dot")call append(1,"digraph G{")call append(2,"")call append(3,"}")normal 3Gendffunction Headercs()call setline(1,"//File Name".expand("%"))call append(1,"//Created Time:".strftime('%Y-%m-%d &T'))call append(2,"using System;")call append(3,"namespace Hello")call append(4,"{")call append(5,"    static void Main()")call append(6,"    {")call append(7,"        ")call append(8,"    }")call append(9,"}")normal 8Gendfautocmd bufnewfile *.py call HeaderPython()autocmd bufnewfile *.sh call Headersh()autocmd bufnewfile *.cpp call Headercpp()autocmd bufnewfile *.dot call Headerdot()autocmd bufnewfile *.cs call Headercs()"<F5>调试代码map <F5> :call CompileRunGcc()<CR>func! CompileRunGcc()exec "w"if &filetype == 'c'    exec "!g++ % -o %<"  exec "! ./%<"elseif &filetype == 'cpp'  exec "!g++ % -o %<"  exec "! ./%<"elseif &filetype == 'sh'exec "!chmod a+x %"exec "! ./%"elseif &filetype == 'cs'exec "!mono-csc %"exec "!wine %<"elseif &filetype == 'python'exec "!python %"endifendfunc"Pluginset nocompatible              " be iMproved, requiredfiletype off                  " required" set the runtime path to include Vundle and initializeset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()" alternatively, pass a path where Vundle should install plugins"call vundle#begin('~/some/path/here')" let Vundle manage Vundle, requiredPlugin 'gmarik/Vundle.vim'Plugin 'scrooloose/nerdtree'Plugin 'Valloric/YouCompleteMe'Plugin 'vim-scripts/a.vim'Plugin 'tmhedberg/SimpylFold'" All of your Plugins must be added before the following linecall vundle#end()            " requiredfiletype plugin indent on    " required" To ignore plugin indent changes, instead use:"filetype plugin onlet g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'"NERDTreemap <C-N> :NERDTreeToggle<CR>let NERDTreeShowBookmarks=1 "显示书签let NERDTreeDirArrows=0 "目录箭头 1 显示箭头  0传统+-|号"autocmd VimEnter * NERDTree"autocmd VimEnter * wincmd p"autocmd VimEnter * if !argc() | NERDTree | endif"Taglistmap <C-L> :Tlist<CR>let Tlist_Show_One_File=0        let Tlist_Ctags_Cmd="/usr/bin/ctags" "将taglist与ctags关联  let Tlist_Exit_OnlyWindow=1    "最后一个窗口时退出let Tlist_Use_Right_Window=1let Tlist_File_Fold_Auto_Close=1"let Tlist_Auto_Open=1"ctagsmap <F12>  :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>"gtaphvizlet g:WMGraphviz_dot = "dot"let g:WMGraphviz_output = "svg"let g:WMGraphviz_viewer = "xdg-open"let g:WMGraphviz_shelloptions = ""let s:completion_type = 'attrs'map <f8> :w<CR>:!dot -Tsvg -o %<.svg % && start %<.svg<CR>:!mv %<.svg svg<CR>nmap <Leader>lv :w<CR>:GraphvizShow<CR>:!rm %<.dot.svginoremap <C-o> <C-x><C-o>"LaTex" REQUIRED. This makes vim invoke Latex-Suite when you open a tex file.filetype plugin on" IMPORTANT: win32 users will need to have 'shellslash' set so that latex" can be called correctly.set shellslash" IMPORTANT: grep will sometimes skip displaying the file name if you" search in a singe file. This will confuse Latex-Suite. Set your grep" program to always generate a file-name.set grepprg=grep\ -nH\ $*" OPTIONAL: This enables automatic indentation as you type.filetype indent on" OPTIONAL: Starting with Vim 7, the filetype of empty .tex files defaults to" 'plaintex' instead of 'tex', which results in vim-latex not being loaded." The following changes the default filetype back to 'tex':let g:tex_flavor='latex'let g:Tex_CompileRule_dvi='latex -src-specials -interaction=nonstopmode $*'let g:livepreview_previewer = 'evince'nmap <Leader>s :LLPStartPreview<CR>




稍微解释一下上面的部分配置文件


配色方案:这个需要去molokai官网下载一个molokai.vim 的文件,放入~/.vim/colors文件夹下(如果没有请新建一个)


Plugin:

这个部分就直接将代码写入~/.vimrc文件之后,重新输入:vim  ,再输入::PluginInstall  等待安装就好了(可能时间比较长)


NERDTree:

刚刚的Plugin部分已经安装好了,直接输入配置就好了


Taglist:

这个部分需要到taglist官网下载一个taglist.vim的文件,放入~/.vim/plugin文件夹下(没有就新建)。之后将上述的配置输入到.vimrc中


ctags:

这个直接通过输入:apt-get install ctags 安装,然后配置就好了 


最后说一下补全插件YouCompleteMe,出现错误可以参考 Ubuntu下安装YouCompleteMe插件这篇文章解决



2016-5-14更新:

增加了graphviz的配置

graphviz配置基本完成,功能主要如下:

简化自动补全,ctrl+x直接补全

f8自动生成.png文件

<Leader>+lv预览

自动生成文件头


配置方法参考 linux下做图工具——graphviz安装配置,但是配置文件中有关f8按键的设置,如果想要生产svg就直接使用,如果是想要生成png就用本篇博客的



2017-1-8更新:

增加c#的F5编译功能,以及生成.cs文件的头结构

前提需要安装wine,可以直接通过命令apt-get install wine进行安装



当添加新的功能时,本博客会持续更新,敬请期待



0 0
原创粉丝点击