拿来主义

一直都是拿来主义,今天把自己工作使用的工具拿出来写一写。文章主要是关于建设vim的IDE环境和windows下进行linux相关工作的解决方案

 

 

 

第一篇:windows下进行linux相关工作的解决方案

生活交流需要用到windows,工作需要大部分时间花在远程linux机器上,怎么一举两得?

 

    既然hi和邮件的交流时刻都在进行,所以系统环境定位在windows!那linux怎么办?苦逼的将代码 tar打包,sz –be 下载到windows本地用eclipse等工具查看,然后再在linux下用vim写代码,编译、调试?(其实vim ide也能很强大,我目前还是用这种模式开发)

 

用samba+minGW+securecrt+eclipse解决上述问题:

1、  开发的时候经常要看大量的代码,如果有nfs类似的挂接到windows这边,eclipse直接就能打开看,直接编写,直接保存,就greate了!ftp啥的都是浮云!

 

用samba解决,具体samba的安装参考

关于本地让eclipse能直接操作远程的文件系统,那还得加上几个步骤:

A、windows下映射网络文件夹

B、其它就如本地磁盘操做类似了~

注意最后一个盘符,就是它

 

2、  再次解决本地编译、远程调试问题,这时需要mingw+gdbserver了

A、要使用的工具

mingw-get-inst-20120426.exe

gdb-7.4.1.tar.gz

eclipse-cpp-indigo-SR2-incubation-win32.zip

B、安装及配置

安装mingw

打开mingw-get-inst-20120426.exe,一路next,在选择组件对话框中选择Ccompile、C++ compile、MS Baseic System如下图:

 

 

minGW编译GDB

进入C:\MinGW\msys\1.0运行msys.bat打开minGW模拟环境

拷贝gdb-7.4.1.tar.gz到当前用户目录(C:\MinGW\msys\1.0\home\tuxingkai)

tar zxvf gdb-7.4.1.tar.gz

cd gdb-7.4.1

./configure --target=i686-pc-linux-gnu 这一步很重要,要指定目标机器的类型

make && make install

安装成功后将C:\MinGW\msys\1.0\local\bin目录下的i686-pc-linux-gnu-gdb.exe拷贝至C:\MinGW\bin目录下

 

控制面板--〉系统--〉系统详细设置--〉环境变量 

MINGW_PATH=C:\MinGW

LIBRARY_PATH=%MINGW_PATH%\lib;%MINGW_PATH%\lib\gcc\mingw32\4.6.2;

C_INCLUDE_PATH=%MINGW_PATH%\include%MINGW_PATH%\lib\gcc\mingw32\4.6.2\include;

CPLUS_INCLUDE_PATH=%MINGW_PATH%\include%MINGW_PATH%\lib\gcc\mingw32\4.6.2\include\c++;%MINGW_PATH%\lib\gcc\mingw32\4.6.2\include\c++\backward;%MINGW_PATH%\lib\gcc\mingw32\4.6.2\include\c++\mingw32;

PATH=%MINGW_PATH%\bin;%MINGW_PATH%\libexec\gcc\mingw32\4.6.2 

 

MinGW的安装目录C:\MinGW\bin下将mingw32-make.exe复制成make.exe,不然提示会找不到make

 

使用Eclipse创建C++工程

打开Eclipse,将工作目录切换到Z:\Project下,新建C++工程

选择当前的编译方式为Gnu Make builder

 

编译HelloWorld工程,eclipse 将会在Debug目录下自动生成makefile文件

 

在Linux下切换到HelloWorld/Debug目录下,执行make clean;make编译Linux下可执行文件

 

配置远程调试

 Linux服务端启动gdbserver

在eclipse环境下设置“调试配置”

 

 

 

配置完成后,点击Debug就可以远程调试了

 

 

 

第二篇:vim ide

写这篇文章首先得感谢闯哥的exvim推荐,此ide基于它,增加了vimgdb、tagbar、gdb升级、taghiglight等工具

 

1、  Exvim

http://www.ex-dev.com/exvim/wiki/index.php?title=Main_Page此ide的快捷键非常多非常多,请务必自行看上面url的内容

 

A.主要部分安装

安装cscope

 

安装idutils

 

安装vim-7.3.tar.bz2并添加cscope、gdb支持:

编译vim73的configure参数:

./configure --prefix=$HOME--with-features=huge --enable-gnome-check --with-x --enable-xim--enable-pythoninterp=yes --enable-cscope --enable-fontset --enable-perlinterp--enable-multibyte --enable-netbeans --with-vim-name=vim73--enable-pythoninterp --enable-gdb

 

下载ExVim全量包full_package-unix-8.05_b2.zip

 

B、exvim配置

1、exvim解压后将toolkit放到~/.toolkit,将vimfiles内容放到.vim,将.vimrc_ex放到~/.vimrc_ex,在.bashrc中添加exportEX_DEV=~/exdev,在.vimrc中添加let g:ex_toolkit_path='~/.toolkit' ,source ~/.vimrc_ex 两行

         2、~/.toolkit/quickgen/bash/quick_gen_project.sh  为主要的:Update命令生成tag、ID、symbol的脚本

其中需要修改的地方如下:

gen_filenamelist ()

