您的位置:首页 > 运维架构 > Linux

[IDE] 无图形Linux环境下的程序开发IDE: vicc 发布会 - 1

2015-12-31 17:16 931 查看
 

无图形Linux服务器环境下的IDE:   vicc 发布会

Git Link:   https://code.csdn.net/qq1624646454/vicc/tree/master

----------------------------------------------------------------------------------------------------------

为了方便在各种非图形化环境下的服务器上开发大型代码,采用VIM+CTAGS+CSCOPE取代Windows下的Source Insight。

Ctags和Cscope在使用前,跟Source Insight一样,需要解析源文件代码并生成符号关系数据库,即tags文件和cscope.out文件,以便提供直观函数跟踪,调用关系,快速查找等功能,但是Ctags和Cscope所需要的tags文件和cscope.out文件,生成的操作流程繁琐,使用起来难度较大,为了降低使用门槛,提高工具效率,以简捷方便使用为宗旨,将“ vim + ctags + cscope + taglist +  mark + ... ” 按开发工作的需求进行定制并整合成一套IDE工具,以vim(vi),
ctags (c), cscope (c) 三个主要组件的首个特征字组合来命名为vicc。

特点:

     VIM: 

         (1).重新定制vim的需求,使之强制支持cscope,multi_byte中文和动态支持其它的语言特性,比如 ruby, lua, python

         (2).优化加载vimrc,plugin时路径,基于当前用户home路径,即 ~/.jllsystem/share/vim,而不是 /usr,避免了非root权限无法安装或正常使用vim

     Ctags:

              none.

     Cscope:

              优化了源文件搜索路径过短导致有些源文件无法解析(原来支持最大搜索路径250字节,目前优化为1024字节)

     vicc:

              采用bash-shell设计开发,是整套IDE的前端启动器,即vicc -t Sym 或vicc File,管理ctags和cscope的数据库文件

           (即tags和cscope.out),为VIM启动时,传递tags和CSCOPE_DB环境变量给ctags和cscope使用,以加载对应的tags

             和cscope.out符号关系数据库。

操作如下:(与Source Insight类似的操作管理代码)

进行某个大型代码的目录 -> 执行本程序:

                                                -> 新建工程

                                                       -> 新建项目(选择开发语言)

                                                               ->自动化生成tags和cscope.out并接受本程序的项目管控。

 

完成后,以后在该大型代码的任意子目录下打开源文件 ( vicc  hello.c)或 ( vicc -t main ),都会自动加载tags和cscope.out...

 

最后,这一切就是为了更加方便使用 Vim + Ctags + Cscope...

----------------------------------------------------------------------------------------------------------

 Version 目前发布的版本适用的OS:

    Ubuntu 12.04.5 LTS    64bit

    Debian 8.3   64bit

    Ubuntu 14.04.4 LTS    64bit

注: intel 平台上所运行的64位Linux,一般可以使用的。

----------------------------------------------------------------------------------------------------------

How to retrieve  " vicc ":

1.Copy the content of the ssh private key ( id_rsa ) as the follows:

-----BEGIN RSA PRIVATE KEY-----

MIIEowIBAAKCAQEAwKhONxlyhpScITU0vrFnWH/wMv6w4lLADmZOhsl+UVGnDrB9

83wiOJqA6ObodNiWT6DXL+hzg8QqLeqkqIWirrb+Yv0YJx/MoEX+KO2NGStNN42V

+8HTrIo+FRe3Wo1xF4Jm+luwbJbWfy/qyRyEp0QWaanwg1NHx4e9Cx6Jrb7i7zsG

Ma+EPbwCln72G5pju5M/bFUqNT/TXL+E39C0lFvOXNzccFBrSmdEl2g1Zip7hycp

DpK8RFmFkDqE33TSFIGuJT583A9uTRZ98jfvsdpdXl3VvcpO0SDThUp/eIDNwABr

Wq8hDWPilNFt8NaX0Hh5xdDYL8yuGs2Pdn7yHwIDAQABAoIBABdOROf1dB1DrP93

aEIJQ+84yt3gYZV/XSxgw+8aQOWlcwgb4aCqy5j9V8rU5Bn+eXB4jI+HFzJBcLjN

