将vi打造成IDE

一.环境

发行版:Ubuntu 18.04 LTS

代号:bionic

内核版本:4.15.0-33-generic

 

 

二.步骤

2.1 准备工作

sudo apt-get install python3-pip clang cmake python2.7-dev  -y

pip3 install future frozendict

 

2.2 获取vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

(将vunble安装在~/.vim/bundle目录下)

2.3 创建一个配置文件~/.vundle.vimrc,如果直接将配置加入~/.vimrc,那么会导致~/.vimrc太臃肿

jello:~$ cat .vundle.vimrc
set nocompatible "必须的,去除vi一致性
filetype off "必须的,关闭文件类型检测

set rtp+=~/.vim/bundle/Vundle.vim "设置vundle的运行时路径并进行初始化

call vundle#begin() "插件开始位置
Plugin 'VundleVim/Vundle.vim' "使得vundle自己管理自己
Plugin 'junegunn/fzf' "文件搜索
Plugin 'rking/ag.vim' "批量搜索代码文件,模糊匹配,正则表达式
Plugin 'w0rp/ale' "代码对齐(只支持vim8.0以后的版本)
Plugin 'easymotion/vim-easymotion' "快速跳转
Plugin 'mhinz/vim-signify' "版本控制(git,svn)
Plugin 'majutsushi/tagbar' "源代码符号的结构化视图
Plugin 'scrooloose/nerdtree' "目录树
Plugin 'vim-scripts/cscope.vim' "自动创建cscope数据库和连接存在的合适的数据库
Plugin 'vim-scripts/autoload_cscope.vim' "自动搜索和加载cscope.out
Plugin 'vim-scripts/a.vim' "源文件和头文件之间的快速切换
Plugin 'Valloric/YouCompleteMe' "自动补全工具(c,c++,c#)
Plugin 'vim-scripts/AutoTag' "当保存文件时自动更新tags文件

Plugin 'erig0/cscope_dynamic' "自动动态更新cscope


call vundle#end() "插件结束位置
filetype plugin indent on "必须的,文件检测功能打开,加载文件类型相关的插件,为不同文件类型选择合适的缩进方式

 

2.4 编辑~/.vimrc,以便自动加载.vundle.vimrc

jello:~$ cat .vimrc
if filereadable(".vundle.vimrc")
        source ~/.vundle.vimrc
endif

2.5 启动vim,在命令模式下输入以下命令以便安装插件

:PluginInstall

 

2.6 设置tab键为4个空格

请看这里 

 

2.7 关键字颜色改成绿色并且非粗体,加入以下一行到~/.vimrc即可

 

hi Identifier ctermfg =green cterm =none

 

2.8 注释颜色改成蓝色,加入以下一行到~/.vimrc即可

hi Comment ctermfg =blue

 

2.9 查看启动各插件消耗的时间

vim --startuptime timeCost.txt timeCost.txt

 

2.10 改变窗口配色方案,往.vimrc中加入以下语句即可

:colorscheme desert

 

2.11 启动vi后提示The ycmd server SHUT DOWN (restart with :YcmRestartServer)该如何处理

  请查看这里

 

总结:

  所有配置请见仓库:https://gitee.com/Jello_Smith/vim_ide (可一键安装噢)

转载于:https://www.cnblogs.com/dakewei/p/9738133.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解题: SDOI 2011 染色

题面 强行把序列问题通过树剖套在树上。。。算了算是回顾了一下树剖的思想。 每次树上跳的时候注意跳的同时维护当前拼出来的左右两条链的靠上的端点&#xff0c;然后拼起来的时候讨论一下拼接点&#xff0c;最后一下左右两边的端点都要考虑 1 #include<cstdio>2 #includ…

decode()、nvl()等用法详解

