<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\t2\t/2=foldcase/" &gt; filenametags
find . -not -regex '.*\.\(png\|gif\)' -type f -printf "%f\t%p\t1\n" | \
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;

my vim IDE 编辑器的配置的更多相关文章

  1. IDE编辑器编码配置

    做跨平台开发时,大家用不同的IDE合作开发,最令人头疼的事就是各种乱码问题. 常用的IDE都支持utf-8编码和unix格式行尾'\n'. 1.XCODE设置文本编码及换行Xcode >> ...

  2. 转载 - Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LTS)

    出处:http://www.cnblogs.com/ifantastic/p/3185665.html Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LT ...

  3. vim IDE平台-打造属于自己的配置

    vim IDE平台-打造属于自己的配置 一.前言 目前工作环境基本以Linux为主,自然用到VIM也很多,很早就对如何提高VIM的使用效率有所研究,限于时间关系,也没做个系统记录和资料积累,时间久了又 ...

  4. Linux学习Day5:Vim编辑器、配置网卡、配置Yum软件仓库

    今天首先学习Vim编辑器的使用,通过它可以对Linux系统的文件进行编写和修改.在Linux系统中一切都是文件,所以熟练掌握Vim编辑器的使用十分重要.最后通过配置主机网卡的实验,来加深Vim编辑器中 ...

  5. 转 : React Native 开发之 IDE 选型和配置

    转:https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651112392&idx=1&sn=135e29ddde30 ...

  6. VIM IDE

    打造VIM IDE(针对C语言开发者)   ================================使用vim打造IDE, 针对C语言开发者建议使用gvim================== ...

  7. Vim 文本编辑器的基本使用

    Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立.修改.编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具 ...

  8. Java 程序员最喜欢的 11 款免费 IDE 编辑器

    Java开发人员需要花费大量的时间埋头于Java代码中,使用各种不同的IDE(Intergrated Development Environment)来开发Java代码,所以下面我将为大家介绍11个不 ...

  9. Vim:gvim安装配置(windows)

    Vim:gvim安装配置(windows) 一.gvim的特点: vim要求全部键盘操作,而gvim可以使用鼠标进行可视化操作,即gvim是vim的图形化界面: 二.gvim安装: 下载地址:http ...

随机推荐

  1. URAL - 1900 Brainwashing Device

    While some people travel in space from planet to planet and discover new worlds, the others who live ...

  2. OPNET 安装运行问题总结

    OPNET作为专业级网络仿真软件,其强大的功能使其在多个领域有广泛的应用.“越强大的软件,安装越闹心”,OPNET就是这样一款安装和运行的都很闹心的软件,这里简单转载和记录我安装OPNET和使用中的问 ...

  3. Java伪代码示例

    学习并转载自https://www.cnblogs.com/z245894546/p/7535261.html import.java.大道至简.*; import.java.愚公移山.*; publ ...

  4. CWinApp类CMultiDocTemplate类CDocument类CView类的关系

    转自:http://blog.csdn.net/bboot/article/details/26884011 不得不转,瞬间搞清了很多问题,短小精悍 1.CWinApp类   它包含并管理着应用程序的 ...

  5. CSS3:布局display属性的flex(弹性布局)

    CSS3:布局display属性的flex(弹性布局) 一.简介 Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性.设为Flex布局以后, ...

  6. Sybase:delete与truncate、drop区别

    Sybase:delete与truncate.drop区别 区别: TRUNCATE TABLE TABLENAME:删除内容.释放空间但不删除定义. DELETE FROM TABLENAME:删除 ...

  7. spring security结合数据库验证用户-注解方式

    项目目录结构如下: 首先数据库的建立和数据导入,以及一些类的依赖参考XML配置方式,需要修改一些配置. 一.在AppConfig文件中添加DataSource的配置 @Bean(name = &quo ...

  8. IE开发人员工具手册

    The DOM Explorer tool (CTRL + 1) The The DOM Explorer tool shows the structure of your webpage as it ...

  9. C++中虚函数和纯虚函数的区别与总结

    首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...

  10. 在NLP中深度学习模型何时需要树形结构?

    在NLP中深度学习模型何时需要树形结构? 前段时间阅读了Jiwei Li等人[1]在EMNLP2015上发表的论文<When Are Tree Structures Necessary for ...