Qc4BHIT2Lh/bbiiNeDuLPAvHcOIyksy9m/8wm2Kr9oamr8+MfLnTVJHEtbrtJFWO

fmCFyqZRXkS6AhZg5LYGfZ/yucUCtMHHv1vTvpG3aiE94Rj3bvpQ0aI392ZlrqtH

7fZgLuoDRcWsgwL7gApUpZmcJStb+AwfIyvE99FdeEAyUEAwCnJIxcdt4ey0iwqm

Nsd//iNRH8A9rs4cK4CirzqSD63+z2Rzr2AP7C5SBYKqDd/hsFk5gljESrzpwfaR

J2hdB4ECgYEA46PKha7U0cGLMATv45ocFN5acLWT9BXPMRa69p2hmzBdnpozLrbo

bXDq0nf+wHtVd3Q3Yeup2BilKIEKmuxfOUjjxN5Tn9OGVGQf02CdJCJi+Nj8QChz

f1oGzeqth6vpHpwg7D+WvPmLDKZAO8pwJP4Vgh9D2Bc/dMoxTNunV/cCgYEA2KjO

wPoZpq8lVQBhRfMjo0eoiN46DiKiU7YtEpNbnltlyCQ8YpFp9elZ1R4QX8Ar9h8a

rsKMz9Eevb+KUCpbQnCVIEsw02RKViA0XByfhXKOzRk51URjKG6irh7Vd+0wsmSc

+8F6rPtdO4+EhUSjZ+DK9P5s2tuzO+M9APD6vRkCgYEAxtIP2KLSjkGU5+PoAcpg

LHnoU/jDuLQzupQ3x531wC2GFzhm664lYzD0Z88WWdde1m5S0NucBHnCBpZuRNGe

edIH3bKxJy8AbETm5x/DIARInUAnUYIDHn/q4X7PAWhMu8dxmeYQKg1qPSoXgCFX

wXeKIZRdFSd47PCMDqzqhBECgYBnzWDZdjnp8UoakocIQ3hUl1V41bfM4+0P3F11

4+HmWfXG0Q2ZUAALUJS4laHUrjahwb8/8XgTbSakVGuJAvIcP+JCyaOH9CnlX6KW

ayRGhF9Ehox90DkNuwv4Dk/KGHrXTXsk50rGK9w8WANu8jaz4zB59pfit5YE4Fdu

5wXKqQKBgDiTR5gV1OkYOXnxyiO1s3vve7DWHzwrhFkcJ/qY1yOlxScxHa0Q7Lni

0oze4/lQ/9Jr2JZFcE0+SfWa1EdBFAnwVX0//eqFNNBaPz3GbZ4r5NwYr+kHH/vK

eyHGtGQh0XNVfafkHIWBuCAihK4e2TwX+xUDuzxOiHvH8Q7rhtg4

-----END RSA PRIVATE KEY-----

 

2.Paste and Store the content into id_rsa in "  ~/.ssh/ "

jielong.lin@TpvServer:~$ mkdir -pv  ~/.ssh

mkdir: created directory ‘.ssh’

jielong.lin@TpvServer:~$ vim   ~/.ssh/id_rsa

-----BEGIN RSA PRIVATE KEY-----

MIIEowIBAAKCAQEAwKhONxlyhpScITU0vrFnWH/wMv6w4lLADmZOhsl+UVGnDrB9

83wiOJqA6ObodNiWT6DXL+hzg8QqLeqkqIWirrb+Yv0YJx/MoEX+KO2NGStNN42V

+8HTrIo+FRe3Wo1xF4Jm+luwbJbWfy/qyRyEp0QWaanwg1NHx4e9Cx6Jrb7i7zsG

Ma+EPbwCln72G5pju5M/bFUqNT/TXL+E39C0lFvOXNzccFBrSmdEl2g1Zip7hycp

DpK8RFmFkDqE33TSFIGuJT583A9uTRZ98jfvsdpdXl3VvcpO0SDThUp/eIDNwABr

Wq8hDWPilNFt8NaX0Hh5xdDYL8yuGs2Pdn7yHwIDAQABAoIBABdOROf1dB1DrP93

aEIJQ+84yt3gYZV/XSxgw+8aQOWlcwgb4aCqy5j9V8rU5Bn+eXB4jI+HFzJBcLjN

