<div id="main">
<div class="main">
<div class="ad_class">
<div class="notice tracking-ad" data-mod="popu_3">
<a href="http://blog.csdn.net/blogdevteam/article/details/65629853" target="_blank">
<font color="blue">【CSDN 日报】| 2.17-3.17 上榜作者排行出炉 </font></a>
<a href="http://blog.csdn.net/blogdevteam/article/details/60961185" target="_blank">
<font color="red">同步博客至 CSDN ,让更多开发者看到你的文章
</font></a>
<a href="http://edu.csdn.net/huiyiCourse/series_detail/29?ref=blog&loc=r0" target="_blank">
<font color="blue">看微博技术大咖解析互联网应用架构实战
</font></a>
</div> </div>
<link href="http://static.blog.csdn.net/css/comment1.css" type="text/css" rel="stylesheet">
<link href="http://static.blog.csdn.net/css/style1.css" type="text/css" rel="stylesheet">
<script language="JavaScript" type="text/javascript" src="http://download.csdn.net/js/jquery.cookie.js"></script>
<script type="text/javascript" src="http://c.csdnimg.cn/rabbit/search-service/main.js"></script>
<link rel="stylesheet" href="http://static.blog.csdn.net/public/res-min/markdown_views.css?v=1.0">
<link rel="stylesheet" href="http://static.blog.csdn.net/css/category.css?v=1.0">
<script type="text/javascript" src="http://static.blog.csdn.net/public/res/bower-libs/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/web-storage-cache.min.js"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/replace.min.js"></script>
<script type="text/ecmascript">
window.quickReplyflag = true;
var isBole = false;
var fasrc="http://my.csdn.net/my/favorite/miniadd?t=vim%e4%bd%bf%e7%94%a8%e6%80%bb%e7%bb%93&u=http://blog.csdn.net/callinglove/article/details/51868170?locationNum=2&fps=1"
</script>
<div id="article_details" class="details">
<div class="article_title">
<span class="ico ico_type_Original"></span>
<h1>
<span class="link_title"><a href="/callinglove/article/details/51868170">
vim使用总结
</a></span>
</h1>
</div>
<div class="article_manage clearfix">
<div class="article_l">
<span class="link_categories">
标签:
<a href="http://www.csdn.net/tag/vim" target="_blank" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">vim</a><a href="http://www.csdn.net/tag/vim%e5%bf%ab%e6%8d%b7%e9%94%ae" target="_blank" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">vim快捷键</a><a href="http://www.csdn.net/tag/stags" target="_blank" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">stags</a>
</span>
</div>
<div class="article_r">
<span class="link_postdate">2016-07-09 19:32</span>
<span class="link_view" title="阅读次数">1335人阅读</span>
<span class="link_comments" title="评论次数"> <a href="#comments" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span>
<span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" οnclick="javascript:collectArticle('vim%e4%bd%bf%e7%94%a8%e6%80%bb%e7%bb%93','51868170');return false;" title="收藏" target="_blank">收藏</a></span>
<span class="link_report"> <a href="#report" οnclick="javascript:report(51868170,2);return false;" title="举报">举报</a></span>
</div>
</div>
<div class="embody" style="display:none" id="embody">
<span class="embody_t">本文章已收录于:</span>
<div class="embody_c" id="lib" value="{"err":0,"msg":"ok","data":[]}"></div>
</div>
<style type="text/css">
.embody{
padding:10px 10px 10px;
margin:0 -20px;
border-bottom:solid 1px #ededed;
}
.embody_b{
margin:0 ;
padding:10px 0;
}
.embody .embody_t,.embody .embody_c{
display: inline-block;
margin-right:10px;
}
.embody_t{
font-size: 12px;
color:#999;
}
.embody_c{
font-size: 12px;
}
.embody_c img,.embody_c em{
display: inline-block;
vertical-align: middle;
}
.embody_c img{
width:30px;
height:30px;
}
.embody_c em{
margin: 0 20px 0 10px;
color:#333;
font-style: normal;
}
</style>
<script type="text/javascript">
$(function () {
try
{
var lib = eval("("+$("#lib").attr("value")+")");
var html = "";
if (lib.err == 0) {
$.each(lib.data, function (i) {
var obj = lib.data[i];
//html += '<img src="' + obj.logo + '"/>' + obj.name + " ";
html += ' <a href="' + obj.url + '" target="_blank">';
html += ' <img src="' + obj.logo + '">';
html += ' <em><b>' + obj.name + '</b></em>';
html += ' </a>';
});
if (html != "") {
setTimeout(function () {
$("#lib").html(html);
$("#embody").show();
}, 100);
}
}
} catch (err)
{ }
});
</script>
<div class="category clearfix">
<div class="category_l">
<img src="http://static.blog.csdn.net/images/category_icon.jpg">
<span>分类:</span>
</div>
<div class="category_r">
<label οnclick="GetCategoryArticles('2616885','callinglove','top','51868170');">
<span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">开发环境搭建<em>(11)</em></span>
<img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
<img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
<div class="subItem">
<div class="subItem_t"><a href="http://blog.csdn.net/callinglove/article/category/2616885" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
<ul class="subItem_l" id="top_2616885">
</ul>
</div>
</label>
</div>
</div>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>
<div class="bog_copyright">
<p class="copyright_p">版权声明:本文为博主原创文章,转载请注明出处</p>
</div>
<div style="clear:both"></div><div style="border:solid 1px #ccc; background:#eee; float:left; min-width:200px;padding:4px 10px;"><p style="text-align:right;margin:0;"><span style="float:left;">目录<a href="#" title="系统根据文章中H1到H6标签自动生成文章目录">(?)</a></span><a href="#" οnclick="javascript:return openct(this);" title="展开">[+]</a></p><ol style="display:none;margin-left:14px;padding-left:14px;line-height:160%;"><li><a href="#t0">vim使用命令</a></li><li><a href="#t1">使用技巧</a></li><li><a href="#t2">vim配置文件使用</a></li><li><a href="#t3">vim插件的使用</a></li><ol><li><a href="#t4">ctags</a></li><li><a href="#t5">taglist</a></li><li><a href="#t6">cscope</a></li></ol><li><a href="#t7">配置文件语法介绍</a></li><ol><li><a href="#t8">快捷键映射</a></li></ol><li><a href="#t9">参考</a></li></ol></div><div style="clear:both"></div><div id="article_content" class="article_content">
<div class="markdown_views"><h2 id="vim使用命令"><a name="t0"></a>vim使用命令</h2>
<p>【自动补全操作】</p>
<ul>
<li>Ctrl + n / Ctrl + p 自动补全字符串</li>
<li>Ctrl +x Ctrl +f 自动补全文件名</li>
</ul>
<p>【多文件操作】 <br>
打开多个文件:</p>
<ul>
<li>vim file1 file2 … filen 在同一个窗口中打开所有想要打开的文件</li>
<li>vim -o file1 file2 … filen 打开一个编辑会话,水平分割窗口,一个文件占用一个窗口</li>
<li>vim -O file1 file2 … filen 打开一个编辑会话,垂直分割窗口,一个文件占用一个窗口</li>
<li>vim -o5 file1 file2 将水平分配5个相同的窗口,有3个是闲置的</li>
</ul>
<p>文件切换:</p>
<ul>
<li>:e file 在当前窗口载入显示file文件</li>
<li>:ls 显示打开的所有文件列表,带编号</li>
<li>:b1~n 切换至第n个文件</li>
<li>:bn 下一个文件</li>
<li>:bp 上一个文件</li>
<li>Ctrl+6 两文件间的切换</li>
</ul>
<p>【多窗口操作】 <br>
切割窗口操作:</p>
<ul>
<li>:sp(lit) 水平切割窗口</li>
<li>:vsp(list) 垂直切割窗口</li>
<li>:qa(ll) 关闭所有窗口</li>
</ul>
<p>默认新建立的窗口显示相同的文件,可以通过以下命令显示不同的文件: <br>
:[n] split(vsplit) [++opt] [+cmd] [file]</p>
<p>多窗口切换:</p>
<p>按住Ctrl + W,然后再加上h, j, k, l,分别表示向左、下、上、右移动窗口,也可以使用上、下、左、右键</p>
<ul>
<li>Ctrl + w + h:向左移动窗口</li>
<li>Ctrl + w + j: 向下移动窗口</li>
<li>Ctrl + w + j: 向上移动窗口</li>
<li><p>Ctrl + w + l: 向右移动窗口</p></li>
<li><p>Ctrl + w + w:这个命令会在所有窗口中循环移动</p></li>
<li>Ctrl + w + t:移动到最左上角的窗口</li>
<li>Ctrl + w + b:移动到最右下角的窗口</li>
<li>Ctrl + w + p:移动到前一个访问的窗口</li>
</ul>
<p>【调整窗口大小】</p>
<p>改变当前窗口的尺寸,同时当然也会影响到其他窗口。 <br>
在gvim和vim中,可以用鼠标点击窗口的顶部白色条并窗口直接调整尺寸。</p>
<p>也可以直接用命令,调整尺寸命令也是以Ctrl + W开头:</p>
<ul>
<li>Ctrl + W + = :让所有窗口调整至相同尺寸(平均划分)</li>
<li>Ctrl + W + -:将当前窗口的高度减少一行,也可在ex命令中,:resize -4明确指定减少的尺寸</li>
<li><p>Ctrl + W + +:将当前窗口的高度增加一行。同样在ex命令中,:resize +n 明确指定增加尺寸</p></li>
<li><p>Ctrl + W + < :将当前窗口的宽度减少</p></li>
<li><p>Ctrl + W + > :将当前窗口的宽度增加</p></li>
<li><p>Ctrl + W + |:将当前窗口的宽度调到最大,也可他哦你通过ex命令:vertical resize n明确指定改变宽度</p></li>
</ul>
<h2 id="使用技巧"><a name="t1"></a>使用技巧</h2>
<p>【新建文件自动添加头部】</p>
<pre class="prettyprint" name="code"><code class="hljs sql has-numbering">" 新建python文件自动添加头部信息
let g:python_author = 'cold' # 姓名
let g:python_email = 'wh_linux@126.com' # 邮箱
function HeaderPython()
normal 1G
<span class="hljs-operator"><span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"#!/usr/bin/env python"</span>)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# -*- coding: utf-8 -*-"</span>)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"#"</span>)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# Author : "</span>.g:python_author)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# E-mail : "</span>.g:python_email)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# Create Date : "</span>.strftime(<span class="hljs-string">"%y-%m-%d %H:%M:%S"</span>))
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# File Name : "</span>.expand(<span class="hljs-string">"%"</span>))
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# Desc :"</span>)
let lnum = line(<span class="hljs-string">"."</span>)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"#"</span>)
normal o
<span class="hljs-keyword">call</span> <span class="hljs-keyword">cursor</span>(lnum, len(getline(lnum)))
normal a
<span class="hljs-string">"normal G
"</span>normal o
<span class="hljs-string">"normal o
endf
autocmd bufnewfile *.py call HeaderPython()</span></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li></ul></pre>
<p>【多行多列操作】</p>
<p>按v进入visual状态,选择多行,用>或<缩进或缩出</p>
<p>通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。</p>
<p>:20,30 s/^/#/g 第20到30行用 # 注释掉。 <br>
:20,30 s/^#//g 取消注释</p>
<p>:4,10 s/^[^I ]+// 去掉行首的空白字符</p>
<p>:co 12 “把当前行 copy 到行 12 的地方。 <br>
可以看到 vim 命令针对当前行,在前面加个范围就可以针对多行。 <br>
用 . 表示当前行, % 表示全文, $ 表示末尾</p>
<p>:.,30 s/^/#/g</p>
<h2 id="vim配置文件使用"><a name="t2"></a>vim配置文件使用</h2>
<p><code>vim --version</code>查看vim支持的功能以及配置文件目录</p>
<pre class="prettyprint" name="code"><code class="hljs sql has-numbering"><span class="hljs-operator"><span class="hljs-keyword">set</span> nocompatible <span class="hljs-string">" 关闭 vi 兼容模式
"</span> colorscheme morning <span class="hljs-string">" 设定配色方案/usr/share/vim/vim74/colors
set number "</span> 显示行号
<span class="hljs-keyword">set</span> cursorline <span class="hljs-string">" 突出显示当前行
set ruler "</span> 打开状态栏标尺
<span class="hljs-keyword">set</span> shiftwidth=<span class="hljs-number">4</span> <span class="hljs-string">" 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 "</span> 使得按退格键时可以一次删掉 <span class="hljs-number">4</span> 个空格
<span class="hljs-keyword">set</span> tabstop=<span class="hljs-number">4</span> <span class="hljs-string">" 设定 tab 长度为 4
set expandtab "</span> 将tab键替换成空格
<span class="hljs-string">" :set ts=4
"</span> :<span class="hljs-keyword">set</span> noexpandtab
<span class="hljs-string">" :%retab!
"</span> :<span class="hljs-keyword">set</span> list 显示制表符,显示方式如下设置
<span class="hljs-string">" set listchars=tab:>-,trail:-
"</span> <span class="hljs-keyword">set</span> listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
<span class="hljs-keyword">set</span> nobackup <span class="hljs-string">" 覆盖文件时不备份
set autochdir "</span> 自动切换当前目录为当前文件所在的目录
syntax <span class="hljs-keyword">on</span> <span class="hljs-string">" 自动语法高亮
filetype plugin indent on "</span> 开启插件
<span class="hljs-keyword">set</span> backupcopy=yes <span class="hljs-string">" 设置备份时的行为为覆盖
set ignorecase smartcase "</span> 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
<span class="hljs-keyword">set</span> nowrapscan <span class="hljs-string">" 禁止在搜索到文件两端时重新搜索
set incsearch "</span> 输入搜索内容时就显示搜索结果
<span class="hljs-keyword">set</span> hlsearch <span class="hljs-string">" 搜索时高亮显示被找到的文本
set noerrorbells "</span> 关闭错误信息响铃
<span class="hljs-keyword">set</span> novisualbell <span class="hljs-string">" 关闭使用可视响铃代替呼叫
set t_vb= "</span> 置空错误铃声的终端代码
<span class="hljs-string">" set showmatch "</span> 插入括号时,短暂地跳转到匹配的对应括号
<span class="hljs-string">" set matchtime=2 "</span> 短暂跳转到匹配括号的时间
<span class="hljs-keyword">set</span> magic <span class="hljs-string">" 设置魔术
set hidden "</span> 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
<span class="hljs-keyword">set</span> guioptions-=T <span class="hljs-string">" 隐藏工具栏
set guioptions-=m "</span> 隐藏菜单栏
<span class="hljs-keyword">set</span> smartindent <span class="hljs-string">" 开启新行时使用智能自动缩进
set backspace=indent,eol,start "</span> 不设定在插入状态无法用退格键和<span class="hljs-keyword">Delete</span> 键删除回车符
<span class="hljs-keyword">set</span> cmdheight=<span class="hljs-number">1</span> <span class="hljs-string">" 设定命令行的行数为 1
set laststatus=2 "</span> 显示状态栏 (默认值为 <span class="hljs-number">1</span>, 无法显示状态栏)
<span class="hljs-keyword">set</span> statusline=\ %<%F[%<span class="hljs-number">1</span>*%M%*%n%R%H]%=\ %y\ %<span class="hljs-number">0</span>(%{&fileformat}\ %{&encoding}\%c:%l/%L%)\
<span class="hljs-string">" 设置在状态行显示的信息
set nofoldenable "</span> 开始折叠
<span class="hljs-keyword">set</span> foldmethod=syntax <span class="hljs-string">" 设置语法折叠
set foldcolumn=0 "</span> 设置折叠区域的宽度
setlocal foldlevel=<span class="hljs-number">1</span> <span class="hljs-string">" 设置折叠层数为
"</span> <span class="hljs-keyword">set</span> foldclose=<span class="hljs-keyword">all</span> <span class="hljs-string">" 设置为自动关闭折叠
"</span> nnoremap <<span class="hljs-keyword">space</span>> @=((foldclosed(line(<span class="hljs-string">'.'</span>)) < <span class="hljs-number">0</span>) ? <span class="hljs-string">'zc'</span> : <span class="hljs-string">'zo'</span>)<CR>
<span class="hljs-string">" 用空格键来开关折叠</span></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li><li>39</li><li>40</li><li>41</li><li>42</li><li>43</li><li>44</li><li>45</li><li>46</li><li>47</li><li>48</li><li>49</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li><li>39</li><li>40</li><li>41</li><li>42</li><li>43</li><li>44</li><li>45</li><li>46</li><li>47</li><li>48</li><li>49</li></ul></pre>
<h2 id="vim插件的使用"><a name="t3"></a>vim插件的使用</h2>
<h3 id="ctags"><a name="t4"></a>ctags</h3>
<p>【安装】</p>
<ul>
<li>安装: <code>yum install -y ctags</code></li>
</ul>
<p>【生成tags文件】</p>
<ul>
<li>ctags -R 递归的为当前目录及子目录下的所有代码文件生成tags文件</li>
<li>ctags <em>.c </em>.h 为某些源码生成tags文件</li>
</ul>
<p>为了使得字段补全有效,在生成tags时需要一些额外的参数,推荐的c++参数主要是: <br>
<code>ctags -R --c++-kinds=+px --fields=+iaS --extra=+q</code> <br>
其中: <br>
选项c++-kinds 用于指定C++语言的 tags记录类型, –c-kinds用于指定<a href="http://lib.csdn.net/base/c" class="replace_word" title="C语言知识库" target="_blank" style="color:#df3434; font-weight:bold;">C语言</a>的, 通用格式是 –{language}-kinds <br>
选项 fileds 用于指定每条标记的扩展字段域 <br>
extra 选项用于增加额外的条目: f表示为每个文件增加一个条目, q为每个类增加一个条目</p>
<p>【使用方法】</p>
<p>在vim打开源码时,指定tags文件,才可正常使用,通常手动指定,在vim命令行输入: <br>
<code>:set tags=./tags</code> (当前路径下的tags文件) <br>
若要引用多个不同目录的tags文件,可以用逗号隔开</p>
<p>或者,设置 ~/.vimrc,加入一行,则不用手动设置tags路径: <br>
set tags=~/path/tags</p>
<p>若要加入系统函数或全局变量的tag标签,则需执行: <br>
<code>ctags -I __THROW --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+px --fields=+S -f ~/.vim/systags -R /usr/include /usr/local/include *</code> <br>
并且在~/.vimrc中添加(亦可用上面描述的手动加入的方式): <br>
set tags+=~/.vim/systags <br>
这样,便可以享受系统库函数名补全、原型预览等功能了。</p>
<p>如果经常在不同工程里查阅代码,那么可以在~/.vimrc中添加: <br>
set tags=tags; <br>
set autochdir</p>
<p>设置好了tags文件,在定位变量/函数的定义时,最常用的快捷键是: <br>
Ctrl + ] <br>
跳转到变量或函数的定义处,或者用命令 <br>
:ta name <br>
而使用快捷组合键 <br>
Ctrl + o/t <br>
返回到跳转前的位置。</p>
<p>另外,ctags不会生成局部变量的索引,不过可以使用gd组合键(对光标所在处的word进行快捷查找定位)来定位,也是相当快捷的。</p>
<p>$ vim -t myAdd <br>
用vim打开文件时,添加参数-t funcName会自动打开定义该函数的文件并定位到定义首行,上面这句就是找到myAdd定义的文件打开并将光标置于定义的第一行处。</p>
<p>:tags <br>
会列出查找/跳转过程(经过的标签列表)</p>
<p>另外,附上vim环境中其他较为好用的快捷键: <br>
* 定位至当前光光标所指单词的下一次出现的地方 <br>
# 定位至当前光光标所指单词的上一次出现的地方 <br>
n 定位至跳至已被标记出的单词下一次出现的地方 <br>
shift+n 定位至跳至已被标记出的单词上一次出现的地方</p>
<p>关于更详细的ctags用法,vim中使用 <br>
:help tags</p>
<h3 id="taglist"><a name="t5"></a>taglist</h3>
<p>【功能】 <br>
a source code browser(supports C/C++, <a href="http://lib.csdn.net/base/javase" class="replace_word" title="Java SE知识库" target="_blank" style="color:#df3434; font-weight:bold;">Java</a>, perl, <a href="http://lib.csdn.net/base/python" class="replace_word" title="Python知识库" target="_blank" style="color:#df3434; font-weight:bold;">Python</a>, tcl, sql, <a href="http://lib.csdn.net/base/php" class="replace_word" title="PHP知识库" target="_blank" style="color:#df3434; font-weight:bold;">PHP</a>, etc): 提供了源码的结构化浏览功能,可将源码中定义的类、函数、变量等以树结构显示,层次关系可一目了然,而且于快速定位并查看。</p>
<p>【下载安装】 <br>
taglist插件是以vim脚本的形式存在,因此只需要将其下载下来放到相应的目录即可。taglist基于ctags才能发挥作用,因此在使用taglist之前,确保已经安装了ctags。</p>
<p>下载地址(两个可选择任意一个): <br>
Official site <a href="http://vim-taglist.sourceforge.net/">http://vim-taglist.sourceforge.net/</a> <br>
VIM online <a href="http://www.vim.org/scripts/script.php?script_id=273">http://www.vim.org/scripts/script.php?script_id=273</a></p>
<p>将文件放到<strong>/usr/share/vim/vim74</strong>对应的文件夹下即可</p>
<p>在vim配置文件中配置taglist选项:</p>
<pre class="prettyprint" name="code"><code class="hljs lasso has-numbering"><span class="hljs-string">"如果ctags不在Path路径下,则配置ctags的路径
if MySys() == "</span>windows<span class="hljs-string">"
let Tlist_Ctags_Cmd = 'ctags'
elseif MySys() == "</span>linux<span class="hljs-string">"
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
let Tlist_Show_One_File = 1 "</span>不同时显示多个文件的<span class="hljs-built_in">tag</span>,只显示当前文件的
<span class="hljs-keyword">let</span> Tlist_Exit_OnlyWindow <span class="hljs-subst">=</span> <span class="hljs-number">1</span> <span class="hljs-string">"如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 "</span>在右侧窗口中显示taglist窗口
<span class="hljs-keyword">let</span> Tlist_Sort_Type <span class="hljs-subst">=</span> <span class="hljs-string">"name"</span> <span class="hljs-string">"taglist以tag名字进行排序,缺省是按tag在文件中出现的顺序进行排序
let Tlist_Use_SingleClick = 1 "</span>设置单击<span class="hljs-built_in">tag</span>就跳转到定义处,确实双击
<span class="hljs-keyword">let</span> Tlist_Auto_Open<span class="hljs-subst">=</span><span class="hljs-number">1</span> <span class="hljs-string">"启动vim自动打开taglist窗口
let Tlist_Close_On_Select=1 "</span>在选择了<span class="hljs-built_in">tag</span>后自动关闭taglist窗口
<span class="hljs-keyword">let</span> Tlist_File_Fold_Auto_Close<span class="hljs-subst">=</span><span class="hljs-number">1</span> <span class="hljs-string">"当同时显示多个文件中的tag时,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。
let Tlist_GainFocus_On_ToggleOpen=1"</span>在使用:TlistToggle打开taglist窗口时,输入焦点在taglist窗口中
<span class="hljs-keyword">let</span> Tlist_Process_File_Always<span class="hljs-subst">=</span><span class="hljs-number">1</span> <span class="hljs-string">"taglist始终解析文件中的tag,不管taglist窗口有没有打开
let Tlist_Use_Horiz_Window = 1 "</span>设置taglist窗口横向显示
<span class="hljs-string">" Tlist_WinHeight和Tlist_WinWidth可以设置taglist窗口的高度和宽度</span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li></ul></pre>
<p>在taglist窗口中可以使用的快捷键:</p>
<table>
<thead>
<tr>
<th align="left">快捷键</th>
<th>功能说明</th>
</tr>
</thead>
<tbody><tr>
<td align="left">CR</td>
<td>跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样</td>
</tr>
<tr>
<td align="left">o</td>
<td>在一个新打开的窗口中显示光标下tag</td>
</tr>
<tr>
<td align="left">Space</td>
<td>显示光标下tag的原型定义</td>
</tr>
<tr>
<td align="left">u</td>
<td>更新taglist窗口中的tag</td>
</tr>
<tr>
<td align="left">s</td>
<td>更改排序方式,在按名字排序和按出现顺序排序间切换</td>
</tr>
<tr>
<td align="left">x</td>
<td>taglist窗口放大和缩小,方便查看较长的tag</td>
</tr>
<tr>
<td align="left">+</td>
<td>打开一个折叠,同zo</td>
</tr>
<tr>
<td align="left">-</td>
<td>将tag折叠起来,同zc</td>
</tr>
<tr>
<td align="left">*</td>
<td>打开所有的折叠,同zR</td>
</tr>
<tr>
<td align="left">=</td>
<td>将所有tag折叠起来,同zM</td>
</tr>
<tr>
<td align="left">[[</td>
<td>跳到前一个文件</td>
</tr>
<tr>
<td align="left">]]</td>
<td>跳到后一个文件</td>
</tr>
<tr>
<td align="left">q</td>
<td>关闭taglist窗口</td>
</tr>
<tr>
<td align="left">F1</td>
<td>显示帮助</td>
</tr>
</tbody></table>
<h3 id="cscope"><a name="t6"></a>cscope</h3>
<ul>
<li>安装: <code>yum install -y cscope</code></li>
</ul>
<h2 id="配置文件语法介绍"><a name="t7"></a>配置文件语法介绍</h2>
<h3 id="快捷键映射"><a name="t8"></a>快捷键映射</h3>
<p>【vim模式】 <br>
Vim的模式众多,但是一般被提及的也就是这么几种:</p>
<ul>
<li><p><strong>Normal Mode</strong> <br>
也就是最一般的普通模式,默认进入vim之后,处于这种模式。</p></li>
<li><p><strong>Visual Mode</strong> <br>
一般译作可视模式,在这种模式下选定一些字符、行、多列。 <br>
在普通模式下,可以按v进入。</p></li>
<li><p><strong>Insert Mode</strong> <br>
插入模式,其实就是指处在编辑输入的状态。普通模式下,可以按i进入。</p></li>
<li><p><strong>Select Mode</strong> <br>
在gvim下常用的模式,可以叫作选择模式吧。用鼠标拖选区域的时候,就进入了选择模式。 <br>
和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。 <br>
和windows下的编辑器选定编辑的效果一致。普通模式下,可以按gh进入。</p></li>
<li><p><strong>Command-Line/Ex Mode</strong> <br>
就叫命令行模式和Ex模式吧。两者略有不同,普通模式下按冒号(:)进入Command-Line模式,可以输入各种命令, <br>
使用vim的各种强大功能。普通模式下按Q进入Ex模式,其实就是多行的Command-Line模式。</p></li>
</ul>
<p>【Map基本概念】</p>
<p>命令的组合 <br>
同Vim下的其他命令一样,命令的名字往往由好几段组成。前缀作为命令本身的修饰符,微调命令的效果。 <br>
对于map而言,可能有这么几种前缀</p>
<ul>
<li>nore <br>
表示非递归,见下面的介绍</li>
<li>n <br>
表示在普通模式下生效</li>
<li>v <br>
表示在可视模式下生效</li>
<li>i <br>
表示在插入模式下生效</li>
<li>c <br>
表示在命令行模式下生效</li>
</ul>
<p>【快捷键映射实例】</p>
<p>右括号自动补全:</p>
<ul>
<li><code>inoremap ( ()<ESC>i</code></li>
<li><code>inoremap [ []<ESC>i</code></li>
<li><code>inoremap { {}<ESC>i<CR><ESC><S-o></code></li>
<li><code>inoremap < <><ESC>i</code></li>
<li><code>inoremap " ""<ESC>i</code></li>
<li><code>inoremap ' ''<ESC>i</code></li>
</ul>
<h2 id="参考"><a name="t9"></a>参考</h2>
<ul>
<li><a href="http://blog.sina.com.cn/s/blog_76e7bdba01017gap.html">Vim 的补全模式加速器,轻松玩转全部 15 种自动补全模式 </a></li>
<li><a href="http://cscope.sourceforge.net/">http://cscope.sourceforge.net/</a></li>
<li><a href="http://ctags.sourceforge.net/">http://ctags.sourceforge.net/</a></li>
<li><a href="http://blog.csdn.net/g_brightboy/article/details/16830395">vim插件ctags的安装和使用</a></li>
<li><a href="http://blog.csdn.net/G_BrightBoy/article/details/16843899">vim插件taglist的安装和使用</a></li>
<li><a href="http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html">强大的vim配置文件,让编程更随意</a></li>
</ul></div>
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul></ul>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li></li>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
</div>
<!-- Baidu Button BEGIN -->
<div class="bdsharebuttonbox tracking-ad bdshare-button-style0-16" style="float: right;" data-mod="popu_172" data-bd-bind="1490414771430">
<a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important" target="_blank"></a>
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important" target="_blank"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博" style="background-position:0 -104px !important" target="_blank"></a>
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博" style="background-position:0 -260px !important" target="_blank"></a>
<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网" style="background-position:0 -208px !important" target="_blank"></a>
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信" style="background-position:0 -1612px !important" target="_blank"></a>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<!-- Baidu Button END -->
<link rel="stylesheet" href="http://static.blog.csdn.net/css/blog_detail.css">
<!--172.16.140.14-->
<!-- Baidu Button BEGIN -->
<script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" src="http://bdimg.share.baidu.com/static/js/bds_s_v2.js?cdnversion=414005"></script>
<script type="text/javascript">
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
</script>
<!-- Baidu Button END -->
<div id="digg" articleid="51868170">
<dl id="btnDigg" class="digg digg_enable" οnclick="btndigga();">
<dt>顶</dt>
<dd>0</dd>
</dl>
<dl id="btnBury" class="digg digg_enable" οnclick="btnburya();">
<dt>踩</dt>
<dd>0</dd>
</dl>
</div>
<div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank"> </a> </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank"> </a></div>
<script type="text/javascript">
function btndigga() {
$(".tracking-ad[data-mod='popu_222'] a").click();
}
function btnburya() {
$(".tracking-ad[data-mod='popu_223'] a").click();
}
</script>
<ul class="article_next_prev">
<li class="prev_article"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/callinglove/article/details/51812515';">上一篇</span><a href="/callinglove/article/details/51812515" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">VS2013使用技巧</a></li>
<li class="next_article"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/callinglove/article/details/65633781';">下一篇</span><a href="/callinglove/article/details/65633781" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">内核编程之Hello_kernel</a></li>
</ul>
<div style="clear:both; height:10px;"></div>
<div class="similar_article" style="">
<h4>我的同类文章</h4>
<div class="similar_c" style="margin:20px 0px 0px 0px">
<div class="similar_c_t">
<label class="similar_cur">
<span style="cursor:pointer" οnclick="GetCategoryArticles('2616885','callinglove','foot','51868170');">开发环境搭建<em>(11)</em></span>
</label>
</div>
<div class="similar_wrap tracking-ad" data-mod="popu_141" style="max-height:195px;">
<a href="http://blog.csdn.net" style="display:none" target="_blank">http://blog.csdn.net</a>
<ul class="similar_list fl"><li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/51812515" id="foot_aritcle_51812515undefined4348216119024457" target="_blank" title="VS2013使用技巧">VS2013使用技巧</a><span>2016-07-02</span><label><i>阅读</i><b>301</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/50720721" id="foot_aritcle_50720721undefined6631740970849644" target="_blank" title="eclipse--android开发环境搭建教程">eclipse--android开发环境搭建教程</a><span>2016-02-23</span><label><i>阅读</i><b>985</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/46933991" id="foot_aritcle_46933991undefined12840797561846107" target="_blank" title="CentOS7开发环境搭建">CentOS7开发环境搭建</a><span>2015-07-17</span><label><i>阅读</i><b>3295</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/39855305" id="foot_aritcle_39855305undefined9687036824142381" target="_blank" title="cygwin开发环境搭建与apt-cyg的应用">cygwin开发环境搭建与apt-cyg的应用</a><span>2014-10-07</span><label><i>阅读</i><b>16056</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/8782220" id="foot_aritcle_8782220undefined035964213064615835" target="_blank" title="ubuntu一些配置">ubuntu一些配置</a><span>2013-04-10</span><label><i>阅读</i><b>648</b></label></li> </ul>
<ul class="similar_list fr"><li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/51287686" id="foot_aritcle_51287686undefined02471801016642461" target="_blank" title="Ubuntu开发环境搭建">Ubuntu开发环境搭建</a><span>2016-04-30</span><label><i>阅读</i><b>260</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/48601775" id="foot_aritcle_48601775undefined3187943863324454" target="_blank" title="MSYS2开发环境搭建">MSYS2开发环境搭建</a><span>2015-09-20</span><label><i>阅读</i><b>8055</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/39925007" id="foot_aritcle_39925007undefined9024330932497677" target="_blank" title="CentOS下升级python版本">CentOS下升级python版本</a><span>2014-10-09</span><label><i>阅读</i><b>1836</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/38947661" id="foot_aritcle_38947661undefined5429717279553208" target="_blank" title="Linux下ARM开发环境搭建">Linux下ARM开发环境搭建</a><span>2014-08-30</span><label><i>阅读</i><b>5055</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/8316837" id="foot_aritcle_8316837undefined5097154837071967" target="_blank" title="在window下使用linux工具">在window下使用linux工具</a><span>2012-12-18</span><label><i>阅读</i><b>788</b></label></li> </ul>
<a href="http://blog.csdn.net/callinglove/article/category/2616885" class="MoreArticle">更多文章</a></div>
</div>
</div>
<script type="text/javascript">
$(function () {
GetCategoryArticles('2616885', 'callinglove','foot','51868170');
});
</script>
</div>
<div>
<div class="J_adv" data-view="true" data-mod="ad_popu_206" data-mtp="43" data-order="114" data-con="ad_content_1901" style="width: 960px; height: 90px;"><script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:inline-block;width:960px;height:90px" data-ad-client="ca-pub-8990951720398508" data-ad-slot="8267689356/3776917242" data-adsbygoogle-status="done"><ins id="aswift_0_expand" style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:960px;background-color:transparent"><ins id="aswift_0_anchor" style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:960px;background-color:transparent"><iframe width="960" height="90" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" οnlοad="var i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;"></iframe></ins></ins></ins><script>(adsbygoogle=window.adsbygoogle || []).push({});</script></div>
</div>
<div id="suggest">
</div>
<script language="javascript" type="text/javascript">
$(function(){
$.get("/callinglove/svc/GetSuggestContent/51868170",function(data){
$("#suggest").html(data);
});
});
</script>
<style>
.blog-ass-articl dd {
color: #369;
width: 99%; /*修改行*/
float: left;
overflow: hidden;
font: normal normal 12px/23px "SimSun";
height: 23px;
margin: 0;
padding: 0 0 0 10px;
margin-right: 30px;
background: url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;
}
</style>
<link rel="stylesheet" href="http://static.blog.csdn.net/css/replace.css">
<div id="relate" data-mod="popu_218" class="tracking-ad" style="display: block;">
<div class="relate_t">
<h3><span>参考知识库</span></h3>
</div>
<div class="relate_c"><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/python"><img src="http://img.knowledge.csdn.net/upload/base/1452500783406_406.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/python">Python知识库</a></h4><p><label><span>21821</span><em>关注</em><i>|</i><span>1345</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/php"><img src="http://img.knowledge.csdn.net/upload/base/1463455906707_707.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/php">PHP知识库</a></h4><p><label><span>6259</span><em>关注</em><i>|</i><span>909</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/dotnet"><img src="http://img.knowledge.csdn.net/upload/base/1470876331285_285.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/dotnet">.NET知识库</a></h4><p><label><span>3500</span><em>关注</em><i>|</i><span>827</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/linux"><img src="http://img.knowledge.csdn.net/upload/base/1468390230134_134.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/linux">Linux知识库</a></h4><p><label><span>11007</span><em>关注</em><i>|</i><span>3803</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/c"><img src="http://img.knowledge.csdn.net/upload/base/1466132253931_931.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/c">C语言知识库</a></h4><p><label><span>8270</span><em>关注</em><i>|</i><span>3455</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/javase"><img src="http://img.knowledge.csdn.net/upload/base/1453169124297_297.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/javase">Java SE知识库</a></h4><p><label><span>24921</span><em>关注</em><i>|</i><span>477</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/javaee"><img src="http://img.knowledge.csdn.net/upload/base/1456818035722_722.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/javaee">Java EE知识库</a></h4><p><label><span>16774</span><em>关注</em><i>|</i><span>1265</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/java"><img src="http://img.knowledge.csdn.net/upload/base/1453701371636_636.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/java">Java 知识库</a></h4><p><label><span>24513</span><em>关注</em><i>|</i><span>1456</span><em>收录</em></label></p></dd></dl></div>
</div>
<dl class="blog-ass-articl" id="res-relatived">
<div class="embody embody_b" id="libkeyparent" style="display:none">
<span class="embody_t">更多资料请参考:</span>
<div class="embody_c" id="libkey"></div>
</div>
<dt><span>猜你在找</span></dt>
<div id="adCollege" style="width: 42%;float: left;">
<script src="http://csdnimg.cn/jobreco/job_reco.js" type="text/javascript"></script>
<script type="text/javascript">
csdn.position.showEdu({
sourceType: "blog",
searchType: "detail",
searchKey: "51868170",
username: "searcht",
recordcount: "5",
containerId: "adCollege" //容器DIV的id。
});
setEduLoc();
function setEduLoc() {
var edus = $("#adCollege div dd a");
if (edus.length == 0) {
setTimeout(function () {
setEduLoc();
}, 500);
}
else {
var eduLoc = "?ref=blog&loc=0";
$.each(edus, function (index,item) {
var href = $(this).attr("href") + eduLoc;
$(this).attr("href", href);
});
}
}
</script>
<div class="tracking-ad" data-mod="popu_84"><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/2384?ref=blog&loc=0" title="Swift与Objective-C\C\C++混合编程" strategy="v4:content" target="_blank">Swift与Objective-C\C\C++混合编程</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/1353?ref=blog&loc=0" title="《C语言/C++学习指南》Linux开发篇" strategy="v4:content" target="_blank">《C语言/C++学习指南》Linux开发篇</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/3738?ref=blog&loc=0" title="零基础学会在Linux上编译调试C++项目" strategy="v4:content" target="_blank">零基础学会在Linux上编译调试C++项目</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/2570?ref=blog&loc=0" title="Visual Studio 2015开发C++程序的基本使用" strategy="v4:content" target="_blank">Visual Studio 2015开发C++程序的基本使用</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/1865?ref=blog&loc=0" title="C++ DirectX 游戏开发初级教程" strategy="v4:content" target="_blank">C++ DirectX 游戏开发初级教程</a></dd></div></div>
<div id="res" data-mod="popu_36" class="tracking-ad" style="width: 42%; float: left; margin-right: 30px; display: block;"><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/Geepai/article/details/46608959" title="Linux vim 使用总结" strategy="SearchAlgorithm" target="_blank">Linux vim 使用总结</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/jiutianhe/article/details/8039993" title="Vim使用总结" strategy="SearchAlgorithm" target="_blank">Vim使用总结</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/prien/article/details/5373054" title="VIM使用总结" strategy="SearchAlgorithm" target="_blank">VIM使用总结</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/ZongYinHu/article/details/49048493" title="Linuxvim中高频使用指令总结---使vim用起来更加得心应手" strategy="SearchAlgorithm" target="_blank">Linuxvim中高频使用指令总结---使vim用起来更加得心应手</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/maturn/article/details/6125423" title="VIM使用--总结自己常用的VIM操作" strategy="SearchAlgorithm" target="_blank">VIM使用--总结自己常用的VIM操作</a></dd></div>
</dl>
<script type="text/javascript">
$(function () {
setTimeout(function () {
var searchtitletags = 'vim使用总结' + ',' + $("#tags").html();
searchService({
index: 'blog',
query: searchtitletags,
from: 5,
size: 5,
appendTo: '#res',
url: 'recommend',
his: 2,
client: "blog_cf_enhance",
tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>'
});
}, 500);
});
</script>
<div id="ad_cen">
<div class="J_adv" data-view="true" data-mod="ad_popu_199" data-mtp="43" data-order="114" data-con="ad_content_1843" style="width: 960px; height: 90px;"><script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:inline-block;width:960px;height:90px" data-ad-client="ca-pub-8990951720398508" data-ad-slot="8267689356/3115746762" data-adsbygoogle-status="done"><ins id="aswift_1_expand" style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:960px;background-color:transparent"><ins id="aswift_1_anchor" style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:960px;background-color:transparent"><iframe width="960" height="90" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" οnlοad="var i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_1" name="aswift_1" style="left:0;position:absolute;top:0;"></iframe></ins></ins></ins><script>(adsbygoogle=window.adsbygoogle || []).push({});</script></div>
</div>
<!-- 广告位开始 -->
<div class="J_adv" data-view="true" data-mod="ad_popu_72" data-mtp="62" data-order="40" data-con="ad_content_2072"><script id="popuLayer_js_q" src="http://ads.csdn.net/js/popuLayer.js" defer="" type="text/javascript"></script><div id="layerd" style="position: fixed; bottom: 0px; right: 0px; line-height: 0px; z-index: 1000; width: 300px; height: 278px;"><div class="J_close layer_close" style="display:;background-color:#efefef;padding:0px;color:#333;font:12px/24px Helvetica,Tahoma,Arial,sans-serif;text-align:right;">关闭</div><!-- 广告占位容器 --><div id="cpro_u2895327"><iframe id="iframeu2895327_0" src="http://pos.baidu.com/scym?rdid=2895327&dc=3&di=u2895327&dri=0&dis=0&dai=1&ps=666x1603&dcb=___adblockplus&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1490414771305&ti=vim%E4%BD%BF%E7%94%A8%E6%80%BB%E7%BB%93%20-%20%E4%B8%80%E6%AD%A5%E4%B8%80%E8%84%9A%E5%8D%B0%20-%20%E5%8D%9A%E5%AE%A2%E9%A2%91%E9%81%93%20-%20CSDN.NET&ari=2&dbv=2&drs=3&pcs=1903x920&pss=1903x12405&cfv=0&cpl=15&chi=1&cce=true&cec=UTF-8&tlm=1490414771&rw=920&ltu=http%3A%2F%2Fblog.csdn.net%2Fcallinglove%2Farticle%2Fdetails%2F51868170%3FlocationNum%3D2%26fps%3D1&ltr=http%3A%2F%2Fso.csdn.net%2Fso%2Fsearch%2Fs.do%3Fref%3Dtoolbar%26q%3Dvim%26ref%3Dtoolbar%26q%3Dvim&ecd=1&uc=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=33&col=zh-CN&cdo=-1&sr=1920x1080&tcn=1490414771&qn=ce6237da04d9b49b&tt=1490414771290.18.18.20" width="300" height="250" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="border:0;vertical-align:bottom;margin:0;width:300px;height:250px" allowtransparency="true"></iframe></div></div><script> document.getElementById('popuLayer_js_q').οnlοad=function(){ var styObjd=styObj={width:'300px','height':parseInt(250)+28};window.CSDN.Layer.PopuLayer('#layerd',{storageName:'layerd',styleObj:styObjd,total:50,expoire:1000*60}); }</script><!-- 投放代码 --><script type="text/javascript"> /*服务器频道首页置顶Banner960*90,创建于2014-7-3*/ (window.cproArray = window.cproArray || []).push({ id: 'u2895327' }); </script> <script src="http://cpro.baidustatic.com/cpro/ui/c.js" type="text/javascript"></script></div>
<!-- 广告位结束 -->
<div class="comment_class">
<div id="comment_title" class="panel_head">
<span class="see_comment">查看评论</span><a name="comments"></a></div>
<div id="comment_list"><br> 暂无评论<br><br><div class="clear"></div></div>
<div id="comment_bar">
</div>
<div id="comment_form"><a name="commentbox"></a><a name="reply"></a><a name="quote"></a><form action="/callinglove/comment/submit?id=51868170" method="post" οnsubmit="return subform(this);"><div class="commentform"><div class="panel_head">发表评论</div><ul><li class="left">用 户 名:</li><li class="right">searcht</li></ul><ul><li class="left">评论内容:</li><li class="right" style="position:relative;"><div id="ubbtools"><a href="#insertcode" code="code"><img src="http://static.blog.csdn.net/images/ubb/code.gif" border="0" alt="插入代码" title="插入代码"></a></div><div id="lang_list" style="position: absolute; top: 28px; left: 0px; display: none;"><a class="long_name" href="#html">HTML/XML</a><a class="long_name" href="#objc">objective-c</a><a class="zhong_name" href="#delphi">Delphi</a><a class="zhong_name" href="#ruby">Ruby</a><a href="#php">PHP</a><a class="duan_name" href="#csharp">C#</a><a style=" border-right: none;" class="duan_name" href="#cpp">C++</a><a style=" border-bottom:none;" class="long_name" href="#javascript">JavaScript</a><a style=" border-bottom:none;" class="long_name" href="#vb">Visual Basic</a><a style=" border-bottom:none;" class="zhong_name" href="#python">Python</a><a style=" border-bottom:none;" class="zhong_name" href="#java">Java</a><a style="border-bottom:none;" class="duan_name" href="#css">CSS</a><a style="border-bottom:none;" class="duan_name" href="#sql">SQL</a><a style="border:none;" class="duan_name" href="#plain">其它</a></div><textarea class="comment_content" name="comment_content" id="comment_content" style="width: 400px; height: 200px;"></textarea></li></ul><ul><input type="hidden" id="comment_replyId" name="comment_replyId"><input type="hidden" id="comment_userId" name="comment_userId" value="521203"><input type="hidden" id="commentId" name="commentId" value=""><input type="submit" class="comment_btn" value="提交"> <span id="tip_comment" style="color: Red; display: none;"></span></ul></div></form></div>
<div class="announce">
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场<a name="reply"></a><a name="quote"></a></div>
</div>
<script type="text/javascript">
var fileName = '51868170';
var commentscount = 0;
var islock = false
</script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/comment.js"></script>
<div id="ad_bot">
</div>
<div id="report_dialog">
</div>
<div id="d-top" style="bottom:60px;">
<a id="quick-reply" class="btn btn-top q-reply" title="快速回复" style="display:none;">
<img src="http://static.blog.csdn.net/images/blog-icon-reply.png" alt="快速回复">
</a>
<a id="d-top-a" class="btn btn-top backtop" style="display: none;" title="返回顶部" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_huidaodingbu'])">
<img src="http://static.blog.csdn.net/images/top.png" alt="TOP">
</a>
</div>
<script type="text/javascript">
$(function ()
{
$("#ad_frm_0").height("90px");
setTimeout(function(){
$("#ad_frm_2").height("200px");
},1000);
});
</script>
<style type="text/css">
.tag_list
{
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #D7CBC1;
color: #000000;
font-size: 12px;
line-height: 20px;
list-style: none outside none;
margin: 10px 2% 0 1%;
padding: 1px;
}
.tag_list h5
{
background: none repeat scroll 0 0 #E0DBD3;
color: #47381C;
font-size: 12px;
height: 24px;
line-height: 24px;
padding: 0 5px;
margin: 0;
}
.tag_list h5 a
{
color: #47381C;
}
.classify
{
margin: 10px 0;
padding: 4px 12px 8px;
}
.classify a
{
margin-right: 20px;
white-space: nowrap;
}
</style>
<div class="tag_list" style="">
<h5>
<a href="http://www.csdn.net/tag/" target="_blank">核心技术类目</a></h5>
<div class="classify">
<a title="全部主题" href="http://www.csdn.net/tag" target="_blank" οnclick="LogClickCount(this,336);">全部主题</a>
<a title="Hadoop" href="http://g.csdn.net/5272865" target="_blank" οnclick="LogClickCount(this,336);">Hadoop</a>
<a title="AWS" href="http://g.csdn.net/5272866" target="_blank" οnclick="LogClickCount(this,336);">AWS</a>
<a title="移动游戏" href="http://g.csdn.net/5272870" target="_blank" οnclick="LogClickCount(this,336);">移动游戏</a>
<a title="Java" href="http://g.csdn.net/5272871" target="_blank" οnclick="LogClickCount(this,336);">Java</a>
<a title="Android" href="http://g.csdn.net/5272872" target="_blank" οnclick="LogClickCount(this,336);">Android</a>
<a title="iOS" href="http://g.csdn.net/5272873" target="_blank" οnclick="LogClickCount(this,336);">iOS</a>
<a title="Swift" href="http://g.csdn.net/5272868" target="_blank" οnclick="LogClickCount(this,336);">Swift</a>
<a title="智能硬件" href="http://g.csdn.net/5272869" target="_blank" οnclick="LogClickCount(this,336);">智能硬件</a>
<a title="Docker" href="http://g.csdn.net/5272867" target="_blank" οnclick="LogClickCount(this,336);">Docker</a>
<a title="OpenStack" href="http://g.csdn.net/5272925" target="_blank" οnclick="LogClickCount(this,336);">OpenStack</a>
<a title="VPN" href="http://www.csdn.net/tag/vpn" target="_blank" οnclick="LogClickCount(this,336);">VPN</a>
<a title="Spark" href="http://g.csdn.net/5272924" target="_blank" οnclick="LogClickCount(this,336);">Spark</a>
<a title="ERP" href="http://www.csdn.net/tag/erp" target="_blank" οnclick="LogClickCount(this,336);">ERP</a>
<a title="IE10" href="http://www.csdn.net/tag/ie10" target="_blank" οnclick="LogClickCount(this,336);">IE10</a>
<a title="Eclipse" href="http://www.csdn.net/tag/eclipse" target="_blank" οnclick="LogClickCount(this,336);">Eclipse</a>
<a title="CRM" href="http://www.csdn.net/tag/crm" target="_blank" οnclick="LogClickCount(this,336);">CRM</a>
<a title="JavaScript" href="http://www.csdn.net/tag/javascript" target="_blank" οnclick="LogClickCount(this,336);">JavaScript</a>
<a title="数据库" href="http://www.csdn.net/tag/数据库" target="_blank" οnclick="LogClickCount(this,336);">数据库</a>
<a title="Ubuntu" href="http://www.csdn.net/tag/ubuntu" target="_blank" οnclick="LogClickCount(this,336);">Ubuntu</a>
<a title="NFC" href="http://www.csdn.net/tag/nfc" target="_blank" οnclick="LogClickCount(this,336);">NFC</a>
<a title="WAP" href="http://www.csdn.net/tag/wap" target="_blank" οnclick="LogClickCount(this,336);">WAP</a>
<a title="jQuery" href="http://www.csdn.net/tag/jquery" target="_blank" οnclick="LogClickCount(this,336);">jQuery</a>
<a title="BI" href="http://www.csdn.net/tag/bi" target="_blank" οnclick="LogClickCount(this,336);">BI</a>
<a title="HTML5" href="http://www.csdn.net/tag/html5" target="_blank" οnclick="LogClickCount(this,336);">HTML5</a>
<a title="Spring" href="http://www.csdn.net/tag/spring" target="_blank" οnclick="LogClickCount(this,336);">Spring</a>
<a title="Apache" href="http://www.csdn.net/tag/apache" target="_blank" οnclick="LogClickCount(this,336);">Apache</a>
<a title=".NET" href="http://www.csdn.net/tag/.net" target="_blank" οnclick="LogClickCount(this,336);">.NET</a>
<a title="API" href="http://www.csdn.net/tag/api" target="_blank" οnclick="LogClickCount(this,336);">API</a>
<a title="HTML" href="http://www.csdn.net/tag/html" target="_blank" οnclick="LogClickCount(this,336);">HTML</a>
<a title="SDK" href="http://www.csdn.net/tag/sdk" target="_blank" οnclick="LogClickCount(this,336);">SDK</a>
<a title="IIS" href="http://www.csdn.net/tag/iis" target="_blank" οnclick="LogClickCount(this,336);">IIS</a>
<a title="Fedora" href="http://www.csdn.net/tag/fedora" target="_blank" οnclick="LogClickCount(this,336);">Fedora</a>
<a title="XML" href="http://www.csdn.net/tag/xml" target="_blank" οnclick="LogClickCount(this,336);">XML</a>
<a title="LBS" href="http://www.csdn.net/tag/lbs" target="_blank" οnclick="LogClickCount(this,336);">LBS</a>
<a title="Unity" href="http://www.csdn.net/tag/unity" target="_blank" οnclick="LogClickCount(this,336);">Unity</a>
<a title="Splashtop" href="http://www.csdn.net/tag/splashtop" target="_blank" οnclick="LogClickCount(this,336);">Splashtop</a>
<a title="UML" href="http://www.csdn.net/tag/uml" target="_blank" οnclick="LogClickCount(this,336);">UML</a>
<a title="components" href="http://www.csdn.net/tag/components" target="_blank" οnclick="LogClickCount(this,336);">components</a>
<a title="Windows Mobile" href="http://www.csdn.net/tag/windowsmobile" target="_blank" οnclick="LogClickCount(this,336);">Windows Mobile</a>
<a title="Rails" href="http://www.csdn.net/tag/rails" target="_blank" οnclick="LogClickCount(this,336);">Rails</a>
<a title="QEMU" href="http://www.csdn.net/tag/qemu" target="_blank" οnclick="LogClickCount(this,336);">QEMU</a>
<a title="KDE" href="http://www.csdn.net/tag/kde" target="_blank" οnclick="LogClickCount(this,336);">KDE</a>
<a title="Cassandra" href="http://www.csdn.net/tag/cassandra" target="_blank" οnclick="LogClickCount(this,336);">Cassandra</a>
<a title="CloudStack" href="http://www.csdn.net/tag/cloudstack" target="_blank" οnclick="LogClickCount(this,336);">CloudStack</a>
<a title="FTC" href="http://www.csdn.net/tag/ftc" target="_blank" οnclick="LogClickCount(this,336);">FTC</a>
<a title="coremail" href="http://www.csdn.net/tag/coremail" target="_blank" οnclick="LogClickCount(this,336);">coremail</a>
<a title="OPhone " href="http://www.csdn.net/tag/ophone " target="_blank" οnclick="LogClickCount(this,336);">OPhone </a>
<a title="CouchBase" href="http://www.csdn.net/tag/couchbase" target="_blank" οnclick="LogClickCount(this,336);">CouchBase</a>
<a title="云计算" href="http://www.csdn.net/tag/云计算" target="_blank" οnclick="LogClickCount(this,336);">云计算</a>
<a title="iOS6" href="http://www.csdn.net/tag/iOS6" target="_blank" οnclick="LogClickCount(this,336);">iOS6</a>
<a title="Rackspace " href="http://www.csdn.net/tag/rackspace " target="_blank" οnclick="LogClickCount(this,336);">Rackspace </a>
<a title="Web App" href="http://www.csdn.net/tag/webapp" target="_blank" οnclick="LogClickCount(this,336);">Web App</a>
<a title="SpringSide" href="http://www.csdn.net/tag/springside" target="_blank" οnclick="LogClickCount(this,336);">SpringSide</a>
<a title="Maemo" href="http://www.csdn.net/tag/maemo" target="_blank" οnclick="LogClickCount(this,336);">Maemo</a>
<a title="Compuware" href="http://www.csdn.net/tag/compuware" target="_blank" οnclick="LogClickCount(this,336);">Compuware</a>
<a title="大数据" href="http://www.csdn.net/tag/大数据" target="_blank" οnclick="LogClickCount(this,336);">大数据</a>
<a title="aptech" href="http://www.csdn.net/tag/aptech" target="_blank" οnclick="LogClickCount(this,336);">aptech</a>
<a title="Perl" href="http://www.csdn.net/tag/perl" target="_blank" οnclick="LogClickCount(this,336);">Perl</a>
<a title="Tornado" href="http://www.csdn.net/tag/tornado" target="_blank" οnclick="LogClickCount(this,336);">Tornado</a>
<a title="Ruby" href="http://www.csdn.net/tag/ruby" target="_blank" οnclick="LogClickCount(this,336);">Ruby</a>
<a title="Hibernate" href="http://www.csdn.net/tag/hibernate" target="_blank" οnclick="LogClickCount(this,336);">Hibernate</a>
<a title="ThinkPHP" href="http://www.csdn.net/tag/thinkphp" target="_blank" οnclick="LogClickCount(this,336);">ThinkPHP</a>
<a title="HBase" href="http://www.csdn.net/tag/hbase" target="_blank" οnclick="LogClickCount(this,336);">HBase</a>
<a title="Pure" href="http://www.csdn.net/tag/pure" target="_blank" οnclick="LogClickCount(this,336);">Pure</a>
<a title="Solr" href="http://www.csdn.net/tag/solr" target="_blank" οnclick="LogClickCount(this,336);">Solr</a>
<a title="Angular" href="http://www.csdn.net/tag/angular" target="_blank" οnclick="LogClickCount(this,336);">Angular</a>
<a title="Cloud Foundry" href="http://www.csdn.net/tag/cloudfoundry" target="_blank" οnclick="LogClickCount(this,336);">Cloud Foundry</a>
<a title="Redis" href="http://www.csdn.net/tag/redis" target="_blank" οnclick="LogClickCount(this,336);">Redis</a>
<a title="Scala" href="http://www.csdn.net/tag/scala" target="_blank" οnclick="LogClickCount(this,336);">Scala</a>
<a title="Django" href="http://www.csdn.net/tag/django" target="_blank" οnclick="LogClickCount(this,336);">Django</a>
<a title="Bootstrap" href="http://www.csdn.net/tag/bootstrap" target="_blank" οnclick="LogClickCount(this,336);">Bootstrap</a>
</div>
</div>
<script language="javascript" type="text/javascript">
$(function(){
setTimeout(function(){
$.get("/callinglove/svc/GetTagContent",function(data){
$(".tag_list").html(data).show();
});
});
},500);
</script>
<div id="pop_win" style="display:none ;position: absolute; z-index: 10000; border: 1px solid rgb(220, 220, 220); top: 222.5px; left: 630px; opacity: 1; background: none 0px 0px repeat scroll rgb(255, 255, 255);">
</div>
<div id="popup_mask"></div>
<style>
#popup_mask
{
position: absolute;
width: 100%;
height: 100%;
background: #000;
z-index: 9999;
left: 0px;
top: 0px;
opacity: 0.3;
filter: alpha(opacity=30);
display: none;
}
</style>
<script type="text/javascript">
$(function(){
setTimeout(function(){
$(".comment_body:contains('回复')").each(function(index,item){
var u=$(this).text().split(':')[0].toString().replace("回复","")
var thisComment=$(this);
if(u)
{
$.getJSON("https://passport.csdn.net/get/nick?callback=?", {users: u}, function(a) {
if(a!=null&&a.data!=null&&a.data.length>0)
{
nick=a.data[0].n;
if(u!=nick)
{
thisComment.text(thisComment.text().replace(u,nick));
}
}
});
}
});
},200);
setTimeout(function(){
$(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
},5000);
setTimeout(function(){
$(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
},10000);
setTimeout(function(){
$(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
},15000);
setTimeout(function(){
$("a img[src='http://js.tongji.linezing.com/stats.gif']").parent().css({"position":"absolute","left":"50%"});
},300);
});
function loginbox(){
var $logpop=$("#pop_win");
$logpop.html('<iframe src="https://passport.csdn.net/account/loginbox?service=http://static.blog.csdn.net/callback.htm" frameborder="0" height="600" width="400" scrolling="no"></iframe>');
$('#popup_mask').css({
opacity: 0.5,
width: $( document ).width() + 'px',
height: $( document ).height() + 'px'
});
$('#popup_mask').css("display","block");
$logpop.css( {
top: ($( window ).height() - $logpop.height())/ 2 + $( window
).scrollTop() + 'px',
left:($( window ).width() - $logpop.width())/ 2
} );
setTimeout( function () {
$logpop.show();
$logpop.css( {
opacity: 1
} );
}, 200 );
$('#popup_mask').unbind("click");
$('#popup_mask').bind("click", function(){
$('#popup_mask').hide();
var $clopop = $("#pop_win");
$("#common_ask_div_sc").css("display","none");
$clopop.css( {
opacity: 0
} );
setTimeout( function () {
$clopop.hide();
}, 350 );
return false;
});
}
</script>
<script language="javascript" type="text/javascript" src="http://ads.csdn.net/js/async_new.js"></script>
<div class="clear">
</div>
</div>
</div>
<div class="main">
<div class="ad_class">
<div class="notice tracking-ad" data-mod="popu_3">
<a href="http://blog.csdn.net/blogdevteam/article/details/65629853" target="_blank">
<font color="blue">【CSDN 日报】| 2.17-3.17 上榜作者排行出炉 </font></a>
<a href="http://blog.csdn.net/blogdevteam/article/details/60961185" target="_blank">
<font color="red">同步博客至 CSDN ,让更多开发者看到你的文章
</font></a>
<a href="http://edu.csdn.net/huiyiCourse/series_detail/29?ref=blog&loc=r0" target="_blank">
<font color="blue">看微博技术大咖解析互联网应用架构实战
</font></a>
</div> </div>
<link href="http://static.blog.csdn.net/css/comment1.css" type="text/css" rel="stylesheet">
<link href="http://static.blog.csdn.net/css/style1.css" type="text/css" rel="stylesheet">
<script language="JavaScript" type="text/javascript" src="http://download.csdn.net/js/jquery.cookie.js"></script>
<script type="text/javascript" src="http://c.csdnimg.cn/rabbit/search-service/main.js"></script>
<link rel="stylesheet" href="http://static.blog.csdn.net/public/res-min/markdown_views.css?v=1.0">
<link rel="stylesheet" href="http://static.blog.csdn.net/css/category.css?v=1.0">
<script type="text/javascript" src="http://static.blog.csdn.net/public/res/bower-libs/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/web-storage-cache.min.js"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/replace.min.js"></script>
<script type="text/ecmascript">
window.quickReplyflag = true;
var isBole = false;
var fasrc="http://my.csdn.net/my/favorite/miniadd?t=vim%e4%bd%bf%e7%94%a8%e6%80%bb%e7%bb%93&u=http://blog.csdn.net/callinglove/article/details/51868170?locationNum=2&fps=1"
</script>
<div id="article_details" class="details">
<div class="article_title">
<span class="ico ico_type_Original"></span>
<h1>
<span class="link_title"><a href="/callinglove/article/details/51868170">
vim使用总结
</a></span>
</h1>
</div>
<div class="article_manage clearfix">
<div class="article_l">
<span class="link_categories">
标签:
<a href="http://www.csdn.net/tag/vim" target="_blank" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">vim</a><a href="http://www.csdn.net/tag/vim%e5%bf%ab%e6%8d%b7%e9%94%ae" target="_blank" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">vim快捷键</a><a href="http://www.csdn.net/tag/stags" target="_blank" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">stags</a>
</span>
</div>
<div class="article_r">
<span class="link_postdate">2016-07-09 19:32</span>
<span class="link_view" title="阅读次数">1335人阅读</span>
<span class="link_comments" title="评论次数"> <a href="#comments" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span>
<span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" οnclick="javascript:collectArticle('vim%e4%bd%bf%e7%94%a8%e6%80%bb%e7%bb%93','51868170');return false;" title="收藏" target="_blank">收藏</a></span>
<span class="link_report"> <a href="#report" οnclick="javascript:report(51868170,2);return false;" title="举报">举报</a></span>
</div>
</div>
<div class="embody" style="display:none" id="embody">
<span class="embody_t">本文章已收录于:</span>
<div class="embody_c" id="lib" value="{"err":0,"msg":"ok","data":[]}"></div>
</div>
<style type="text/css">
.embody{
padding:10px 10px 10px;
margin:0 -20px;
border-bottom:solid 1px #ededed;
}
.embody_b{
margin:0 ;
padding:10px 0;
}
.embody .embody_t,.embody .embody_c{
display: inline-block;
margin-right:10px;
}
.embody_t{
font-size: 12px;
color:#999;
}
.embody_c{
font-size: 12px;
}
.embody_c img,.embody_c em{
display: inline-block;
vertical-align: middle;
}
.embody_c img{
width:30px;
height:30px;
}
.embody_c em{
margin: 0 20px 0 10px;
color:#333;
font-style: normal;
}
</style>
<script type="text/javascript">
$(function () {
try
{
var lib = eval("("+$("#lib").attr("value")+")");
var html = "";
if (lib.err == 0) {
$.each(lib.data, function (i) {
var obj = lib.data[i];
//html += '<img src="' + obj.logo + '"/>' + obj.name + " ";
html += ' <a href="' + obj.url + '" target="_blank">';
html += ' <img src="' + obj.logo + '">';
html += ' <em><b>' + obj.name + '</b></em>';
html += ' </a>';
});
if (html != "") {
setTimeout(function () {
$("#lib").html(html);
$("#embody").show();
}, 100);
}
}
} catch (err)
{ }
});
</script>
<div class="category clearfix">
<div class="category_l">
<img src="http://static.blog.csdn.net/images/category_icon.jpg">
<span>分类:</span>
</div>
<div class="category_r">
<label οnclick="GetCategoryArticles('2616885','callinglove','top','51868170');">
<span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">开发环境搭建<em>(11)</em></span>
<img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
<img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
<div class="subItem">
<div class="subItem_t"><a href="http://blog.csdn.net/callinglove/article/category/2616885" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
<ul class="subItem_l" id="top_2616885">
</ul>
</div>
</label>
</div>
</div>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>
<div class="bog_copyright">
<p class="copyright_p">版权声明:本文为博主原创文章,转载请注明出处</p>
</div>
<div style="clear:both"></div><div style="border:solid 1px #ccc; background:#eee; float:left; min-width:200px;padding:4px 10px;"><p style="text-align:right;margin:0;"><span style="float:left;">目录<a href="#" title="系统根据文章中H1到H6标签自动生成文章目录">(?)</a></span><a href="#" οnclick="javascript:return openct(this);" title="展开">[+]</a></p><ol style="display:none;margin-left:14px;padding-left:14px;line-height:160%;"><li><a href="#t0">vim使用命令</a></li><li><a href="#t1">使用技巧</a></li><li><a href="#t2">vim配置文件使用</a></li><li><a href="#t3">vim插件的使用</a></li><ol><li><a href="#t4">ctags</a></li><li><a href="#t5">taglist</a></li><li><a href="#t6">cscope</a></li></ol><li><a href="#t7">配置文件语法介绍</a></li><ol><li><a href="#t8">快捷键映射</a></li></ol><li><a href="#t9">参考</a></li></ol></div><div style="clear:both"></div><div id="article_content" class="article_content">
<div class="markdown_views"><h2 id="vim使用命令"><a name="t0"></a>vim使用命令</h2>
<p>【自动补全操作】</p>
<ul>
<li>Ctrl + n / Ctrl + p 自动补全字符串</li>
<li>Ctrl +x Ctrl +f 自动补全文件名</li>
</ul>
<p>【多文件操作】 <br>
打开多个文件:</p>
<ul>
<li>vim file1 file2 … filen 在同一个窗口中打开所有想要打开的文件</li>
<li>vim -o file1 file2 … filen 打开一个编辑会话,水平分割窗口,一个文件占用一个窗口</li>
<li>vim -O file1 file2 … filen 打开一个编辑会话,垂直分割窗口,一个文件占用一个窗口</li>
<li>vim -o5 file1 file2 将水平分配5个相同的窗口,有3个是闲置的</li>
</ul>
<p>文件切换:</p>
<ul>
<li>:e file 在当前窗口载入显示file文件</li>
<li>:ls 显示打开的所有文件列表,带编号</li>
<li>:b1~n 切换至第n个文件</li>
<li>:bn 下一个文件</li>
<li>:bp 上一个文件</li>
<li>Ctrl+6 两文件间的切换</li>
</ul>
<p>【多窗口操作】 <br>
切割窗口操作:</p>
<ul>
<li>:sp(lit) 水平切割窗口</li>
<li>:vsp(list) 垂直切割窗口</li>
<li>:qa(ll) 关闭所有窗口</li>
</ul>
<p>默认新建立的窗口显示相同的文件,可以通过以下命令显示不同的文件: <br>
:[n] split(vsplit) [++opt] [+cmd] [file]</p>
<p>多窗口切换:</p>
<p>按住Ctrl + W,然后再加上h, j, k, l,分别表示向左、下、上、右移动窗口,也可以使用上、下、左、右键</p>
<ul>
<li>Ctrl + w + h:向左移动窗口</li>
<li>Ctrl + w + j: 向下移动窗口</li>
<li>Ctrl + w + j: 向上移动窗口</li>
<li><p>Ctrl + w + l: 向右移动窗口</p></li>
<li><p>Ctrl + w + w:这个命令会在所有窗口中循环移动</p></li>
<li>Ctrl + w + t:移动到最左上角的窗口</li>
<li>Ctrl + w + b:移动到最右下角的窗口</li>
<li>Ctrl + w + p:移动到前一个访问的窗口</li>
</ul>
<p>【调整窗口大小】</p>
<p>改变当前窗口的尺寸,同时当然也会影响到其他窗口。 <br>
在gvim和vim中,可以用鼠标点击窗口的顶部白色条并窗口直接调整尺寸。</p>
<p>也可以直接用命令,调整尺寸命令也是以Ctrl + W开头:</p>
<ul>
<li>Ctrl + W + = :让所有窗口调整至相同尺寸(平均划分)</li>
<li>Ctrl + W + -:将当前窗口的高度减少一行,也可在ex命令中,:resize -4明确指定减少的尺寸</li>
<li><p>Ctrl + W + +:将当前窗口的高度增加一行。同样在ex命令中,:resize +n 明确指定增加尺寸</p></li>
<li><p>Ctrl + W + < :将当前窗口的宽度减少</p></li>
<li><p>Ctrl + W + > :将当前窗口的宽度增加</p></li>
<li><p>Ctrl + W + |:将当前窗口的宽度调到最大,也可他哦你通过ex命令:vertical resize n明确指定改变宽度</p></li>
</ul>
<h2 id="使用技巧"><a name="t1"></a>使用技巧</h2>
<p>【新建文件自动添加头部】</p>
<pre class="prettyprint" name="code"><code class="hljs sql has-numbering">" 新建python文件自动添加头部信息
let g:python_author = 'cold' # 姓名
let g:python_email = 'wh_linux@126.com' # 邮箱
function HeaderPython()
normal 1G
<span class="hljs-operator"><span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"#!/usr/bin/env python"</span>)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# -*- coding: utf-8 -*-"</span>)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"#"</span>)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# Author : "</span>.g:python_author)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# E-mail : "</span>.g:python_email)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# Create Date : "</span>.strftime(<span class="hljs-string">"%y-%m-%d %H:%M:%S"</span>))
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# File Name : "</span>.expand(<span class="hljs-string">"%"</span>))
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"# Desc :"</span>)
let lnum = line(<span class="hljs-string">"."</span>)
normal o
<span class="hljs-keyword">call</span> setline(<span class="hljs-string">"."</span>, <span class="hljs-string">"#"</span>)
normal o
<span class="hljs-keyword">call</span> <span class="hljs-keyword">cursor</span>(lnum, len(getline(lnum)))
normal a
<span class="hljs-string">"normal G
"</span>normal o
<span class="hljs-string">"normal o
endf
autocmd bufnewfile *.py call HeaderPython()</span></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li></ul></pre>
<p>【多行多列操作】</p>
<p>按v进入visual状态,选择多行,用>或<缩进或缩出</p>
<p>通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。</p>
<p>:20,30 s/^/#/g 第20到30行用 # 注释掉。 <br>
:20,30 s/^#//g 取消注释</p>
<p>:4,10 s/^[^I ]+// 去掉行首的空白字符</p>
<p>:co 12 “把当前行 copy 到行 12 的地方。 <br>
可以看到 vim 命令针对当前行,在前面加个范围就可以针对多行。 <br>
用 . 表示当前行, % 表示全文, $ 表示末尾</p>
<p>:.,30 s/^/#/g</p>
<h2 id="vim配置文件使用"><a name="t2"></a>vim配置文件使用</h2>
<p><code>vim --version</code>查看vim支持的功能以及配置文件目录</p>
<pre class="prettyprint" name="code"><code class="hljs sql has-numbering"><span class="hljs-operator"><span class="hljs-keyword">set</span> nocompatible <span class="hljs-string">" 关闭 vi 兼容模式
"</span> colorscheme morning <span class="hljs-string">" 设定配色方案/usr/share/vim/vim74/colors
set number "</span> 显示行号
<span class="hljs-keyword">set</span> cursorline <span class="hljs-string">" 突出显示当前行
set ruler "</span> 打开状态栏标尺
<span class="hljs-keyword">set</span> shiftwidth=<span class="hljs-number">4</span> <span class="hljs-string">" 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 "</span> 使得按退格键时可以一次删掉 <span class="hljs-number">4</span> 个空格
<span class="hljs-keyword">set</span> tabstop=<span class="hljs-number">4</span> <span class="hljs-string">" 设定 tab 长度为 4
set expandtab "</span> 将tab键替换成空格
<span class="hljs-string">" :set ts=4
"</span> :<span class="hljs-keyword">set</span> noexpandtab
<span class="hljs-string">" :%retab!
"</span> :<span class="hljs-keyword">set</span> list 显示制表符,显示方式如下设置
<span class="hljs-string">" set listchars=tab:>-,trail:-
"</span> <span class="hljs-keyword">set</span> listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
<span class="hljs-keyword">set</span> nobackup <span class="hljs-string">" 覆盖文件时不备份
set autochdir "</span> 自动切换当前目录为当前文件所在的目录
syntax <span class="hljs-keyword">on</span> <span class="hljs-string">" 自动语法高亮
filetype plugin indent on "</span> 开启插件
<span class="hljs-keyword">set</span> backupcopy=yes <span class="hljs-string">" 设置备份时的行为为覆盖
set ignorecase smartcase "</span> 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
<span class="hljs-keyword">set</span> nowrapscan <span class="hljs-string">" 禁止在搜索到文件两端时重新搜索
set incsearch "</span> 输入搜索内容时就显示搜索结果
<span class="hljs-keyword">set</span> hlsearch <span class="hljs-string">" 搜索时高亮显示被找到的文本
set noerrorbells "</span> 关闭错误信息响铃
<span class="hljs-keyword">set</span> novisualbell <span class="hljs-string">" 关闭使用可视响铃代替呼叫
set t_vb= "</span> 置空错误铃声的终端代码
<span class="hljs-string">" set showmatch "</span> 插入括号时,短暂地跳转到匹配的对应括号
<span class="hljs-string">" set matchtime=2 "</span> 短暂跳转到匹配括号的时间
<span class="hljs-keyword">set</span> magic <span class="hljs-string">" 设置魔术
set hidden "</span> 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
<span class="hljs-keyword">set</span> guioptions-=T <span class="hljs-string">" 隐藏工具栏
set guioptions-=m "</span> 隐藏菜单栏
<span class="hljs-keyword">set</span> smartindent <span class="hljs-string">" 开启新行时使用智能自动缩进
set backspace=indent,eol,start "</span> 不设定在插入状态无法用退格键和<span class="hljs-keyword">Delete</span> 键删除回车符
<span class="hljs-keyword">set</span> cmdheight=<span class="hljs-number">1</span> <span class="hljs-string">" 设定命令行的行数为 1
set laststatus=2 "</span> 显示状态栏 (默认值为 <span class="hljs-number">1</span>, 无法显示状态栏)
<span class="hljs-keyword">set</span> statusline=\ %<%F[%<span class="hljs-number">1</span>*%M%*%n%R%H]%=\ %y\ %<span class="hljs-number">0</span>(%{&fileformat}\ %{&encoding}\%c:%l/%L%)\
<span class="hljs-string">" 设置在状态行显示的信息
set nofoldenable "</span> 开始折叠
<span class="hljs-keyword">set</span> foldmethod=syntax <span class="hljs-string">" 设置语法折叠
set foldcolumn=0 "</span> 设置折叠区域的宽度
setlocal foldlevel=<span class="hljs-number">1</span> <span class="hljs-string">" 设置折叠层数为
"</span> <span class="hljs-keyword">set</span> foldclose=<span class="hljs-keyword">all</span> <span class="hljs-string">" 设置为自动关闭折叠
"</span> nnoremap <<span class="hljs-keyword">space</span>> @=((foldclosed(line(<span class="hljs-string">'.'</span>)) < <span class="hljs-number">0</span>) ? <span class="hljs-string">'zc'</span> : <span class="hljs-string">'zo'</span>)<CR>
<span class="hljs-string">" 用空格键来开关折叠</span></span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li><li>39</li><li>40</li><li>41</li><li>42</li><li>43</li><li>44</li><li>45</li><li>46</li><li>47</li><li>48</li><li>49</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li><li>39</li><li>40</li><li>41</li><li>42</li><li>43</li><li>44</li><li>45</li><li>46</li><li>47</li><li>48</li><li>49</li></ul></pre>
<h2 id="vim插件的使用"><a name="t3"></a>vim插件的使用</h2>
<h3 id="ctags"><a name="t4"></a>ctags</h3>
<p>【安装】</p>
<ul>
<li>安装: <code>yum install -y ctags</code></li>
</ul>
<p>【生成tags文件】</p>
<ul>
<li>ctags -R 递归的为当前目录及子目录下的所有代码文件生成tags文件</li>
<li>ctags <em>.c </em>.h 为某些源码生成tags文件</li>
</ul>
<p>为了使得字段补全有效,在生成tags时需要一些额外的参数,推荐的c++参数主要是: <br>
<code>ctags -R --c++-kinds=+px --fields=+iaS --extra=+q</code> <br>
其中: <br>
选项c++-kinds 用于指定C++语言的 tags记录类型, –c-kinds用于指定<a href="http://lib.csdn.net/base/c" class="replace_word" title="C语言知识库" target="_blank" style="color:#df3434; font-weight:bold;">C语言</a>的, 通用格式是 –{language}-kinds <br>
选项 fileds 用于指定每条标记的扩展字段域 <br>
extra 选项用于增加额外的条目: f表示为每个文件增加一个条目, q为每个类增加一个条目</p>
<p>【使用方法】</p>
<p>在vim打开源码时,指定tags文件,才可正常使用,通常手动指定,在vim命令行输入: <br>
<code>:set tags=./tags</code> (当前路径下的tags文件) <br>
若要引用多个不同目录的tags文件,可以用逗号隔开</p>
<p>或者,设置 ~/.vimrc,加入一行,则不用手动设置tags路径: <br>
set tags=~/path/tags</p>
<p>若要加入系统函数或全局变量的tag标签,则需执行: <br>
<code>ctags -I __THROW --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+px --fields=+S -f ~/.vim/systags -R /usr/include /usr/local/include *</code> <br>
并且在~/.vimrc中添加(亦可用上面描述的手动加入的方式): <br>
set tags+=~/.vim/systags <br>
这样,便可以享受系统库函数名补全、原型预览等功能了。</p>
<p>如果经常在不同工程里查阅代码,那么可以在~/.vimrc中添加: <br>
set tags=tags; <br>
set autochdir</p>
<p>设置好了tags文件,在定位变量/函数的定义时,最常用的快捷键是: <br>
Ctrl + ] <br>
跳转到变量或函数的定义处,或者用命令 <br>
:ta name <br>
而使用快捷组合键 <br>
Ctrl + o/t <br>
返回到跳转前的位置。</p>
<p>另外,ctags不会生成局部变量的索引,不过可以使用gd组合键(对光标所在处的word进行快捷查找定位)来定位,也是相当快捷的。</p>
<p>$ vim -t myAdd <br>
用vim打开文件时,添加参数-t funcName会自动打开定义该函数的文件并定位到定义首行,上面这句就是找到myAdd定义的文件打开并将光标置于定义的第一行处。</p>
<p>:tags <br>
会列出查找/跳转过程(经过的标签列表)</p>
<p>另外,附上vim环境中其他较为好用的快捷键: <br>
* 定位至当前光光标所指单词的下一次出现的地方 <br>
# 定位至当前光光标所指单词的上一次出现的地方 <br>
n 定位至跳至已被标记出的单词下一次出现的地方 <br>
shift+n 定位至跳至已被标记出的单词上一次出现的地方</p>
<p>关于更详细的ctags用法,vim中使用 <br>
:help tags</p>
<h3 id="taglist"><a name="t5"></a>taglist</h3>
<p>【功能】 <br>
a source code browser(supports C/C++, <a href="http://lib.csdn.net/base/javase" class="replace_word" title="Java SE知识库" target="_blank" style="color:#df3434; font-weight:bold;">Java</a>, perl, <a href="http://lib.csdn.net/base/python" class="replace_word" title="Python知识库" target="_blank" style="color:#df3434; font-weight:bold;">Python</a>, tcl, sql, <a href="http://lib.csdn.net/base/php" class="replace_word" title="PHP知识库" target="_blank" style="color:#df3434; font-weight:bold;">PHP</a>, etc): 提供了源码的结构化浏览功能,可将源码中定义的类、函数、变量等以树结构显示,层次关系可一目了然,而且于快速定位并查看。</p>
<p>【下载安装】 <br>
taglist插件是以vim脚本的形式存在,因此只需要将其下载下来放到相应的目录即可。taglist基于ctags才能发挥作用,因此在使用taglist之前,确保已经安装了ctags。</p>
<p>下载地址(两个可选择任意一个): <br>
Official site <a href="http://vim-taglist.sourceforge.net/">http://vim-taglist.sourceforge.net/</a> <br>
VIM online <a href="http://www.vim.org/scripts/script.php?script_id=273">http://www.vim.org/scripts/script.php?script_id=273</a></p>
<p>将文件放到<strong>/usr/share/vim/vim74</strong>对应的文件夹下即可</p>
<p>在vim配置文件中配置taglist选项:</p>
<pre class="prettyprint" name="code"><code class="hljs lasso has-numbering"><span class="hljs-string">"如果ctags不在Path路径下,则配置ctags的路径
if MySys() == "</span>windows<span class="hljs-string">"
let Tlist_Ctags_Cmd = 'ctags'
elseif MySys() == "</span>linux<span class="hljs-string">"
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
let Tlist_Show_One_File = 1 "</span>不同时显示多个文件的<span class="hljs-built_in">tag</span>,只显示当前文件的
<span class="hljs-keyword">let</span> Tlist_Exit_OnlyWindow <span class="hljs-subst">=</span> <span class="hljs-number">1</span> <span class="hljs-string">"如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 "</span>在右侧窗口中显示taglist窗口
<span class="hljs-keyword">let</span> Tlist_Sort_Type <span class="hljs-subst">=</span> <span class="hljs-string">"name"</span> <span class="hljs-string">"taglist以tag名字进行排序,缺省是按tag在文件中出现的顺序进行排序
let Tlist_Use_SingleClick = 1 "</span>设置单击<span class="hljs-built_in">tag</span>就跳转到定义处,确实双击
<span class="hljs-keyword">let</span> Tlist_Auto_Open<span class="hljs-subst">=</span><span class="hljs-number">1</span> <span class="hljs-string">"启动vim自动打开taglist窗口
let Tlist_Close_On_Select=1 "</span>在选择了<span class="hljs-built_in">tag</span>后自动关闭taglist窗口
<span class="hljs-keyword">let</span> Tlist_File_Fold_Auto_Close<span class="hljs-subst">=</span><span class="hljs-number">1</span> <span class="hljs-string">"当同时显示多个文件中的tag时,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。
let Tlist_GainFocus_On_ToggleOpen=1"</span>在使用:TlistToggle打开taglist窗口时,输入焦点在taglist窗口中
<span class="hljs-keyword">let</span> Tlist_Process_File_Always<span class="hljs-subst">=</span><span class="hljs-number">1</span> <span class="hljs-string">"taglist始终解析文件中的tag,不管taglist窗口有没有打开
let Tlist_Use_Horiz_Window = 1 "</span>设置taglist窗口横向显示
<span class="hljs-string">" Tlist_WinHeight和Tlist_WinWidth可以设置taglist窗口的高度和宽度</span></code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li></ul><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li></ul></pre>
<p>在taglist窗口中可以使用的快捷键:</p>
<table>
<thead>
<tr>
<th align="left">快捷键</th>
<th>功能说明</th>
</tr>
</thead>
<tbody><tr>
<td align="left">CR</td>
<td>跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样</td>
</tr>
<tr>
<td align="left">o</td>
<td>在一个新打开的窗口中显示光标下tag</td>
</tr>
<tr>
<td align="left">Space</td>
<td>显示光标下tag的原型定义</td>
</tr>
<tr>
<td align="left">u</td>
<td>更新taglist窗口中的tag</td>
</tr>
<tr>
<td align="left">s</td>
<td>更改排序方式,在按名字排序和按出现顺序排序间切换</td>
</tr>
<tr>
<td align="left">x</td>
<td>taglist窗口放大和缩小,方便查看较长的tag</td>
</tr>
<tr>
<td align="left">+</td>
<td>打开一个折叠,同zo</td>
</tr>
<tr>
<td align="left">-</td>
<td>将tag折叠起来,同zc</td>
</tr>
<tr>
<td align="left">*</td>
<td>打开所有的折叠,同zR</td>
</tr>
<tr>
<td align="left">=</td>
<td>将所有tag折叠起来,同zM</td>
</tr>
<tr>
<td align="left">[[</td>
<td>跳到前一个文件</td>
</tr>
<tr>
<td align="left">]]</td>
<td>跳到后一个文件</td>
</tr>
<tr>
<td align="left">q</td>
<td>关闭taglist窗口</td>
</tr>
<tr>
<td align="left">F1</td>
<td>显示帮助</td>
</tr>
</tbody></table>
<h3 id="cscope"><a name="t6"></a>cscope</h3>
<ul>
<li>安装: <code>yum install -y cscope</code></li>
</ul>
<h2 id="配置文件语法介绍"><a name="t7"></a>配置文件语法介绍</h2>
<h3 id="快捷键映射"><a name="t8"></a>快捷键映射</h3>
<p>【vim模式】 <br>
Vim的模式众多,但是一般被提及的也就是这么几种:</p>
<ul>
<li><p><strong>Normal Mode</strong> <br>
也就是最一般的普通模式,默认进入vim之后,处于这种模式。</p></li>
<li><p><strong>Visual Mode</strong> <br>
一般译作可视模式,在这种模式下选定一些字符、行、多列。 <br>
在普通模式下,可以按v进入。</p></li>
<li><p><strong>Insert Mode</strong> <br>
插入模式,其实就是指处在编辑输入的状态。普通模式下,可以按i进入。</p></li>
<li><p><strong>Select Mode</strong> <br>
在gvim下常用的模式,可以叫作选择模式吧。用鼠标拖选区域的时候,就进入了选择模式。 <br>
和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。 <br>
和windows下的编辑器选定编辑的效果一致。普通模式下,可以按gh进入。</p></li>
<li><p><strong>Command-Line/Ex Mode</strong> <br>
就叫命令行模式和Ex模式吧。两者略有不同,普通模式下按冒号(:)进入Command-Line模式,可以输入各种命令, <br>
使用vim的各种强大功能。普通模式下按Q进入Ex模式,其实就是多行的Command-Line模式。</p></li>
</ul>
<p>【Map基本概念】</p>
<p>命令的组合 <br>
同Vim下的其他命令一样,命令的名字往往由好几段组成。前缀作为命令本身的修饰符,微调命令的效果。 <br>
对于map而言,可能有这么几种前缀</p>
<ul>
<li>nore <br>
表示非递归,见下面的介绍</li>
<li>n <br>
表示在普通模式下生效</li>
<li>v <br>
表示在可视模式下生效</li>
<li>i <br>
表示在插入模式下生效</li>
<li>c <br>
表示在命令行模式下生效</li>
</ul>
<p>【快捷键映射实例】</p>
<p>右括号自动补全:</p>
<ul>
<li><code>inoremap ( ()<ESC>i</code></li>
<li><code>inoremap [ []<ESC>i</code></li>
<li><code>inoremap { {}<ESC>i<CR><ESC><S-o></code></li>
<li><code>inoremap < <><ESC>i</code></li>
<li><code>inoremap " ""<ESC>i</code></li>
<li><code>inoremap ' ''<ESC>i</code></li>
</ul>
<h2 id="参考"><a name="t9"></a>参考</h2>
<ul>
<li><a href="http://blog.sina.com.cn/s/blog_76e7bdba01017gap.html">Vim 的补全模式加速器,轻松玩转全部 15 种自动补全模式 </a></li>
<li><a href="http://cscope.sourceforge.net/">http://cscope.sourceforge.net/</a></li>
<li><a href="http://ctags.sourceforge.net/">http://ctags.sourceforge.net/</a></li>
<li><a href="http://blog.csdn.net/g_brightboy/article/details/16830395">vim插件ctags的安装和使用</a></li>
<li><a href="http://blog.csdn.net/G_BrightBoy/article/details/16843899">vim插件taglist的安装和使用</a></li>
<li><a href="http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html">强大的vim配置文件,让编程更随意</a></li>
</ul></div>
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul></ul>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li></li>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
</div>
<!-- Baidu Button BEGIN -->
<div class="bdsharebuttonbox tracking-ad bdshare-button-style0-16" style="float: right;" data-mod="popu_172" data-bd-bind="1490414771430">
<a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important" target="_blank"></a>
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important" target="_blank"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博" style="background-position:0 -104px !important" target="_blank"></a>
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博" style="background-position:0 -260px !important" target="_blank"></a>
<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网" style="background-position:0 -208px !important" target="_blank"></a>
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信" style="background-position:0 -1612px !important" target="_blank"></a>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<!-- Baidu Button END -->
<link rel="stylesheet" href="http://static.blog.csdn.net/css/blog_detail.css">
<!--172.16.140.14-->
<!-- Baidu Button BEGIN -->
<script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" src="http://bdimg.share.baidu.com/static/js/bds_s_v2.js?cdnversion=414005"></script>
<script type="text/javascript">
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
</script>
<!-- Baidu Button END -->
<div id="digg" articleid="51868170">
<dl id="btnDigg" class="digg digg_enable" οnclick="btndigga();">
<dt>顶</dt>
<dd>0</dd>
</dl>
<dl id="btnBury" class="digg digg_enable" οnclick="btnburya();">
<dt>踩</dt>
<dd>0</dd>
</dl>
</div>
<div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank"> </a> </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank"> </a></div>
<script type="text/javascript">
function btndigga() {
$(".tracking-ad[data-mod='popu_222'] a").click();
}
function btnburya() {
$(".tracking-ad[data-mod='popu_223'] a").click();
}
</script>
<ul class="article_next_prev">
<li class="prev_article"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/callinglove/article/details/51812515';">上一篇</span><a href="/callinglove/article/details/51812515" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">VS2013使用技巧</a></li>
<li class="next_article"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/callinglove/article/details/65633781';">下一篇</span><a href="/callinglove/article/details/65633781" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">内核编程之Hello_kernel</a></li>
</ul>
<div style="clear:both; height:10px;"></div>
<div class="similar_article" style="">
<h4>我的同类文章</h4>
<div class="similar_c" style="margin:20px 0px 0px 0px">
<div class="similar_c_t">
<label class="similar_cur">
<span style="cursor:pointer" οnclick="GetCategoryArticles('2616885','callinglove','foot','51868170');">开发环境搭建<em>(11)</em></span>
</label>
</div>
<div class="similar_wrap tracking-ad" data-mod="popu_141" style="max-height:195px;">
<a href="http://blog.csdn.net" style="display:none" target="_blank">http://blog.csdn.net</a>
<ul class="similar_list fl"><li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/51812515" id="foot_aritcle_51812515undefined4348216119024457" target="_blank" title="VS2013使用技巧">VS2013使用技巧</a><span>2016-07-02</span><label><i>阅读</i><b>301</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/50720721" id="foot_aritcle_50720721undefined6631740970849644" target="_blank" title="eclipse--android开发环境搭建教程">eclipse--android开发环境搭建教程</a><span>2016-02-23</span><label><i>阅读</i><b>985</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/46933991" id="foot_aritcle_46933991undefined12840797561846107" target="_blank" title="CentOS7开发环境搭建">CentOS7开发环境搭建</a><span>2015-07-17</span><label><i>阅读</i><b>3295</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/39855305" id="foot_aritcle_39855305undefined9687036824142381" target="_blank" title="cygwin开发环境搭建与apt-cyg的应用">cygwin开发环境搭建与apt-cyg的应用</a><span>2014-10-07</span><label><i>阅读</i><b>16056</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/8782220" id="foot_aritcle_8782220undefined035964213064615835" target="_blank" title="ubuntu一些配置">ubuntu一些配置</a><span>2013-04-10</span><label><i>阅读</i><b>648</b></label></li> </ul>
<ul class="similar_list fr"><li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/51287686" id="foot_aritcle_51287686undefined02471801016642461" target="_blank" title="Ubuntu开发环境搭建">Ubuntu开发环境搭建</a><span>2016-04-30</span><label><i>阅读</i><b>260</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/48601775" id="foot_aritcle_48601775undefined3187943863324454" target="_blank" title="MSYS2开发环境搭建">MSYS2开发环境搭建</a><span>2015-09-20</span><label><i>阅读</i><b>8055</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/39925007" id="foot_aritcle_39925007undefined9024330932497677" target="_blank" title="CentOS下升级python版本">CentOS下升级python版本</a><span>2014-10-09</span><label><i>阅读</i><b>1836</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/38947661" id="foot_aritcle_38947661undefined5429717279553208" target="_blank" title="Linux下ARM开发环境搭建">Linux下ARM开发环境搭建</a><span>2014-08-30</span><label><i>阅读</i><b>5055</b></label></li> <li><em>•</em><a href="http://blog.csdn.net/callinglove/article/details/8316837" id="foot_aritcle_8316837undefined5097154837071967" target="_blank" title="在window下使用linux工具">在window下使用linux工具</a><span>2012-12-18</span><label><i>阅读</i><b>788</b></label></li> </ul>
<a href="http://blog.csdn.net/callinglove/article/category/2616885" class="MoreArticle">更多文章</a></div>
</div>
</div>
<script type="text/javascript">
$(function () {
GetCategoryArticles('2616885', 'callinglove','foot','51868170');
});
</script>
</div>
<div>
<div class="J_adv" data-view="true" data-mod="ad_popu_206" data-mtp="43" data-order="114" data-con="ad_content_1901" style="width: 960px; height: 90px;"><script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:inline-block;width:960px;height:90px" data-ad-client="ca-pub-8990951720398508" data-ad-slot="8267689356/3776917242" data-adsbygoogle-status="done"><ins id="aswift_0_expand" style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:960px;background-color:transparent"><ins id="aswift_0_anchor" style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:960px;background-color:transparent"><iframe width="960" height="90" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" οnlοad="var i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;"></iframe></ins></ins></ins><script>(adsbygoogle=window.adsbygoogle || []).push({});</script></div>
</div>
<div id="suggest">
</div>
<script language="javascript" type="text/javascript">
$(function(){
$.get("/callinglove/svc/GetSuggestContent/51868170",function(data){
$("#suggest").html(data);
});
});
</script>
<style>
.blog-ass-articl dd {
color: #369;
width: 99%; /*修改行*/
float: left;
overflow: hidden;
font: normal normal 12px/23px "SimSun";
height: 23px;
margin: 0;
padding: 0 0 0 10px;
margin-right: 30px;
background: url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;
}
</style>
<link rel="stylesheet" href="http://static.blog.csdn.net/css/replace.css">
<div id="relate" data-mod="popu_218" class="tracking-ad" style="display: block;">
<div class="relate_t">
<h3><span>参考知识库</span></h3>
</div>
<div class="relate_c"><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/python"><img src="http://img.knowledge.csdn.net/upload/base/1452500783406_406.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/python">Python知识库</a></h4><p><label><span>21821</span><em>关注</em><i>|</i><span>1345</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/php"><img src="http://img.knowledge.csdn.net/upload/base/1463455906707_707.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/php">PHP知识库</a></h4><p><label><span>6259</span><em>关注</em><i>|</i><span>909</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/dotnet"><img src="http://img.knowledge.csdn.net/upload/base/1470876331285_285.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/dotnet">.NET知识库</a></h4><p><label><span>3500</span><em>关注</em><i>|</i><span>827</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/linux"><img src="http://img.knowledge.csdn.net/upload/base/1468390230134_134.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/linux">Linux知识库</a></h4><p><label><span>11007</span><em>关注</em><i>|</i><span>3803</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/c"><img src="http://img.knowledge.csdn.net/upload/base/1466132253931_931.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/c">C语言知识库</a></h4><p><label><span>8270</span><em>关注</em><i>|</i><span>3455</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/javase"><img src="http://img.knowledge.csdn.net/upload/base/1453169124297_297.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/javase">Java SE知识库</a></h4><p><label><span>24921</span><em>关注</em><i>|</i><span>477</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/javaee"><img src="http://img.knowledge.csdn.net/upload/base/1456818035722_722.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/javaee">Java EE知识库</a></h4><p><label><span>16774</span><em>关注</em><i>|</i><span>1265</span><em>收录</em></label></p></dd></dl><dl class="relate_list"><dt><a target="_blank" href="http://lib.csdn.net/base/java"><img src="http://img.knowledge.csdn.net/upload/base/1453701371636_636.jpg" alt="img"></a></dt><dd><h4><a target="_blank" href="http://lib.csdn.net/base/java">Java 知识库</a></h4><p><label><span>24513</span><em>关注</em><i>|</i><span>1456</span><em>收录</em></label></p></dd></dl></div>
</div>
<dl class="blog-ass-articl" id="res-relatived">
<div class="embody embody_b" id="libkeyparent" style="display:none">
<span class="embody_t">更多资料请参考:</span>
<div class="embody_c" id="libkey"></div>
</div>
<dt><span>猜你在找</span></dt>
<div id="adCollege" style="width: 42%;float: left;">
<script src="http://csdnimg.cn/jobreco/job_reco.js" type="text/javascript"></script>
<script type="text/javascript">
csdn.position.showEdu({
sourceType: "blog",
searchType: "detail",
searchKey: "51868170",
username: "searcht",
recordcount: "5",
containerId: "adCollege" //容器DIV的id。
});
setEduLoc();
function setEduLoc() {
var edus = $("#adCollege div dd a");
if (edus.length == 0) {
setTimeout(function () {
setEduLoc();
}, 500);
}
else {
var eduLoc = "?ref=blog&loc=0";
$.each(edus, function (index,item) {
var href = $(this).attr("href") + eduLoc;
$(this).attr("href", href);
});
}
}
</script>
<div class="tracking-ad" data-mod="popu_84"><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/2384?ref=blog&loc=0" title="Swift与Objective-C\C\C++混合编程" strategy="v4:content" target="_blank">Swift与Objective-C\C\C++混合编程</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/1353?ref=blog&loc=0" title="《C语言/C++学习指南》Linux开发篇" strategy="v4:content" target="_blank">《C语言/C++学习指南》Linux开发篇</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/3738?ref=blog&loc=0" title="零基础学会在Linux上编译调试C++项目" strategy="v4:content" target="_blank">零基础学会在Linux上编译调试C++项目</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/2570?ref=blog&loc=0" title="Visual Studio 2015开发C++程序的基本使用" strategy="v4:content" target="_blank">Visual Studio 2015开发C++程序的基本使用</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/1865?ref=blog&loc=0" title="C++ DirectX 游戏开发初级教程" strategy="v4:content" target="_blank">C++ DirectX 游戏开发初级教程</a></dd></div></div>
<div id="res" data-mod="popu_36" class="tracking-ad" style="width: 42%; float: left; margin-right: 30px; display: block;"><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/Geepai/article/details/46608959" title="Linux vim 使用总结" strategy="SearchAlgorithm" target="_blank">Linux vim 使用总结</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/jiutianhe/article/details/8039993" title="Vim使用总结" strategy="SearchAlgorithm" target="_blank">Vim使用总结</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/prien/article/details/5373054" title="VIM使用总结" strategy="SearchAlgorithm" target="_blank">VIM使用总结</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/ZongYinHu/article/details/49048493" title="Linuxvim中高频使用指令总结---使vim用起来更加得心应手" strategy="SearchAlgorithm" target="_blank">Linuxvim中高频使用指令总结---使vim用起来更加得心应手</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/maturn/article/details/6125423" title="VIM使用--总结自己常用的VIM操作" strategy="SearchAlgorithm" target="_blank">VIM使用--总结自己常用的VIM操作</a></dd></div>
</dl>
<script type="text/javascript">
$(function () {
setTimeout(function () {
var searchtitletags = 'vim使用总结' + ',' + $("#tags").html();
searchService({
index: 'blog',
query: searchtitletags,
from: 5,
size: 5,
appendTo: '#res',
url: 'recommend',
his: 2,
client: "blog_cf_enhance",
tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>'
});
}, 500);
});
</script>
<div id="ad_cen">
<div class="J_adv" data-view="true" data-mod="ad_popu_199" data-mtp="43" data-order="114" data-con="ad_content_1843" style="width: 960px; height: 90px;"><script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:inline-block;width:960px;height:90px" data-ad-client="ca-pub-8990951720398508" data-ad-slot="8267689356/3115746762" data-adsbygoogle-status="done"><ins id="aswift_1_expand" style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:960px;background-color:transparent"><ins id="aswift_1_anchor" style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:960px;background-color:transparent"><iframe width="960" height="90" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" οnlοad="var i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_1" name="aswift_1" style="left:0;position:absolute;top:0;"></iframe></ins></ins></ins><script>(adsbygoogle=window.adsbygoogle || []).push({});</script></div>
</div>
<!-- 广告位开始 -->
<div class="J_adv" data-view="true" data-mod="ad_popu_72" data-mtp="62" data-order="40" data-con="ad_content_2072"><script id="popuLayer_js_q" src="http://ads.csdn.net/js/popuLayer.js" defer="" type="text/javascript"></script><div id="layerd" style="position: fixed; bottom: 0px; right: 0px; line-height: 0px; z-index: 1000; width: 300px; height: 278px;"><div class="J_close layer_close" style="display:;background-color:#efefef;padding:0px;color:#333;font:12px/24px Helvetica,Tahoma,Arial,sans-serif;text-align:right;">关闭</div><!-- 广告占位容器 --><div id="cpro_u2895327"><iframe id="iframeu2895327_0" src="http://pos.baidu.com/scym?rdid=2895327&dc=3&di=u2895327&dri=0&dis=0&dai=1&ps=666x1603&dcb=___adblockplus&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1490414771305&ti=vim%E4%BD%BF%E7%94%A8%E6%80%BB%E7%BB%93%20-%20%E4%B8%80%E6%AD%A5%E4%B8%80%E8%84%9A%E5%8D%B0%20-%20%E5%8D%9A%E5%AE%A2%E9%A2%91%E9%81%93%20-%20CSDN.NET&ari=2&dbv=2&drs=3&pcs=1903x920&pss=1903x12405&cfv=0&cpl=15&chi=1&cce=true&cec=UTF-8&tlm=1490414771&rw=920&ltu=http%3A%2F%2Fblog.csdn.net%2Fcallinglove%2Farticle%2Fdetails%2F51868170%3FlocationNum%3D2%26fps%3D1&ltr=http%3A%2F%2Fso.csdn.net%2Fso%2Fsearch%2Fs.do%3Fref%3Dtoolbar%26q%3Dvim%26ref%3Dtoolbar%26q%3Dvim&ecd=1&uc=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=33&col=zh-CN&cdo=-1&sr=1920x1080&tcn=1490414771&qn=ce6237da04d9b49b&tt=1490414771290.18.18.20" width="300" height="250" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="border:0;vertical-align:bottom;margin:0;width:300px;height:250px" allowtransparency="true"></iframe></div></div><script> document.getElementById('popuLayer_js_q').οnlοad=function(){ var styObjd=styObj={width:'300px','height':parseInt(250)+28};window.CSDN.Layer.PopuLayer('#layerd',{storageName:'layerd',styleObj:styObjd,total:50,expoire:1000*60}); }</script><!-- 投放代码 --><script type="text/javascript"> /*服务器频道首页置顶Banner960*90,创建于2014-7-3*/ (window.cproArray = window.cproArray || []).push({ id: 'u2895327' }); </script> <script src="http://cpro.baidustatic.com/cpro/ui/c.js" type="text/javascript"></script></div>
<!-- 广告位结束 -->
<div class="comment_class">
<div id="comment_title" class="panel_head">
<span class="see_comment">查看评论</span><a name="comments"></a></div>
<div id="comment_list"><br> 暂无评论<br><br><div class="clear"></div></div>
<div id="comment_bar">
</div>
<div id="comment_form"><a name="commentbox"></a><a name="reply"></a><a name="quote"></a><form action="/callinglove/comment/submit?id=51868170" method="post" οnsubmit="return subform(this);"><div class="commentform"><div class="panel_head">发表评论</div><ul><li class="left">用 户 名:</li><li class="right">searcht</li></ul><ul><li class="left">评论内容:</li><li class="right" style="position:relative;"><div id="ubbtools"><a href="#insertcode" code="code"><img src="http://static.blog.csdn.net/images/ubb/code.gif" border="0" alt="插入代码" title="插入代码"></a></div><div id="lang_list" style="position: absolute; top: 28px; left: 0px; display: none;"><a class="long_name" href="#html">HTML/XML</a><a class="long_name" href="#objc">objective-c</a><a class="zhong_name" href="#delphi">Delphi</a><a class="zhong_name" href="#ruby">Ruby</a><a href="#php">PHP</a><a class="duan_name" href="#csharp">C#</a><a style=" border-right: none;" class="duan_name" href="#cpp">C++</a><a style=" border-bottom:none;" class="long_name" href="#javascript">JavaScript</a><a style=" border-bottom:none;" class="long_name" href="#vb">Visual Basic</a><a style=" border-bottom:none;" class="zhong_name" href="#python">Python</a><a style=" border-bottom:none;" class="zhong_name" href="#java">Java</a><a style="border-bottom:none;" class="duan_name" href="#css">CSS</a><a style="border-bottom:none;" class="duan_name" href="#sql">SQL</a><a style="border:none;" class="duan_name" href="#plain">其它</a></div><textarea class="comment_content" name="comment_content" id="comment_content" style="width: 400px; height: 200px;"></textarea></li></ul><ul><input type="hidden" id="comment_replyId" name="comment_replyId"><input type="hidden" id="comment_userId" name="comment_userId" value="521203"><input type="hidden" id="commentId" name="commentId" value=""><input type="submit" class="comment_btn" value="提交"> <span id="tip_comment" style="color: Red; display: none;"></span></ul></div></form></div>
<div class="announce">
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场<a name="reply"></a><a name="quote"></a></div>
</div>
<script type="text/javascript">
var fileName = '51868170';
var commentscount = 0;
var islock = false
</script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/comment.js"></script>
<div id="ad_bot">
</div>
<div id="report_dialog">
</div>
<div id="d-top" style="bottom:60px;">
<a id="quick-reply" class="btn btn-top q-reply" title="快速回复" style="display:none;">
<img src="http://static.blog.csdn.net/images/blog-icon-reply.png" alt="快速回复">
</a>
<a id="d-top-a" class="btn btn-top backtop" style="display: none;" title="返回顶部" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_huidaodingbu'])">
<img src="http://static.blog.csdn.net/images/top.png" alt="TOP">
</a>
</div>
<script type="text/javascript">
$(function ()
{
$("#ad_frm_0").height("90px");
setTimeout(function(){
$("#ad_frm_2").height("200px");
},1000);
});
</script>
<style type="text/css">
.tag_list
{
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #D7CBC1;
color: #000000;
font-size: 12px;
line-height: 20px;
list-style: none outside none;
margin: 10px 2% 0 1%;
padding: 1px;
}
.tag_list h5
{
background: none repeat scroll 0 0 #E0DBD3;
color: #47381C;
font-size: 12px;
height: 24px;
line-height: 24px;
padding: 0 5px;
margin: 0;
}
.tag_list h5 a
{
color: #47381C;
}
.classify
{
margin: 10px 0;
padding: 4px 12px 8px;
}
.classify a
{
margin-right: 20px;
white-space: nowrap;
}
</style>
<div class="tag_list" style="">
<h5>
<a href="http://www.csdn.net/tag/" target="_blank">核心技术类目</a></h5>
<div class="classify">
<a title="全部主题" href="http://www.csdn.net/tag" target="_blank" οnclick="LogClickCount(this,336);">全部主题</a>
<a title="Hadoop" href="http://g.csdn.net/5272865" target="_blank" οnclick="LogClickCount(this,336);">Hadoop</a>
<a title="AWS" href="http://g.csdn.net/5272866" target="_blank" οnclick="LogClickCount(this,336);">AWS</a>
<a title="移动游戏" href="http://g.csdn.net/5272870" target="_blank" οnclick="LogClickCount(this,336);">移动游戏</a>
<a title="Java" href="http://g.csdn.net/5272871" target="_blank" οnclick="LogClickCount(this,336);">Java</a>
<a title="Android" href="http://g.csdn.net/5272872" target="_blank" οnclick="LogClickCount(this,336);">Android</a>
<a title="iOS" href="http://g.csdn.net/5272873" target="_blank" οnclick="LogClickCount(this,336);">iOS</a>
<a title="Swift" href="http://g.csdn.net/5272868" target="_blank" οnclick="LogClickCount(this,336);">Swift</a>
<a title="智能硬件" href="http://g.csdn.net/5272869" target="_blank" οnclick="LogClickCount(this,336);">智能硬件</a>
<a title="Docker" href="http://g.csdn.net/5272867" target="_blank" οnclick="LogClickCount(this,336);">Docker</a>
<a title="OpenStack" href="http://g.csdn.net/5272925" target="_blank" οnclick="LogClickCount(this,336);">OpenStack</a>
<a title="VPN" href="http://www.csdn.net/tag/vpn" target="_blank" οnclick="LogClickCount(this,336);">VPN</a>
<a title="Spark" href="http://g.csdn.net/5272924" target="_blank" οnclick="LogClickCount(this,336);">Spark</a>
<a title="ERP" href="http://www.csdn.net/tag/erp" target="_blank" οnclick="LogClickCount(this,336);">ERP</a>
<a title="IE10" href="http://www.csdn.net/tag/ie10" target="_blank" οnclick="LogClickCount(this,336);">IE10</a>
<a title="Eclipse" href="http://www.csdn.net/tag/eclipse" target="_blank" οnclick="LogClickCount(this,336);">Eclipse</a>
<a title="CRM" href="http://www.csdn.net/tag/crm" target="_blank" οnclick="LogClickCount(this,336);">CRM</a>
<a title="JavaScript" href="http://www.csdn.net/tag/javascript" target="_blank" οnclick="LogClickCount(this,336);">JavaScript</a>
<a title="数据库" href="http://www.csdn.net/tag/数据库" target="_blank" οnclick="LogClickCount(this,336);">数据库</a>
<a title="Ubuntu" href="http://www.csdn.net/tag/ubuntu" target="_blank" οnclick="LogClickCount(this,336);">Ubuntu</a>
<a title="NFC" href="http://www.csdn.net/tag/nfc" target="_blank" οnclick="LogClickCount(this,336);">NFC</a>
<a title="WAP" href="http://www.csdn.net/tag/wap" target="_blank" οnclick="LogClickCount(this,336);">WAP</a>
<a title="jQuery" href="http://www.csdn.net/tag/jquery" target="_blank" οnclick="LogClickCount(this,336);">jQuery</a>
<a title="BI" href="http://www.csdn.net/tag/bi" target="_blank" οnclick="LogClickCount(this,336);">BI</a>
<a title="HTML5" href="http://www.csdn.net/tag/html5" target="_blank" οnclick="LogClickCount(this,336);">HTML5</a>
<a title="Spring" href="http://www.csdn.net/tag/spring" target="_blank" οnclick="LogClickCount(this,336);">Spring</a>
<a title="Apache" href="http://www.csdn.net/tag/apache" target="_blank" οnclick="LogClickCount(this,336);">Apache</a>
<a title=".NET" href="http://www.csdn.net/tag/.net" target="_blank" οnclick="LogClickCount(this,336);">.NET</a>
<a title="API" href="http://www.csdn.net/tag/api" target="_blank" οnclick="LogClickCount(this,336);">API</a>
<a title="HTML" href="http://www.csdn.net/tag/html" target="_blank" οnclick="LogClickCount(this,336);">HTML</a>
<a title="SDK" href="http://www.csdn.net/tag/sdk" target="_blank" οnclick="LogClickCount(this,336);">SDK</a>
<a title="IIS" href="http://www.csdn.net/tag/iis" target="_blank" οnclick="LogClickCount(this,336);">IIS</a>
<a title="Fedora" href="http://www.csdn.net/tag/fedora" target="_blank" οnclick="LogClickCount(this,336);">Fedora</a>
<a title="XML" href="http://www.csdn.net/tag/xml" target="_blank" οnclick="LogClickCount(this,336);">XML</a>
<a title="LBS" href="http://www.csdn.net/tag/lbs" target="_blank" οnclick="LogClickCount(this,336);">LBS</a>
<a title="Unity" href="http://www.csdn.net/tag/unity" target="_blank" οnclick="LogClickCount(this,336);">Unity</a>
<a title="Splashtop" href="http://www.csdn.net/tag/splashtop" target="_blank" οnclick="LogClickCount(this,336);">Splashtop</a>
<a title="UML" href="http://www.csdn.net/tag/uml" target="_blank" οnclick="LogClickCount(this,336);">UML</a>
<a title="components" href="http://www.csdn.net/tag/components" target="_blank" οnclick="LogClickCount(this,336);">components</a>
<a title="Windows Mobile" href="http://www.csdn.net/tag/windowsmobile" target="_blank" οnclick="LogClickCount(this,336);">Windows Mobile</a>
<a title="Rails" href="http://www.csdn.net/tag/rails" target="_blank" οnclick="LogClickCount(this,336);">Rails</a>
<a title="QEMU" href="http://www.csdn.net/tag/qemu" target="_blank" οnclick="LogClickCount(this,336);">QEMU</a>
<a title="KDE" href="http://www.csdn.net/tag/kde" target="_blank" οnclick="LogClickCount(this,336);">KDE</a>
<a title="Cassandra" href="http://www.csdn.net/tag/cassandra" target="_blank" οnclick="LogClickCount(this,336);">Cassandra</a>
<a title="CloudStack" href="http://www.csdn.net/tag/cloudstack" target="_blank" οnclick="LogClickCount(this,336);">CloudStack</a>
<a title="FTC" href="http://www.csdn.net/tag/ftc" target="_blank" οnclick="LogClickCount(this,336);">FTC</a>
<a title="coremail" href="http://www.csdn.net/tag/coremail" target="_blank" οnclick="LogClickCount(this,336);">coremail</a>
<a title="OPhone " href="http://www.csdn.net/tag/ophone " target="_blank" οnclick="LogClickCount(this,336);">OPhone </a>
<a title="CouchBase" href="http://www.csdn.net/tag/couchbase" target="_blank" οnclick="LogClickCount(this,336);">CouchBase</a>
<a title="云计算" href="http://www.csdn.net/tag/云计算" target="_blank" οnclick="LogClickCount(this,336);">云计算</a>
<a title="iOS6" href="http://www.csdn.net/tag/iOS6" target="_blank" οnclick="LogClickCount(this,336);">iOS6</a>
<a title="Rackspace " href="http://www.csdn.net/tag/rackspace " target="_blank" οnclick="LogClickCount(this,336);">Rackspace </a>
<a title="Web App" href="http://www.csdn.net/tag/webapp" target="_blank" οnclick="LogClickCount(this,336);">Web App</a>
<a title="SpringSide" href="http://www.csdn.net/tag/springside" target="_blank" οnclick="LogClickCount(this,336);">SpringSide</a>
<a title="Maemo" href="http://www.csdn.net/tag/maemo" target="_blank" οnclick="LogClickCount(this,336);">Maemo</a>
<a title="Compuware" href="http://www.csdn.net/tag/compuware" target="_blank" οnclick="LogClickCount(this,336);">Compuware</a>
<a title="大数据" href="http://www.csdn.net/tag/大数据" target="_blank" οnclick="LogClickCount(this,336);">大数据</a>
<a title="aptech" href="http://www.csdn.net/tag/aptech" target="_blank" οnclick="LogClickCount(this,336);">aptech</a>
<a title="Perl" href="http://www.csdn.net/tag/perl" target="_blank" οnclick="LogClickCount(this,336);">Perl</a>
<a title="Tornado" href="http://www.csdn.net/tag/tornado" target="_blank" οnclick="LogClickCount(this,336);">Tornado</a>
<a title="Ruby" href="http://www.csdn.net/tag/ruby" target="_blank" οnclick="LogClickCount(this,336);">Ruby</a>
<a title="Hibernate" href="http://www.csdn.net/tag/hibernate" target="_blank" οnclick="LogClickCount(this,336);">Hibernate</a>
<a title="ThinkPHP" href="http://www.csdn.net/tag/thinkphp" target="_blank" οnclick="LogClickCount(this,336);">ThinkPHP</a>
<a title="HBase" href="http://www.csdn.net/tag/hbase" target="_blank" οnclick="LogClickCount(this,336);">HBase</a>
<a title="Pure" href="http://www.csdn.net/tag/pure" target="_blank" οnclick="LogClickCount(this,336);">Pure</a>
<a title="Solr" href="http://www.csdn.net/tag/solr" target="_blank" οnclick="LogClickCount(this,336);">Solr</a>
<a title="Angular" href="http://www.csdn.net/tag/angular" target="_blank" οnclick="LogClickCount(this,336);">Angular</a>
<a title="Cloud Foundry" href="http://www.csdn.net/tag/cloudfoundry" target="_blank" οnclick="LogClickCount(this,336);">Cloud Foundry</a>
<a title="Redis" href="http://www.csdn.net/tag/redis" target="_blank" οnclick="LogClickCount(this,336);">Redis</a>
<a title="Scala" href="http://www.csdn.net/tag/scala" target="_blank" οnclick="LogClickCount(this,336);">Scala</a>
<a title="Django" href="http://www.csdn.net/tag/django" target="_blank" οnclick="LogClickCount(this,336);">Django</a>
<a title="Bootstrap" href="http://www.csdn.net/tag/bootstrap" target="_blank" οnclick="LogClickCount(this,336);">Bootstrap</a>
</div>
</div>
<script language="javascript" type="text/javascript">
$(function(){
setTimeout(function(){
$.get("/callinglove/svc/GetTagContent",function(data){
$(".tag_list").html(data).show();
});
});
},500);
</script>
<div id="pop_win" style="display:none ;position: absolute; z-index: 10000; border: 1px solid rgb(220, 220, 220); top: 222.5px; left: 630px; opacity: 1; background: none 0px 0px repeat scroll rgb(255, 255, 255);">
</div>
<div id="popup_mask"></div>
<style>
#popup_mask
{
position: absolute;
width: 100%;
height: 100%;
background: #000;
z-index: 9999;
left: 0px;
top: 0px;
opacity: 0.3;
filter: alpha(opacity=30);
display: none;
}
</style>
<script type="text/javascript">
$(function(){
setTimeout(function(){
$(".comment_body:contains('回复')").each(function(index,item){
var u=$(this).text().split(':')[0].toString().replace("回复","")
var thisComment=$(this);
if(u)
{
$.getJSON("https://passport.csdn.net/get/nick?callback=?", {users: u}, function(a) {
if(a!=null&&a.data!=null&&a.data.length>0)
{
nick=a.data[0].n;
if(u!=nick)
{
thisComment.text(thisComment.text().replace(u,nick));
}
}
});
}
});
},200);
setTimeout(function(){
$(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
},5000);
setTimeout(function(){
$(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
},10000);
setTimeout(function(){
$(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
},15000);
setTimeout(function(){
$("a img[src='http://js.tongji.linezing.com/stats.gif']").parent().css({"position":"absolute","left":"50%"});
},300);
});
function loginbox(){
var $logpop=$("#pop_win");
$logpop.html('<iframe src="https://passport.csdn.net/account/loginbox?service=http://static.blog.csdn.net/callback.htm" frameborder="0" height="600" width="400" scrolling="no"></iframe>');
$('#popup_mask').css({
opacity: 0.5,
width: $( document ).width() + 'px',
height: $( document ).height() + 'px'
});
$('#popup_mask').css("display","block");
$logpop.css( {
top: ($( window ).height() - $logpop.height())/ 2 + $( window
).scrollTop() + 'px',
left:($( window ).width() - $logpop.width())/ 2
} );
setTimeout( function () {
$logpop.show();
$logpop.css( {
opacity: 1
} );
}, 200 );
$('#popup_mask').unbind("click");
$('#popup_mask').bind("click", function(){
$('#popup_mask').hide();
var $clopop = $("#pop_win");
$("#common_ask_div_sc").css("display","none");
$clopop.css( {
opacity: 0
} );
setTimeout( function () {
$clopop.hide();
}, 350 );
return false;
});
}
</script>
<script language="javascript" type="text/javascript" src="http://ads.csdn.net/js/async_new.js"></script>
<div class="clear">
</div>
</div>
</div>