my vim IDE 编辑器的配置
<h4>1.自定义编辑.vimrc的快捷键</h4>
<blockquote>
"Set mapleader
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
</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中定义了下面的映射,使用<F9>键就可以打开/关闭taglist窗口:
<blockquote>
map <silent> <F9> :TlistToggle<cr>
</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 <C-W><C-F> :FirstExplorerWindow<cr>
nmap <C-W><C-B> :BottomExplorerWindow<cr>
nmap <silent> <leader>wm :WMToggle<cr></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窗口。
<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,其实这个插件它不仅能用来查找文件,还可以在打开的缓冲区中查找,按目录查找,等等。
<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/" > filenametags
find . -not -regex '.*\.\(png\|gif\)' -type f -printf "%f\t%p\t1\n" | \
sort -f >> 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><F5></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 <C-W><C-F> :FirstExplorerWindow<cr>
nmap <C-W><C-B> :BottomExplorerWindow<cr>
nmap <silent> <leader>wm :WMToggle<cr>
""""""""""""""""""""""""""""""
" 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 <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'</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>
my vim IDE 编辑器的配置的更多相关文章
- IDE编辑器编码配置
做跨平台开发时,大家用不同的IDE合作开发,最令人头疼的事就是各种乱码问题. 常用的IDE都支持utf-8编码和unix格式行尾'\n'. 1.XCODE设置文本编码及换行Xcode >> ...
- 转载 - Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LTS)
出处:http://www.cnblogs.com/ifantastic/p/3185665.html Vim 的 Python 编辑器详细配置过程 (Based on Ubuntu 12.04 LT ...
- vim IDE平台-打造属于自己的配置
vim IDE平台-打造属于自己的配置 一.前言 目前工作环境基本以Linux为主,自然用到VIM也很多,很早就对如何提高VIM的使用效率有所研究,限于时间关系,也没做个系统记录和资料积累,时间久了又 ...
- Linux学习Day5:Vim编辑器、配置网卡、配置Yum软件仓库
今天首先学习Vim编辑器的使用,通过它可以对Linux系统的文件进行编写和修改.在Linux系统中一切都是文件,所以熟练掌握Vim编辑器的使用十分重要.最后通过配置主机网卡的实验,来加深Vim编辑器中 ...
- 转 : React Native 开发之 IDE 选型和配置
转:https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651112392&idx=1&sn=135e29ddde30 ...
- VIM IDE
打造VIM IDE(针对C语言开发者) ================================使用vim打造IDE, 针对C语言开发者建议使用gvim================== ...
- Vim 文本编辑器的基本使用
Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立.修改.编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具 ...
- Java 程序员最喜欢的 11 款免费 IDE 编辑器
Java开发人员需要花费大量的时间埋头于Java代码中,使用各种不同的IDE(Intergrated Development Environment)来开发Java代码,所以下面我将为大家介绍11个不 ...
- Vim:gvim安装配置(windows)
Vim:gvim安装配置(windows) 一.gvim的特点: vim要求全部键盘操作,而gvim可以使用鼠标进行可视化操作,即gvim是vim的图形化界面: 二.gvim安装: 下载地址:http ...
随机推荐
- Flume1.7.0的安装与使用
Flume下载后,解压,新增一个配置文件,写入配置即可 我将配置文件写在 conf 下,取名为 flume-conf-spooldir.properties Flume 运行命令: bin/flume ...
- canvas笔记1
w3c定义: <canvas> 标签定义图形,比如图表和其他图像. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形. canvas 对象 属性: width he ...
- 如何选择单片机和Android-LInux-ARM开发板?
源: 如何选择单片机和Android-LInux-ARM开发板?
- Python3.x:定时自动发送邮件
定时自动发送邮件 一.简述 python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email ...
- cisco笔记
交换机 show cdp neighbors 显示邻居信息 路由 show ip interface brief 显示接口ip
- 20145219 《Java程序设计》第16周课程总结
20145219 <Java程序设计>第16周课程总结 每周读书笔记(即学习总结)链接汇总 第0周问卷调查 第1周读书笔记 第2周读书笔记 第3周读书笔记 第4周读书笔记 第5周读书笔记 ...
- 通俗理解数字签名,数字证书和https
最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应.签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖 PDF合同在签章后不能被更 ...
- canal入门使用
1.下载canal安装包: 地址:https://github.com/alibaba/canal/releases 图例: 2.将下载好的安装包复制到Linux,解压 3.修改配置文件 vi con ...
- Hibernate的一级缓存、二级缓存和查询缓存。
Hibernate的Session提供了一级缓存的功能,默认总是有效的,当应用程序保存持久化实体.修改持久化实体时,Session并不会立即把这种改变提交到数据库,而是缓存在当前的Session中,除 ...
- sklearn中预测模型的score函数
sklearn.linear_model.LinearRegression.score score(self, X, y, sample_weight=None) Returns the coeffi ...