1.下载源码

git clone git@github.com:vim/vim.git

2.编译

   1.安装依赖软件

     sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \ python3-dev ruby-dev lua5.1 lua5.1-dev git

   2.删除已经安装的vim

     sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox

    Ubuntu要加上以下的

     sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox

3.配置vim,其中python路径要具体看,gui非ubuntu为gtk2,ubuntu用gtk2会有警告,看着闹心

    ./configure --with-features=huge \
            --enable-multibyte \
            --enable-rubyinterp \
            --enable-pythoninterp \
            --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu \
            --enable-python3interp \
            --with-python3-config-dir=/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu \
            --enable-perlinterp \
            --enable-luainterp \
            --enable-gui=gtk2 --enable-cscope --prefix=/usr --enable-fontset

   4.编译,路径要看readme里的版本号

    make VIMRUNTIMEDIR=/usr/share/vim/vim80

   5.安装vim

    sudo apt-get install checkinstall

    sudo checkinstall

3.安装clang和gcc/g++等软件

    1.安装clang

     去http://apt.llvm.org/看地址,用以下命令安装

sudo wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -

      sudo apt-add-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main" #修改/etc/apt/sources.list.d/additional-repositories.list文件,添加这个地址

      sudo apt-get update

      sudo apt-get install clang-3.9 lldb-3.9 libclang-3.9-dev

     网站上也有完整安装包的命令

      sudo apt-get install clang-4.0 clang-4.0-doc libclang-common-4.0-dev libclang-4.0-dev libclang1-4.0 libclang1-4.0-dbg libllvm-4.0-ocaml-dev libllvm4.0 libllvm4.0-dbg lldb-4.0 llvm-4.0 llvm-4.0-dev llvm-4.0-doc llvm-4.0-examples llvm-4.0-runtime clang-modernize-4.0 clang-format-4.0 python-clang-4.0 lldb-4.0-dev liblldb-4.0-dbg

2.安装gcc/g++

# Install GCC 4.9

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

sudo apt-get install g++-4.9

# Prefer 4.9 to other versions

sudo update-alternatives --remove-all g++

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 50

4.安装universal-ctags

    1.下载

git clone https://github.com/universal-ctags/ctags.git

    2.安装autotools

sudo apt-get install autoconf automake pkg-config

3.配置,编译,安装

     ./autogen.sh

./configure --prefix=/usr

     make

     sudo checkinstall 

4.使用

     1. 默认配置文件是~/.ctags,目前如下,所以直接跑ctags就可以了

# Basic options
--sort=foldcase
--tag-relative=yes
--file-scope=yes
--fields=+l
--exclude=.git
--extra=+qf
--C-kinds=+pqxzL
--recurse=yes
#--langmap=c:.c.h

2. --list-kinds=c可以查看C语言支持的tag类型;--fields=+ 可以添加每个tag项里的拓展字段,说明更多信息

3. vim -t tags打开tag文件; ptag 标签项名打开窗口预览; pclose关闭; :tags显示当前tag栈; :tag跳转到tag栈中下一个项; CTRL+]跳转到定义处; CTRL+t跳转到tag栈中上一个项,gd或gD跳转到局部变量定义处

4. 其他跳转指令: CTRL + o跳转到上一处跳转点; CTRL+I跳转到下一处跳转点; :jumps列出跳转栈; g;跳转到上一个修改点; g,跳转到下一个修改点; :changs列出修改栈

     

5.v,V,CTRL+v选择相应的光标所经过的区域,:disp命令显示寄存器内容;寄存器名字前边都有","%是当前文件名,"*是系统剪切板的数据,“+是选中的数据;插入模式下CTRL+R后接寄存器名称,即可粘贴内容;命令模式中输入CTRL-R";CTRL+^会切换到上一个文件,即"#寄存器的内容

6.移动命令w,e,ge,b分别移动到下一个单词头,当前单词尾,上一个单词尾,上一个单词头。大写的W,E,gE,B则认为空白字符是分隔单词的,而非iskeyword定义的单词字符

7. 正常模式CTRL+R是redo,和U相反;/CTRL+R CTRL+W会搜索当前光标所在的单词,CTRL+R CTRL + W也可以在命令模式下和其他的命令搭配,比如ptag;[[为上一个函数体,]]为下一个函数体;diw或daw会剪切括号内或包含括号的单词

