zoukankan      html  css  js  c++  java
  • my vim IDE 编辑器的配置

    <h4>1.自定义编辑.vimrc的快捷键</h4>
    <blockquote>
    "Set mapleader
    let mapleader = ","
    "Fast reloading of the .vimrc
    map &lt;silent&gt; &lt;leader&gt;ss :source ~/.vimrc&lt;cr&gt;
    "Fast editing of .vimrc
    map &lt;silent&gt; &lt;leader&gt;ee :e ~/.vimrc&lt;cr&gt;
    "When .vimrc is edited, reload it
    autocmd! bufwritepost .vimrc source ~/.vimrc
    </blockquote>
    <h4>2.ctags的应用:</h4>
    <blockquote>ctags -R src

    ctrl-]

    ctrl-t</blockquote>
    <h4>3.taglist.vim 插件:</h4>
    现在我们到<a class="link" href="http://www.vim.org/scripts/script.php?script_id=273" target="_top">http://www.vim.org/scripts/script.php?script_id=273</a>下载最新版本的taglist plugin,目前版本是4.6。

    下载后,把该文件在~/.vim/目录中解压缩,这会在你的~/.vim/plugin和~/.vim/doc目录中各放入一个文件:

    Taglist提供了相当多的功能,我的vimrc中这样配置:
    <blockquote>"""""""""""""""""""""""""""""
    " Tag list (ctags)
    " """"""""""""""""""""""""""""""
    let Tlist_Ctags_Cmd = '/usr/bin/ctags'
    " "不同时显示多个文件的tag,只显示当前文件的
    let Tlist_Show_One_File = 1
    " "如果taglist窗口是最后一个窗口,则退出vim
    let Tlist_Exit_OnlyWindow = 1
    "在右侧窗口中显示taglist窗口
    let Tlist_Use_Right_Window = 1</blockquote>
    这样配置后,当你输入”<span class="command"><strong>:TlistOpen</strong></span>“时, 右边显示函数或者变量的定义列表。

    可以用”:<span class="command"><strong>TlistOpen</strong></span>“打开taglist窗口,用”<span class="command"><strong>:TlistClose</strong></span>“关闭taglist窗口。或者使用”<span class="command"><strong>:TlistToggle</strong></span>“在打开和关闭间切换。在我的vimrc中定义了下面的映射,使用&lt;F9&gt;键就可以打开/关闭taglist窗口:
    <blockquote>
    map &lt;silent&gt; &lt;F9&gt; :TlistToggle&lt;cr&gt;
    </blockquote>
    <h4>4.<span class="bold"><strong>winmanager插件</strong></span>:</h4>
    Winmanager插件在这里下载:<a class="link" href="http://vim.sourceforge.net/scripts/script.php?script_id=95" target="_blank">http://vim.sourceforge.net/scripts/script.php?script_id=95</a>

    下载后,把该文件在~/.vim/目录中解压缩,这会把winmanager插件解压到~/.vim/plugin和~/.vim/doc目录中:
    <blockquote>
    plugin/winmanager.vim – winmanager插件
    plugin/winfileexplorer.vim - 改良的Explorer插件
    plugin/wintagexplorer.vim – winmanager提供的tag插件,用处不大
    doc/winmanager.txt – 帮助文件
    </blockquote>
    仍然用”<span class="command"><strong>:helptags ~/.vim/doc</strong></span>“命令来生成帮助标签,然后就可以使用”<span class="command"><strong>:help winmanager</strong></span>“来查看帮助了。

    使用winmanager插件可以控制各插件在vim窗口中的布局显示。我的vimrc中这样设置:
    <blockquote>""""""""""""""""""""""""""""""
    " winManager setting
    " """"""""""""""""""""""""""""""
    let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList"
    let g:winManagerWidth = 30
    let g:defaultExplorer = 0
    nmap &lt;C-W&gt;&lt;C-F&gt; :FirstExplorerWindow&lt;cr&gt;
    nmap &lt;C-W&gt;&lt;C-B&gt; :BottomExplorerWindow&lt;cr&gt;
    nmap &lt;silent&gt; &lt;leader&gt;wm :WMToggle&lt;cr&gt;</blockquote>
    <span class="emphasis"><em>g:winManagerWindowLayout</em></span>变量的值定义winmanager的窗口布局,使用上面的设置,我们的窗口布局看起来是这样的:

    左边有两个窗口,上面的是BufExplorer窗口,下面是taglist窗口。FileExplorer窗口和BufExplorer共用一个窗口,在BufExplorer窗口中使用”<span class="command"><strong>CTRL-N</strong></span>“可以切换到FileExplorer窗口,再使用一次则又切换回BufExplorer窗口。也就是说,在变量g:winManagerWindowLayout中,使用”,”分隔的插件,在同一个窗口中显示,使用”<span class="command"><strong>CTRL-N</strong></span>“在不同插件间切换;使用”|”分隔的插件,则在另外一个窗口中显示。

    在屏幕右边的窗口则是主编辑区。

    在上面的vimrc设置中,还定义了三个键映射,分别用于跳到左上窗口、左下窗口,以及显示/关闭winmanager窗口。

    &nbsp;
    <h4>5.lookupfile 插件</h4>
    Lookupfile插件可以在下面的链接下载:<a class="link" href="http://www.vim.org/scripts/script.php?script_id=1581" target="_blank">http://www.vim.org/scripts/script.php?script_id=1581</a>

    下载该插件后,把它解压到你的~/.vim目录中,就完成了安装。然后在vim中执行”<span class="command"><strong>:helptags ~/.vim/doc</strong></span>“命令,生成help文件索引,然后就可以使用”<span class="command"><strong>:help lookupfile</strong></span>“命令查看lookupfile插件的帮助文件了。

    <span class="bold"><strong>注:</strong></span>windows用户需要把这个插件解压在你的$vim/vimfiles或$HOME/vimfiles目录。

    Lookupfile插件还需要最新的genutils支持,因此,需要下载genutils:<a class="link" href="http://www.vim.org/scripts/script.php?script_id=197" target="_blank">http://www.vim.org/scripts/script.php?script_id=197</a>

    这个插件提供了一些通用的函数,可供其它的脚本使用。它的安装方法也是在~/.vim目录解压就可以了。需要注意的是,最新版本的genutils使用了 新的自动加载方式,所以和以前的版本不兼容。如果你的其它插件需要使用genutils的旧版本的话,你需要参照genutils的说明进行配置,以便使 新旧两个版本能协同工作。

    现在我们介绍lookupfile插件。虽然名字为lookupfile,其实这个插件它不仅能用来查找文件,还可以在打开的缓冲区中查找,按目录查找,等等。

    &nbsp;

    <span class="bold"><strong>[项目文件查找]</strong></span>

    Lookupfile在查找文件时,需要使用tag文件。它可以使用<span class="command"><strong>ctags</strong></span>命令生成的tag文件,不过查找效率会比较低。因此我们会专门为它生成一个包含项目中所有文件名的tag文件。

    我编写了下面的shell脚本,为vim70的源代码,生成一个文件名tag文件。
    <pre lang="bash" escaped="true">
    #!/bin/sh
    # generate tag file for lookupfile plugin
    echo -e "!_TAG_FILE_SORTED 2 /2=foldcase/" &gt; filenametags
    find . -not -regex '.*.(png|gif)' -type f -printf "%f %p 1 " |
    sort -f &gt;&gt; filenametags
    </pre>
    在~/src/vim70/目录下运行该脚本,会生成一个名为filenametags的文件,包含了vim70目录下的所有文件的名字及其所在目录。

    现在我们需要让lookupfile插件知道到哪去找文件名tag文件。我们假定vim当前工作目录为~/src/vim70/,执行下面的命令:
    <blockquote>
    :let g:LookupFile_TagExpr = '"./filenametags"'
    </blockquote>
    <span class="blod">注:</span>如果不设定<span class="emphasis"><em>g:LookupFile_TagExpr</em></span>的值,那么lookupfile插件会以tags选项定义的文件作为它的tag文件。

    现在我们就可以使用lookupfile来打开文件了,按”<span class="command"><strong>&lt;F5&gt;</strong></span>“或输入”<span class="command"><strong>:LookupFile</strong></span>“在当前窗口上方打开一个lookupfile小窗口,开始输入文件名(至少4个字符),随着你的输入,符合条件的文件就列在下拉列表中了。文件名可以使用vim的正则表达式,这大大方便了文件的查找。你可以用”<span class="command"><strong>CTRL-N</strong></span>“和”<span class="command"><strong>CTRL-P</strong></span>“(或者用上、下光标键)来在下拉列表中选择你所需的文件。选中文件后,按回车,就可以在之前的窗口中打开此文件。

    Lookupfile插件提供了一些配置选项,通过调整这些配置选项,使它更符合你的工作习惯。下面是我的vimrc中关于lookupfile的设置,供参考:
    <pre lang="php" escaped="true">
    """"""""""""""""""""""""""""""
    " winManager setting
    " """"""""""""""""""""""""""""""
    let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList"
    let g:winManagerWidth = 30
    let g:defaultExplorer = 0
    nmap &lt;C-W&gt;&lt;C-F&gt; :FirstExplorerWindow&lt;cr&gt;
    nmap &lt;C-W&gt;&lt;C-B&gt; :BottomExplorerWindow&lt;cr&gt;
    nmap &lt;silent&gt; &lt;leader&gt;wm :WMToggle&lt;cr&gt;

    """"""""""""""""""""""""""""""
    " lookupfile setting
    " """"""""""""""""""""""""""""""
    let g:LookupFile_MinPatLength = 1               "最少输入1个字符才开始查找
    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 &lt;silent&gt; &lt;leader&gt;lk :LUTags&lt;cr&gt;
    "映射LUBufs为,ll
    nmap &lt;silent&gt; &lt;leader&gt;ll :LUBufs&lt;cr&gt;
    "映射LUWalk为,lw
    nmap &lt;silent&gt; &lt;leader&gt;lw :LUWalk&lt;cr&gt;


    " lookup file with ignore case
    function! LookupFile_IgnoreCaseFunc(pattern)
    let _tags = &amp;tags
    try
    let &amp;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 &amp;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'</pre>
    <h4>5.开启文件类型检测:</h4>
    打开文件类型检测功能很简单,在你的vimrc中加入下面一句话就可以了:
    <blockquote>
    filetype plugin indent on
    </blockquote>
    <h4>6.语法高亮:</h4>
    http://www.vim.org/scripts/script.php?script_id=625  下载color主题
    <h4>7.cscope利器:</h4>
    <blockquote>cscope -Rbq
    <div class="itemizedlist">
    <ul type="disc">
    <li><span class="bold"><strong>-R</strong></span>: 在生成索引文件时,搜索子目录树中的代码</li>
    <li><span class="bold"><strong>-b</strong></span>: 只生成索引文件,不进入cscope的界面</li>
    <li><span class="bold"><strong>-q</strong></span>: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度</li>
    <li><span class="bold"><strong>-k</strong></span>: 在生成索引文件时,不搜索/usr/include目录</li>
    <li><span class="bold"><strong>-i</strong></span>: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用”<span class="bold"><strong>–</strong></span>“,表示由标准输入获得文件列表。</li>
    <li><span class="bold"><strong>-I</strong></span><span class="emphasis"><em>dir</em></span>: 在<span class="bold"><strong>-I</strong></span>选项指出的目录中查找头文件</li>
    <li><span class="bold"><strong>-u</strong></span>: 扫描所有文件,重新生成交叉索引文件</li>
    <li><span class="bold"><strong>-C</strong></span>: 在搜索时忽略大小写</li>
    <li><span class="bold"><strong>-P</strong></span><span class="emphasis"><em>path</em></span>: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。</li>
    </ul>
    </div></blockquote>
    cscope查询功能:
    <blockquote>
    <div class="itemizedlist">
    <ul type="disc">
    <li><span class="bold"><strong>s:</strong></span> 查找C语言符号,即查找函数名、宏、枚举值等出现的地方</li>
    <li><span class="bold"><strong>g:</strong></span> 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能</li>
    <li><span class="bold"><strong>d:</strong></span> 查找本函数调用的函数</li>
    <li><span class="bold"><strong>c:</strong></span> 查找调用本函数的函数</li>
    <li><span class="bold"><strong>t:</strong></span> 查找指定的字符串</li>
    <li><span class="bold"><strong>e:</strong></span> 查找egrep模式,相当于egrep功能,但查找速度快多了</li>
    <li><span class="bold"><strong>f:</strong></span> 查找并打开文件,类似vim的find功能</li>
    <li><span class="bold"><strong>i:</strong></span> 查找包含本文件的文件</li>
    </ul>
    </div></blockquote>
    &nbsp;

  • 相关阅读:
    作业九 主成分分析
    作业八 特征选择
    作业七 逻辑回归应用
    作业六 逻辑回归
    作业五 线性回归算法
    第十四次作业:手写数字识别-小数据集
    第十三次作业:深度学习-卷积
    第七次作业:7.逻辑回归实践
    第十二次作业:垃圾邮件分类2
    第十一次作业:朴素贝叶斯-垃圾邮件分类
  • 原文地址:https://www.cnblogs.com/liweilijie/p/4984582.html
Copyright © 2011-2022 走看看