221 {

222    if test "$support_filenamelist" = "true"; then

223        echo "Creating Filename List..."

224

225        # create filenamelist_cwd

226        echo "  |- generate_filenamelist_cwd"

227        #if test "${dir_filter}" != ""; then

228        #     # NOTE: if we have dirfilter, we still need get files in root directory

229        #     find ${force_posix_regex_1}. -maxdepth 1 ${force_posix_regex_2} -regex".*\.("${file_filter}")" > "./${vimfil

230        #     find ${force_posix_regex_1}${dir_filter} ${force_posix_regex_2} -regex".*\.("${file_filter}")" >> "./${vimfi

231        # else

232             echo "gen_filenamelist"

233             du -a|awk '{print $2}'|egrep".*${file_filter}$" >"./${vimfiles_path}/_filenamelist_cwd"

234        #fi

解决无法建tag的问题,修改~/.toolkit/quickgen/bash/quick_gen_project.sh,将其中的

find ${force_posix_regex_1} .${force_posix_regex_2} -regex ".*\.("${file_filter}")" >"./${vimfiles_path}/_filenamelist_cwd"

改为

du -a|awk '{print $2}'|egrep".*${file_filter}$" >"./${vimfiles_path}/_filenamelist_cwd"

同时要将上面的if块注释掉,保证if分支能运行到上面这一行命令,在函数gen_filenamelist()中

原因是find不支持-E参数

 

C、taghiglight 插件安装,让代码有颜色

 

NOTE:补充,在~/.vim/after/syntax/cpp.vimc.vim加自定义匹配的syntax高亮,例如数学运算符,括号等

 

1、首先要安装颜色easycolour_r1.1.1.zip

配置vimrc中:

colorscheme bandit 

安装bandit的补充颜色方案,补充颜色方案是为了更加进一步区分vim颜色的不足,

因为vim目前高亮的区分粒度不够细,导致着色时很多都是一个颜色。

bandit安装两个文件

/home/klarclm/.vim/colors/bandit.txt    是颜色补充的配置文件,会指明哪些部分用哪

些颜色,并且可以使用easycolour的语法做详细配置(具体参开easycolour里面的doc)

/home/klarclm/.vim/colors/bandit.vim   调用easy的load颜色的接口即让txt里面的颜色

配置生效

 

2、  安装taghiglight

使用updatetypesfile命令启动着色

 

补充下面自定义颜色时要用到的一些知识和注意点

1、语法高亮颜色组:在vim中输入:help group-name

 

2、taghiglight的颜色组

参考taghiglight的doc: Colouring         *TagHighlight-colours*       

         Tosee the full list of supported groups for a given language, open up

         plugin/TagHighlight/data/kinds.txtand find your language.  The bit after

         CTagsis the name of the highlight group.  Forexample, for C++, there is

         theentry:         d:CTagsDefinedName,但是具体指定时的颜色组的命名要去掉CTags前缀

 

此插件扩展的具体颜色组类别和设置:./plugin/TagHighlight/data/kinds.txt

 

3、taghiglight 会自动往上级目录找tag文件,找到后就会在当前目录用tag生成

types_c.taghl的着色文件

当然可以设置taghighlt 工程文件:taghl_config.txt 此时它会找到此级目录生成文件

通常如果调用updatetypesfile命令,它会自己去建tag,但是调用updatetypesfileonly就

会用我们自己建好的tag去生成。

NOTE:不要用它updatetypesfile自动生成tag,这个tag无

法识别.h文件中只有函数声明的tag。要用ctag这个软件自己先生成然后再调用

updatetypesfileonly去生成就能解决此问题。

 

4、taghiglight 也有工程和着色文件include的概念,在你的工程根目录添加taghl_config.tx文件

taghl_config.txt内容例子:

                                     IncludeLocals:True

                                     UserLibraries:/home/user/libraries/lib1/types_c.taghl    将指定工程的着色文件引入到本工程中

 

5、配合exvim的使用:

首先先清理工程文件夹下所有子目录的tag和types_c.tagl文件。然后

先调用up生成tag,tag位置在工程文件夹的./.vimfile.pr中,再调用updatetypesfileonly,会在此文件

中生成types_c.tagl着色文件,但是打开工程代码没法着色,这时如果再次调用

updatetypesfileonly会在工程目录下重新生成一个types_c.tagl。而它自身生成的tags有

个bug:无法将只有.h文件的函数的tag生成,导致无法着色。解决办法:将./.vimfile.pr

中的types_c.tagl着色文件拷贝到工程文件夹下即可实现着色。

 

taghight plugin:

插件的快捷键被我从:UpdateTypesFile 改成了:  :FreshTypesFile

Implementation

First time round, use :cd to get to theproject root and run:

:UpdateTypesFile

 

 

6、来一张配置后的效果图:

 

 

 

D、插件 tagbar

Taglist已经很过时了,用用这个,很强大

.vim/autocmd/tagbar.vim 中 定义了function!s:MapKeys()所有的快捷键和功能函数,需要改可以去那改

 

 

E、插件 vimgdb

还记得我们在编译vim7.3的时候加了这么一句--enable-gdb,那么vimgdb的安装就easy了,请自行百度下载相关文件。

但是会遇到一个配置问题:

:set gdbprg=/path/to/gdb

请把上面的/path/to/gdb替换成你计算机中GDB程序所在的路径。你可以把这句话加到你的vimrc中,这样每次启动vi时会自动设置此变量。

 

F、gdb的print在显示string和stl的时候,完全没法看,怎么办?

 

1、svn cosvn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch/libstdc++-v3/python

放到~/.gdb/中,目录中将会有python文件夹

2、vi ~/.gdbinit 输入:

  1python

  2import sys

  3sys.path.insert(0, '/home/work/.gdb/python')

  4from libstdcxx.v6.printers import register_libstdcxx_printers

  5 register_libstdcxx_printers(None)

  6end

3、配置python环境,NOTE:只有pthon2.5.2才能支持上面svn co下来的代码,不然会缺

很多python扩展模块

你可能感兴趣的:(拿来主义)