一直都是拿来主义,今天把自己工作使用的工具拿出来写一写。文章主要是关于建设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扩展模块