Qc4BHIT2Lh/bbiiNeDuLPAvHcOIyksy9m/8wm2Kr9oamr8+MfLnTVJHEtbrtJFWO

fmCFyqZRXkS6AhZg5LYGfZ/yucUCtMHHv1vTvpG3aiE94Rj3bvpQ0aI392ZlrqtH

7fZgLuoDRcWsgwL7gApUpZmcJStb+AwfIyvE99FdeEAyUEAwCnJIxcdt4ey0iwqm

Nsd//iNRH8A9rs4cK4CirzqSD63+z2Rzr2AP7C5SBYKqDd/hsFk5gljESrzpwfaR

J2hdB4ECgYEA46PKha7U0cGLMATv45ocFN5acLWT9BXPMRa69p2hmzBdnpozLrbo

bXDq0nf+wHtVd3Q3Yeup2BilKIEKmuxfOUjjxN5Tn9OGVGQf02CdJCJi+Nj8QChz

f1oGzeqth6vpHpwg7D+WvPmLDKZAO8pwJP4Vgh9D2Bc/dMoxTNunV/cCgYEA2KjO

wPoZpq8lVQBhRfMjo0eoiN46DiKiU7YtEpNbnltlyCQ8YpFp9elZ1R4QX8Ar9h8a

rsKMz9Eevb+KUCpbQnCVIEsw02RKViA0XByfhXKOzRk51URjKG6irh7Vd+0wsmSc

+8F6rPtdO4+EhUSjZ+DK9P5s2tuzO+M9APD6vRkCgYEAxtIP2KLSjkGU5+PoAcpg

LHnoU/jDuLQzupQ3x531wC2GFzhm664lYzD0Z88WWdde1m5S0NucBHnCBpZuRNGe

edIH3bKxJy8AbETm5x/DIARInUAnUYIDHn/q4X7PAWhMu8dxmeYQKg1qPSoXgCFX

wXeKIZRdFSd47PCMDqzqhBECgYBnzWDZdjnp8UoakocIQ3hUl1V41bfM4+0P3F11

4+HmWfXG0Q2ZUAALUJS4laHUrjahwb8/8XgTbSakVGuJAvIcP+JCyaOH9CnlX6KW

ayRGhF9Ehox90DkNuwv4Dk/KGHrXTXsk50rGK9w8WANu8jaz4zB59pfit5YE4Fdu

5wXKqQKBgDiTR5gV1OkYOXnxyiO1s3vve7DWHzwrhFkcJ/qY1yOlxScxHa0Q7Lni

0oze4/lQ/9Jr2JZFcE0+SfWa1EdBFAnwVX0//eqFNNBaPz3GbZ4r5NwYr+kHH/vK

eyHGtGQh0XNVfafkHIWBuCAihK4e2TwX+xUDuzxOiHvH8Q7rhtg4

-----END RSA PRIVATE KEY-----


:wq

jielong.lin@TpvServer:~$ chmod  0500    ~/.ssh/id_rsa

3.Clone "vicc" git project by the followwing commands:

 git  clone  git@code.csdn.net:qq1624646454/vicc.git 



注: 如果你的系统没有装git工具,可以按如下命令进行安装:

    aptitude show git

    aptitude install git

    aptitude install git-svn

    aptitude install git-doc

    aptitude install git-email

    aptitude install git-gui

    aptitude install gitk

    aptitude install gitweb

完成后的源码树如下:



4.Install "vicc"

安装vicc,运行如下
d7c1
命令 


注:建议使用最新的安装方法,比较简便,以参考

[IDE] 无图形Linux环境下的程序开发IDE: vicc发布会 - 2

      jielong.lin@TpvServer:~$ 
cd ~/csdn_free/vicc

      jielong.lin@TpvServer:~/csdn_free/vicc $ ./install.sh setup

这时安装程序会把jllsystem.tgz解压到  ~/ 目录下,而vicc,vim,ctags,cscope,tree,realpath等都是被放在 ~/.jllsystem/bin目录下的,与此同时,系统当中可能就会存在两个vim,它是如何优先使用 ~/.jllsystem/bin/vim ?

只要保证 系统环境变量 PATH中的内容是以 ~/.jllsystem/bin 开头即可,因此安装程序会将 PATH=~/.jllsystem/bin:$PATH写入到当前用户的~/.bashrc当中,而这个特殊的配置文件可以保证只需该用户登录,~/.bashrc就会生效。

