一、更新软件源和系统
1. 更新软件源
apt-get update
2. 更新系统
apt-get upgrade
3. 安装源码编译环境
apt-get install build-essential
二、设置root密码
用安装光盘引导进入Ubuntu迷你系统后我是按照安装向导来进行帐号、分区等设置,而在这个安装向导程序中没有提示进行root密码的设置,所以在 Ubuntu安装好后需要手动设置root密码。而如果是跳过安装向导,点击桌面上的Install图标来进行安装的话,在安装过程中则会提示设置 root密码。当然,如果需要修改root密码也可以使用以下方法:
jjxiaoyan@jjxiaoyan:~$ sudo passwd root
[sudo] password for jjxiaoyan:
输入新的 UNIX 口令:
重新输入新的 UNIX 口令:
passwd:已成功更新密码
jjxiaoyan@jjxiaoyan:~$ su
口令:
三、VMWare下鼠标中键不能用的问题
在实机中安装Ubuntu没发现有这个问题,由于之前在实机中安装了一次Ubuntu,发现对这个系统太缺乏了解了,所以觉得应该在虚拟机下多熟悉熟悉才行。而在FireFox中浏览网页时却发现无法使用鼠标中键,下面是解决办法:
# vi /etc/X11/xorg.conf
将
Section "InputDevice"
Identifier "Configured Mouse"
Driver "vmmouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
EndSection
修改为
Section "InputDevice"
Identifier "Configured Mouse"
Driver "vmmouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "yes"
EndSection
然后重启一下VMWare中的Ubuntu。
四、安装Adobe Flash Player
$ wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz
解压后再执行如下命令:
sudo cp libflashplayer.so /usr/lib/mozilla/plugins/
由于Ubuntu8.04中的FireFox版本是3.0,该版本是不支持Flash Player 10的,所以还需要在新立得软件管理器中将FireFox3.0升级到FireFox3.6。
五、使用万能五笔输入法
参考文章:http://forum.ubuntu.org.cn/viewtopic.php?t=99877
1. 下载 bin文件:http://forum.ubuntu.org.cn/download/file.php?id=26133
2. 解压,复制Wnwb.bin到/usr/share/scim/tables,如没有此文件夹就自己建一个,记得用sudo换root权限
3. 重启SCIM
sudo pkill scim && scim -d
4. 运行SCIM配置程序
sudo scim-setup
5. 输入法引擎:全局设置:简体中文:万能五笔(勾选):确定
6. 重启系统。
五、安装Fixedsys等宽字体
不用多说,Fixedsys是Windows程序员酷爱的一个字体,还好在Linux下也有移植该字体。
1. 下载字体:
(1) http://fixedsys.moviecorner.de/index.php?p=download&l=1
(2) http://www.fixedsysexcelsior.com/
第一个有不少字母的显示都比较模糊,比如"w","0","p","=","/"。网上的文章是推荐第二个,这个字体在控制台下没任何问题,但在GUI编辑器中会出现“A”字母只能显示一半的情况,比如在gedit和gvim中。两个字体都不完美,如果使用VIM写程序就用后者,如果GUI程序用得多,而且经常读代码,那就凑合着用第一个吧,不过第一个字体确实有待改进。还有一个办法可以解决第一个字体模糊的问题,那就是修改编辑器的配色方案。
2. 拷贝文件到/usr/share/fonts/truetype/freefont
记得要重启一下电脑。
六、C/C++开发环境搭建
1. 搜索安装包命令
apt-cache search php5
通过该命令可以搜索名称中包含有“php5”的安装包。由于有些安装包的名称中包含了版本号,比如“libcurl4-openssl-dev”,这样的名称是很不好记忆的,所以通过“apt-cache search libcurl”命令就能很方便的查找到该安装包的全称,然后用“apt-get install libcurl4-openssl-dev”进行安装就行了。
2. VIM安装
Ubuntu中默认安装了VIM tiny版本,所以需要重新安装VIM的全功能版。
apt-get install vim-full
3. 安装Curl开发包
这个是一个HTTP开发库,可以方便的进行GET/HEAD/POST等常用应用,最简单的应用就是获取网页源码。
apt-get install libcurl4-openssl-dev
4. 安装iconv库
这个库主要用于编码转换,比如Utf-8转Ansi,以及Ansi转Utf-8。
在安装源码编译环境后(apt-get install build-essential),在/usr/include中就包含了该库的头文件,但在编译包含了iconv.h的程序时会提示“/usr/bin/ld: cannot find -liconv”,这显然是没有找到链接库。在系统中用尽了自己所知道的办法来查找iconv的链接库,结果还是找不到。那就自己再编译安装一遍吧!
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar zxvf libiconv-1.13.1.tar.gz
./configure -prefix=/usr/local
make && make install
经过以上的编译和安装,就能在/usr/local/lib中找到iconv的链接库了,最后再用ln命令建立一个软链接到系统默认的链接库路径/usr/lib中就可以了。
ln -s /usr/local/lib/libiconv.so /usr/lib
ln -s /usr/local/lib/libiconv.so.2 /usr/lib
5. 安装MySQL开发包
apt-get install libmysqlclient15-dev
6. 安装pcre开发包
apt-get install libpcre3-dev
7. 测试安装的库是否可用
示例程序源码(main.cpp):
#include <curl/curl.h>
#include <iconv.h>
#include <mysql/mysql.h>
#include <pcre.h>
#include <iostream>
using namespace std;
int main()
{
return 0;
}
编译:
g++ -lmysqlclient -lcurl -liconv -lpcre main.cpp
安装了这几个开发包后,就可以在VIM写一些网络程序了,不过以后可能会用到一些第三方库,比如MySQL的C++ API--MySQL++,以及线程池库,MySQL++我都没用过,之前都是自己用MySQL C API简单的包装了一个C++类来操作MySQL。而线程池库,自己没能力用pthread来写线程池,试用过glib的线程池类,但用着不太顺手。至于boost中的线程池,以前好像用过,但具体的感受已经忘记了。
七、VIM开发环境配置
默认情况下,VIM只适合用来编辑文本,而要在VIM下进行程序开发,则需要自己定制,比如语法高亮、多文件切换、代码提示以及函数定义查找等。
vim /etc/vim/vimrc
1. 语法高亮
syntax enable
syntax on
2. 多文件切换
下载地址: http://www.vim.org/scripts/script.php?script_id=159
功能:多文件切换
minibufexpl插件只有一个.vim文件,下载解压后将其复制到VIM安装目录的plugin目录下即可。Ubuntu下VIM的默认安装路径为/usr/share/vim/vim71。
重启VIM,如果打开了两个以前的文件,就可以看到minibufexpl的界面了。
3. 源文件之间跳转
下载地址:http://www.vim.org/scripts/script.php?script_id=31
功能:源文件之间的跳转
快捷键:
:A 在新Buffer中切换到c\h文件
:AS 横向分割窗口并打开c\h文件
:AV 纵向分割窗口并打开c\h文件
:AT 新建一个标签页并打开c\h文件
4. QuickFix
功能:这个插件是VIM自带的,可以查看编译错误信息
快捷键:
:cw 显示QuickFix窗口
:cn 切换到下一个结果
:cp 切换到上一个结果
5. ctags
ctags的作用是为系统头文件及自己的程序头文件建立索引,有了这个索引后,就可以使用其它VIM插件来实现相应的功能,比如我需要的功能就是代码提示,那就需要用omnicppcomplete插件,但该插件是依赖于ctags的。
apt-get install exuberant-ctags
6. 代码自动提示
这个功能是非常重要的,我第一次测试在Linux下写程序,该测试程序就是一个获取网页源码的C++程序,但光调试就几乎用了七八个小时,不是类的函数调用名称写错,就是语法错误,反正都是很基本的错误。虽然其原因是不会gdb调试,当时也不会写makefile文件,但没代码提示功能,确实让写程序的效率大打折扣。
wget -O omnicppcomplete-0.41.zip "http://www.vim.org/scripts/download_script.php?src_id=7722"
以下命令在root权限下执行
unzip omnicppcomplete-0.41.zip -d ~/.vim
以下命令在当前用户下执行
unzip omnicppcomplete-0.41.zip -d ~/.vim
因为omnicppcomplete会在当前用户的.vim目录下生成相应的文件,但这些配置文件不像vim的配置文件一样,一个配置文件可以用于所有的用户(/etc/vim/vimrc),所以如果经常需要在用户权限和root权限下写代码的话,就分别需要在root和当前用户权限下执行一次unzip命令。
以下命令在root权限下执行
cd /usr/include
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
cd /usr/local/include
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
然后编辑.vimrc(/etc/vim/vimrc),添加如下内容:
set tags+=/usr/include/tags
set tags+=/usr/local/include/tags
set tags+=./tags
"-- omnicppcomplete setting --
set completeopt=menu,menuone
let OmniCpp_MayCompleteDot = 1 " autocomplete with .
let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->
let OmniCpp_MayCompleteScope = 1 " autocomplete with ::
let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files
let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window
let OmniCpp_GlobalScopeSearch=1
let OmniCpp_DisplayMode=1
let OmniCpp_DefaultNamespaces=["std"]
set nocp
filetype plugin on
hi PmenuSel ctermfg=7 ctermbg=4 "改变选中菜单颜色
"hi Pmenu ctermfg=7 ctermbg=4 "改变菜单颜色
最后还得在自己的程序路径下生成tags文件
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
由于在写程序时会很频繁的添加/修改/删除函数,所以还需要在VIM中映射一个快捷键来更新程序路径下的tags文件,编辑.vimrc(/etc/vim/vimrc),添加如下内容:
function UpdateCtags()
let curdir=getcwd()
while !filereadable("./tags")
cd ..
if getcwd() == "/"
break
endif
endwhile
if filewritable("./tags")
!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
"!ctags -R –c++-types=+px –excmd=pattern –exclude=Makefile –exclude=.
endif
execute ":cd " . curdir
endfunction
nmap <F12> :call UpdateCtags()<CR>
这样就可以随时在VIM中按F12键来更新tags文件了。
7. 粘贴代码时取消自动缩进
先来看看有些什么方法来解决粘贴代码时会自动缩进的问题:
(1) 在vimrc中添加如下代码:
nmap <F6> :set paste<CR>
nmap <F7> :set nopaste<CR>
这样在需要粘贴代码时先按F6键取消代码自动缩进功能,粘贴完成后再按F7键恢复自动缩进功能
(2) 在vimrc中添加如下代码:
set pastetoggle=<F6>
这是将两个快捷键合二为一,粘贴前按F6取消自动缩进,粘贴完成后再按F6键恢复自动缩进。
(3) 不修改vimrc配置文件,在需要取消自动缩进功能时执行“:set paste”命令,粘贴完成后再执行“:set nopaste”命令。
因为粘贴代码的使用频率不高,所以个人比较推荐使用第3个方法。
8. 其它
set nu "显示行号
set et sw=4 ts=4 sts=4 "Tab宽度
set cindent "C风格缩进
set smartindent "为C程序提供自动缩进
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o "不要自动添加新的注释行
set paste "粘贴时取消自动缩进功能
9. 终端配色方案
以上这个配色方案要比默认的白底黑字要耐看多了,而且也没那么刺眼。注意,这不是修改VIM的配色方案,而是Ubuntu终端的配色方案,下面贴一下该配色方案的配置文件内容:
注意:要在终端的“编辑配置文件” - “颜色”选项卡中取消“使用系统主题中的颜色”,并在“调色板”的“内置方案”下拉列表框中选择“自定义”,否则可能以下目录不存在。
/home/username/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
其中“username”为系统当前帐号名称
%gconf.xml配置文件内容下载地址:
http://ishare.iask.sina.com.cn/f/18612238.html
替换gconf.xml文件后,需要注销一下系统方能生效。
参考文章:
FreeBSD下VIM开发环境配置
http://blog.chinaunix.net/space.php?uid=2270658&do=blog&id=293245
网上摘录的VIM配置