• vim 打造IDE


    1、MinBufExplorer

    2、Ctags

    Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。

    [root@localhost ~]#ctags -R

      Ctrl-]    跳转到光标所在符号的定义。

      Ctrl-t    回到上次跳转前的位置。

    3、TagList

    Taglist是vim的一个插件,提供源代码符号的结构化视图。

        :Tlist  显示或关闭Taglist
        u             更新taglist窗口中的tag
        s             更改排序方式,在按名字排序和按出现顺序排序间切换
        x             taglist窗口放大和缩小,方便查看较长的tag
        +             打开一个折叠,同zo
        -             将tag折叠起来,同zc
        *             打开所有的折叠,同zR
        =             将所有tag折叠起来,同zM
        [[            跳到前一个文件
        ]]            跳到后一个文件      

    4、NERDTree

        p 到上层目录
        P 到根目录
        K 到同目录第一个节点
        J 到同目录最后一个节点

    5、winmanager

    ~/.vim/ 下加入插件文件

    ~/.vimrc 配置文件

    plugin

    -rw-r--r-- 1 root   root    68053 Nov 17 10:05 minibufexpl.vim
    -rw-r--r-- 1 root   root     7864 Nov 14 00:54 NERD_tree.vim
    -rw-r--r-- 1 root   root   152279 Aug 28 19:27 taglist.vim
    -rw-r--r-- 1 root   root    39277 Nov 17 13:48 winfileexplorer.vim
    -rw-r--r-- 1 root   root    39509 Nov 17 14:32 winmanager.vim
    -rw-r--r-- 1 root   root    13399 Nov 17 13:48 wintagexplorer.vim

    下载地址:

    http://vim-scripts.org/vim/scripts.html

    http://www.vim.org/

    http://sourceforge.net/

    set nocompatible
    
    if has("syntax")
      syntax on            " 语法高亮
    endif
    ""colorscheme molokai        " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下
    colorscheme koehler
    " detect file type
    filetype on
    filetype plugin on
    
    " If using a dark background within the editing area and syntax highlighting
    " turn on this option as well
    "set background=dark
    set guifont=Monaco 10
    set guifontwide=文泉驿等宽微米黑 10
    " Uncomment the following to have Vim jump to the last position when
    " reopening a file
    if has("autocmd")
      au BufReadPost * if line("'"") > 1 && line("'"") <= line("$") | exe "normal! g'"" | endif
      "have Vim load indentation rules and plugins according to the detected filetype
      filetype plugin indent on
    endif
    " The following are commented out as they cause vim to behave a lot
    " differently from regular Vi. They are highly recommended though.
    
    "set ignorecase        " 搜索模式里忽略大小写
    "set smartcase        " 如果搜索模式包含大写字符,不使用 'ignorecase' 选项。只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用。
    set autowrite        " 自动把内容写回文件: 如果文件被修改过,在每个 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令转到别的文件时亦然。
    set autoindent        " 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置
    "set smartindent        " 智能对齐方式
    set tabstop=4        " 设置制表符(tab键)的宽度
    set softtabstop=4     " 设置软制表符的宽度
    set shiftwidth=4    " (自动) 缩进使用的4个空格
    set cindent            " 使用 C/C++ 语言的自动缩进方式
    set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s     "设置C/C++语言的具体缩进方式
    "set backspace=2    " 设置退格键可用
    set showmatch        " 设置匹配模式,显示匹配的括号
    set linebreak        " 整词换行
    set whichwrap=b,s,<,>,[,] " 光标从行首和行末时可以跳到另一行去
    "set hidden " Hide buffers when they are abandoned
    "set mouse=a            " Enable mouse usage (all modes)    "使用鼠标
    if has('mouse')
        set mouse=a
    endif
    set number            " Enable line number    "显示行号
    "set previewwindow    " 标识预览窗口
    set history=50        " set command history to 50    "历史记录50条
    
    
    "--状态行设置--
    set laststatus=2 " 总显示最后一个窗口的状态行;设为1则窗口数多于一个的时候显示最后一个窗口的状态行;0不显示最后一个窗口的状态行
    set ruler            " 标尺,用于显示光标位置的行号和列号,逗号分隔。每个窗口都有自己的标尺。如果窗口有状态行,标尺在那里显示。否则,它显示在屏幕的最后一行上。
    
    "--命令行设置--
    set showcmd            " 命令行显示输入的命令
    set showmode        " 命令行显示vim当前模式
    
    "--find setting--
    set incsearch        " 输入字符串就显示匹配点
    set hlsearch
    
    
    
    """"""""""""""""""""""""""""""
    " winManager setting
    """"""""""""""""""""""""""""""
    let g:NERDTree_title="[NERDTree]"
    let g:winManagerWindowLayout="NERDTree"
    
    function! NERDTree_Start()
        exec 'NERDTree'
    endfunction
    
    function! NERDTree_IsValid()
        return 1
    endfunction
    nmap wm :WMToggle<CR>
    """"""""""""""""""""""""""""""
    " MiniBufExplorer
    """"""""""""""""""""""""""""""
    let g:miniBufExplMapWindowNavVim = 1
    let g:miniBufExplMapWindowNavArrows = 1
    let g:miniBufExplMapCTabSwitchBufs = 1
    let g:miniBufExplModSelTarget =1
    let g:miniBufExplMoreThanOne=0
    """"""""""""""""""""""""""""""
    " NERDTree
    """"""""""""""""""""""""""""""
    let NERDTreeChDirMode=2  "选中root即设置为当前目录
    let NERDTreeShowBookmarks=1 "显示书签
    let NERDTreeMinimalUI=1 "不显示帮助面板
    let NERDTreeDirArrows=0 "目录箭头 1 显示箭头  0传统+-|号
    
    
    """"""""""""""""""""""""""""""
    " Tag list (ctags)
    """"""""""""""""""""""""""""""
    let Tlist_Exit_OnlyWindow = 1          "如果taglist窗口是最后一个窗口,则退出vim
    let Tlist_Use_Right_Window = 1         "在右侧窗口中显示taglist窗口
    Tlist_Show_One_File = 1

    效果图

    补充:转自 http://blog.csdn.net/bokee/article/details/6633193

    安装使用Winmanager,NERDTree和MiniBufExplorer

    前面介绍的几个工具和插件,主要提供快捷的编辑功能,如定义跳转,符号查询,符号提示与补全等。这里的三个插件,主要优化布置VIm的界面。具体来说,NERDTree提供树形浏览文件系统的界面,MiniBufExplorer提供多文件同时编辑功能,而Winmanager将这NERDTree界面和Taglist界面整合起来,使Vim更像VS!

            分别从http://www.vim.org/scripts/script.php?script_id=1658

                        http://www.vim.org/scripts/script.php?script_id=159

                        http://www.vim.org/scripts/script.php?script_id=95

            下载NERDTree,MiniBufExplorer和Winmanager安装包(Winmanager还有个更新的vba版本http://www.vim.org/scripts/script.php?script_id=1440,这里选用旧版本的Winmanger)。

            1)像其它插件一样,将NERDTree安装包解压到~/.vim目录。并进入doc目录,在Vim命令行下运行"helptags ."命令。

            2)MiniBufExplorer只有一个.vim文件,将其拷贝到~/.vim/plugin目录。

            3)在~/.vimrc文件中加入以下几行:

          let g:miniBufExplMapWindowNavVim = 1 
          let g:miniBufExplMapWindowNavArrows = 1 
          let g:miniBufExplMapCTabSwitchBufs = 1 
          let g:miniBufExplModSelTarget = 1
          let g:miniBufExplMoreThanOne=0

           4)将Winmanager安装包解压到~/.vim目录。

           5)在~/.vimrc文件中加入以下几行:

          let g:NERDTree_title="[NERDTree]"
          let g:winManagerWindowLayout="NERDTree|TagList"
    
          function! NERDTree_Start()
              exec 'NERDTree'
          endfunction
    
          function! NERDTree_IsValid()
              return 1
          endfunction
    
          nmap wm :WMToggle<CR>

         6)这个版本的Winmanager好像有个小bug,你在打开Winmanager界面时,会同时打开一个空的文件。这会影响后续使用,所以我们要在打开Winmanager时关掉这个空文件。在~/.vim/plugin目录下的winmanager.vim文件中找到以下函数定义并在第5行下添加第6行的内容:

         function! <SID>ToggleWindowsManager()
            if IsWinManagerVisible()
               call s:CloseWindowsManager()
            else
               call s:StartWindowsManager()
               exe 'q'
            end
         endfunction
  • 相关阅读:
    音频,视频简单运用
    转载:Linux Used内存到底到哪里去了?
    shell awk统计重复个数
    Java中的单例模式
    Grub启动配置文件
    C语言实现全排列
    C语言缓冲区清空
    c语言内存对齐(1)
    防盗链原理
    C语言内存对齐(2)
  • 原文地址:https://www.cnblogs.com/wangxusummer/p/4977705.html
Copyright © 2020-2023  润新知