验证  vicc -l 应当在安装vicc后先退出当前用户再用该用户的身份重新登录。

 ----------------------------------------------------

   如何使用vicc开发和管控大型源码

 ----------------------------------------------------

 实例:Android-frameworks

1.切换目录到目标源码根目录,比如 frameworks/



2.创建vicc的新工程

如果以这个目录为工程的根目录: (shell command 可以尽量用tab键自动补全),则输入  vicc  -c  

按如下图进行新建工程, 可以用 方向键或 j , k 键进行上下选择,按[enter]键进入下一步



输入新工程的名称,(注意不要与列表中的工程重名,重名会要求你重输入),这里没有已创建的工程列表,我可以不用担心重名,取个好认的工程名:AstaL_Frameworks



选择你会用到的编程语言(目前 只支持常用的如下几种),这个配置相当 于工程下的某一个项目(比如java项目 ),如果你想开发或审查java,c, c++代码,那就把这些语言都选择上(注:必要是大写,而且每次循环只选择一个,你要的都选择完成了,就输入q退出并进入下一步)





编程语言选择好后,就可以指定哪些目录下你要加入到这个工程的这个项目中,其原理是当你用 [enter] 或 [space] 键选中某个目录后,ctags和cscope会把这个目录下的源代码文件 (根据你配置的编程语言种类)收集起来并生成tags和cscope.out文件(这些文件干什么用的?给ctags和cscope用的,再不懂请百度吧)

这个配置界面的用法可以参考下图:(当然,由于frameworks工程下的实际目录可以超多,所以这个界面也支持分页,你需要到 >>>NextPage 或 <<<PrevPage

然后按[Enter]键进行切换页面.图中会看到选项的最右边有些有 +3 之类,这个表示这个目录下还有3个子目录可以进入,进入用方向键的Right,回来用Left,也可以用l或h)

...呵呵,这些功能花了我不少时间完成这个配置后,按 q 键进入下一步



接下来,你就不需要干什么了,显示的一些你配置的信息,以及在最下方可以看到一个很可爱的新建进度条(本来是没有的,因为之前我发现有些80G的源代码在创建时需要花掉很多时间等待整个黑屏,别人会以为系统挂住而干掉你的任务,无知是多么可怕呀,所以还是需要提供任务进度显示,仅仅是怕你会干掉"我的任务"而已)



OK,创建完成后,如果没有什么错误提示,就完退了...如下图:



接下来,我们可以查询下,在vicc管控范围中的所有项目,可以看到我们刚刚建立的项目 :  AstaL_Frameworks / C_CPlusPlus_Java



3.使用vicc在新建的工程上开发或审查代码:

Source Insight也是基于所创建的工程上来管理代码的,vicc也是如此。 vicc不需要你亲自打开工程,只要你进入到有创建过工程的目录,比如刚刚创建的工程是在frameworks目录,那么只需要在frameworks目录的任何子目录,vicc都可以自动帮你打开工程,如果遇到基于这个目录创建多个工程,就会列举出所有有效工程让你选择。

怎么使用?  很简单,假如你要查找main函数,但不知道它在哪个文件(在这个frameworks目录或它的任意子目录下,直接跳到main函数的定义处)



出现如下图的项目选择,因为只有一个项目 (当然有时候我会为相同根目录的源代码 工程分别创建 Java项目,C&C++项目,因为真正在Review Code时,很少出现Java会直接 调用 C&C++,就算有也是Jni),直接 回车...



剩下的事情,就是Ctags和Cscope的使用了,假如选择11项再按[enter]键就跳转进入该项对应的源文件...  ctags和cscope的使用不懂请自己另外学习。



OK.... 祝大家工作愉快 ~

============================

  Date :      2016.September.1

  Author:    jielong_lin

  Email:     1624646454@qq.com

                   or

                  493164984@qq.com

============================

展望:

      后期计划 让vicc 支持鼠标操作,Ctags和Cscope函数调用枚举窗口更加容易定位到目标函数等;

=================================================

vicc的用法,以参考后篇:  [IDE] 无图形Linux环境下的程序开发IDE: vicc发布会 - 2

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息