1、decode( 条件, if1, then1, if2, then2&#xff0c; 缺省值 )&#xff1a; 当条件 1时&#xff0c;则为1&#xff1b;else条件 2时&#xff1b;则为2&#xff1b;都不等时&#xff0c;为缺省值。 2、nvl&#xff08;a , b&#xff09;函数&#xff1a;如果a为NULL&#xf…

java.lang.OutOfMemoryError: PermGen space

使用Tomcat报java.lang.OutOfMemoryError: PermGen space错误时&#xff0c;这是tomcat的内存不够的原因&#xff0c;也就是tomcat的内存溢出。 这是我们只要在tomcat的配置下添加服务内存就可以了&#xff0c;添加内存方法&#xff0c;只要加入 -Xms256M -Xmx512M -XX:PermS…

js继承问题

JavaScript 继承问题 继承的发展史 传统形式 ----> 原型链 继承了父級的所有的属性&#xff08;原型链上的也会继承&#xff09;过多的继承了没有用的属性&#xff0c;代码冗余&#xff0c;执行效率低下子級无法向父級进行传参如果要给之級通过原型来添加属性和方法&#xf…

怎么把jad反编译放到Eclipse中

可以在CSDN下载页上进行下载哦&#xff0c;免费的哦&#xff0c;不要积分。 http://download.csdn.net/detail/farxix/9838195 我们把下载下来的jad资源包解压出来&#xff0c;如下图&#xff1a; 首先&#xff1a; 然后&#xff1a; 打开eclipse进行设置&#xff0…

一些很有意思的JS现象

关于JS对象的 . 和 [] []除了属性名可以比 .天马行空以外(比如我们要添加一个为33-abc的属性&#xff0c;一定得用[]))&#xff0c;还有一个实际操作中的区别 Object.is的作用和两个奇特的现象 还记得isNaN的作用&#xff0c;但有时候我们就想直接比较两个数据&#xff0c;总不…

怎么查看eclipse的版本号

在电脑上找到你安装eclipse的路径&#xff0c;找到readme点击打开&#xff0c;如下图所示&#xff1a; 查看版本号&#xff1a;

asp.net Page.Controls对象(找到所有服务器控件)

前台 复制代码 代码如下:<% Page Language"C#" AutoEventWireup"true" CodeFile"Default.aspx.cs" Inherits"_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3…

Vue2.0 脚手架代码详解

参考作者&#xff1a;https://www.jianshu.com/p/2b661d01eaf8 只是为了方便个人学习。 来看一下脚手架创建后的项目目录 说明&#xff1a;在*.vue文件&#xff0c;template标签里写html代码&#xff0c;且template直接子级只能有一个标签。style标签里写样式&#xff0c;scrip…

如何使用多个端口访问tomcat

查端口号是否被占用 在cmd中使用 netstat -ano 命令&#xff1b; 处理端口号使用命令 taskkill /pid 1234 ( 8080指的是端口号对应的PID 号 ) 在使用tomcat服务器做为开发使用时&#xff0c;如果我们有多个项目要发布、启动时怎么办呢&#xff0c;在一个tomcat下添加多个项目…

设计模式总纲

根据设计模式的参考书 Design Patterns - Elements of Reusable Object-Oriented Software&#xff08;中文译名&#xff1a;设计模式 - 可复用的面向对象软件元素&#xff09; 中所提到的&#xff0c;总共有 23 种设计模式。这些模式可以分为三大类&#xff1a;创建型模式&…

indexOf、lastIndexOf、substring等详解

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。注意&#xff1a;这个方法返回的是出现的位置&#xff0c;是从0开始检索&#xff01; 例如&#xff1a; hello是父字符串&#xff0c;ello是需要在父字符串中进行检索的子字符串&#xff0c;1是开始检索的位…

编码是件有逻辑的事情

勤劳是最基本的&#xff0c;所能做的就是花更多的时间在上面。 就算最后不能成功&#xff0c;尽力就好。 First . 充分清楚需求改造内容&#xff0c;具体到 哪个字段、逻辑处理等。 这是编码的核心&#xff0c;清楚了需求才能进行编码&#xff0c;也决定了你编码后续的测试情况…

win10 安装mysql 8.0.12

按照CSDN以及博客园的其他教程, 之前安装过几次都有或多或少的bug 主要安装步骤: 1.配置my.ini文件 2.管理员进入终端, 切换到.../bin目录下进行操作 3.指令操作: 1) mysqld --initialize --console              此指令正常情况下, 可以自动生成一项随机密码, 一…

6 月

事情很多&#xff0c;需一件一件去做&#xff0c;不急不躁。 天气飘忽不定&#xff0c;不带伞时就下雨&#xff0c;带伞时偏不下雨&#xff0c;猜不透少女心。 没有去看书&#xff0c;很快又过去一月&#xff0c;一年也很快。 打了场篮球&#xff0c;锻炼还需勤快。 遇到问…

pmd 设置默认规则,只要使用了该规则集就自动使用

pmd规则集是在rulesets的对应xml里. 之前研究pmd的时候,发现如果配置规则时使用<rule ref"rulesets/java/...xml">形式的话,该规则就怎么样都会被使用. 即便命令行参数传入的要求只调用该规则集xml里的某一个规则. 现在反过来,如果想使用某个规则集的时候,某一…

查看端口占用情况

当tomcat被占用时&#xff0c;可以使用命令行来解决占用问题&#xff1b; 打开cmd 输入netstat -ano|findstr 7001 即可找到相应的pid号 7016 再使用taskkill /f /pid 7016 就可以去除占用端口号情况。

Delphi---TServerSocket和TClientSocket发送和接收大数据包

https://www.cnblogs.com/zhangzhifeng/p/6065244.html TServerSocket和TClientSocket用非阻塞模式发送和接收比较大的数据时&#xff0c;可能一次会接收不完&#xff0c;此时需要通过循环接收。 //接收 procedure TMAINFORM.TCPServer1ClientRead(Sender: TObject;Socket: TCu…

表连接的详解

表A &#xff1a; ID NAME 1 , kobe 2 , pual 3 , tim 表B &#xff1a; ID NAME 1 , kobe 2 , pual 5 , michal 内连接&#xff1a;两表相交叉的部分 select a.ID,a.NAME,b.ID,b.NAME from A a inner join B b on a.IDb.ID; 结果为&#xff1a;1 , kobe2 , pual1 , kobe2 ,…

译:1. RabbitMQ Java Client 之 Hello World

这些教程介绍了使用RabbitMQ创建消息传递应用程序的基础知识。您需要安装RabbitMQ服务器才能完成教程 1. 打造第一个Hello World 程序 RabbitMQ是一个消息代理&#xff1a;它接受和转发消息。你可以把它想象成一个邮局&#xff1a;当你把你想要发布的邮件放在邮箱里时&#xff…