新环境配置与使用Vim指南的更多相关文章

  1. OpenCV On Android环境配置最新&最全指南(Android Studio篇)

    本文是从本人简书上搬运而来,属本人原创,如有转载,请注明出处:http://www.jianshu.com/p/6e16c0429044 简介 本文是<OpenCV On Android环境配置 ...

  2. OpenCV On Android环境配置最新&最全指南(Eclipse篇)

    简介 本教程是经过本人多次踩坑,并参考网上众多OpenCV On Android的配置教程总结而来,尽希望能帮助学习移动图像处理的朋友们少走弯路.这也是本人第一次在简书上发布文章,如有不足,希望各位d ...

  3. wordpress nginx详细环境配置安装命令和相关问题解决

    很详细的有关WordPress和nginx的环境配置安装操作步骤 指南,适合新手一步步按照命令操作安装WordPress并运行在生产环境中. 操作步骤转载自: Heap Stack blog(ping ...

  4. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  5. 第6天【egrep、bash环境配置及脚本、vim编辑器】

    bash环境配置及脚本(02)_recv bash环境配置及脚本(02)_recv bash环境配置文件: 按生效范围划分,存在两类: 全局配置: /etc/profile /etc/bashrc 个 ...

  6. 【vim环境配置】解决ubuntu上 由YouCompleteMe插件配置不当引起的 自动补全失效的问题

    背景: 由于不可抗拒的原因,学习环境由之前centos的一台机器上,变成了ubuntu的一台机器上.因此,需要在新的ubuntu的机器上再配置一次vim环境.算起来这已经是第三次配置vim环境了(ma ...

  7. 【vim环境配置】详细实录

    [写在前面] 以下的所有内容主要参照: https://github.com/yangyangwithgnu/use_vim_as_ide . 原blog作者写的非常用心,建议大家都去看看.(个人觉得 ...

  8. 【原创】LoadRunner Java Vuser开发环境配置指南

    1 编写目的 本文主要介绍Java运行环境的配置,同时通过编写HelloWorld程序,讲解在LoadRunner下如何开发简单的Java Vuser脚本.关于Java语言的深入学习,大家可以参考其他 ...

  9. myeclipse 环境配置优化,不断跟新整理中

    myeclipse 环境配置,不断跟新整理中1.General --->Workspace ---> UTF-8 工作环境编码2.General --->Editors --> ...

随机推荐

  1. PCA算法

    本文出处:http://blog.csdn.net/xizhibei http://www.cnblogs.com/bourneli/p/3624073.html PrincipalComponent ...

  2. Dijkstra--POJ 2502 Subway(求出所有路径再求最短路径)

    题意: 你从家往学校赶,可以用步行和乘坐地铁这两种方式,步行速度为10km/h,乘坐地铁的速度为40KM/h.输入数据的第一行数据会给你起点和终点的x和y的坐标.然后会给你数目不超过200的双向地铁线 ...

  3. Beautiful People 分类: Brush Mode 2014-10-01 14:33 100人阅读 评论(0) 收藏

    Beautiful People Time Limit: 10000/5000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)   ...

  4. NYOJ-289 苹果 289 AC(01背包) 分类: NYOJ 2014-01-01 21:30 178人阅读 评论(0) 收藏

    #include<stdio.h> #include<string.h> #define max(x,y) x>y?x:y struct apple { int c; i ...

  5. Oracle 导入导出数据 imp/exp impdp/expdp

    IMPDP/EXPDP 一.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建.         create directory dpdata as '/opt'; 二 ...

  6. 在当前iframe中, 获取Iframe的id

    window.frameElement   返回嵌入当前window对象的元素(比如 <iframe> 或者 <object>),如果当前window对象已经是顶层窗口,则返回 ...

  7. uitableviewcell 和 uibutton

    如果cell上面只有一个button  可以设置button.tag=IndexPath.Row;得到当前点击的行数,设置button属性的时候,可以设置一个全局的button来记住当前点击的butt ...

  8. [开发]Win7环境下Eclipse连接Hadoop2.2.0

    准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立mven工程,并编辑pom文件如下 <dependencies> <dependency> <gr ...

  9. javascript实现数据结构:线性表--简单示例及线性表的顺序表示和实现

    线性表(linear list)是最常用且最简单的一种数据结构.一个线性表是n个数据元素的有限序列.在稍复杂的线性表中,一个数据元素可以由若干个数据项(item)组成. 其中: 数据元素的个数n定义为 ...

  10. MYSQL注入天书之后记

    后记 对于工具的看法: 我之所以在每个例子中只写了几个示例,是因为我希望你能通过这一两个示例举一反三将其他的列出来.如果让我来完成每一次完整的注入,应该在知道原理的情况下,必然使用工具或者自己写代码实 ...