标签 Vim 下的文章

牢骚中体验Ubuntu

春节过后,项目一直比较忙,我的Ubuntu自从上周日安装到系统中后就一直没有怎么用过,好不容易盼到周末了,这回可有时间体验一下'热得烫手'的Ubuntu了。Dreamhead在评论中给我的建议是:坚持使用Ubuntu,你就会越用越熟练的。这同样也是我的想法,所以首要的任务就是先体验一下Ubuntu,看其是否能满足我工作和平时娱乐的需要。
 
Linux总是让新手'迷路',我所说的'迷路'是指在进入Linux后'不知所错'。下面就说说我在Ubuntu下的一步一步的体验经历。

刚刚装好Ubuntu,并成功登入桌面后,我还是蛮兴奋的,毕竟安装过程一番风顺,且Ubuntu自动找到了我的D-LINK无线路由器,经过简单设置就可以连上Internet了,有了网络就好像插上了翅膀,有什么问题也就不怕了。Ubuntu默认的Gnome桌面很是简洁,位于桌面上方的菜单栏中放置了所有有用的菜单项。Ubuntu内置了许多有用的开源应用,比如:FirefoxOpenOffice系列等,这些满足你的基本需求是没有问题的。但是一般使用Ubuntu的Fans是不满足于此的。我们要对Ubuntu进行充分的挖掘。

Ubuntu的默认字体说实话是很难看的,而且初始情况下是不支持中文输入法的。所以安装中文输入法和中文字体就成为了我的首要任务。如果说通过看资料就能熟练掌握Ubuntu是不行的,那么一点资料不看,自己捅咕也是万万不行的。

按照网上资料的做法,在命令行中敲入类似:sudo apt-get install in-switch scim scim-pinyin scim-tables-zhscim-bridge的命令,回车后,居然提示:找不到in-switch包,反复在root和应用用户下试了多次都提示找不到,郁闷中继续在网上搜索,直到发现ubuntu官方wiki中的一篇'快速设置指南'的文章,我这才'茅塞顿开'。原来Ubuntu在安装后的第一步就是所谓'更新源(即/etc/apt/sources.list)'。sources.list在初始情况下是不存在的,我们需要首先编辑/etc/apt/sources.list,在sources.list中添加若干个Ubuntu服务器的url地址,编辑保存后执行sudo apt-get update。每次人工更新sources.list后都要执行一遍update。更新后,我们就可以执行sudo apt-get install package-name来安装需要的软件包了。Ubuntu的软件多为网络安装,apt-get install会自动从服务器上下载包并安装。这里的sudo又是什么意思呢?按照'快速设置指南'中的说法: sudo就是以超级用户执行[Superuser Do]的意思,这时你只需要输入你的用户密码即可按照超级用户权限执行install任务了。

首先,我还是按照前面的命令来安装in-switch、scim和scim-pinyin。网络安装是把'双刃剑',好处在于你不用像在Windows上寻找软件那样到各大下载网站去下载了,你只需要敲入一个命令,apt-get就会替你到源服务器上去找去下载。但是缺点也是明显的,特别是在大陆,网络环境不好,下载很慢,一个scim就让我等得不耐烦了。另外是否每次重装ubuntu都要重新下载一次呢?起码在Windows上我下载一次安装文件后,我可以放到移动硬盘上保存备用。听说小企鹅输入法安装文件较小,可以用来替代scim,那就用小企鹅输入法吧。按照如下命令执行:
sudo apt-get install im-switch fcitx
sudo im-switch -s fcitx -z default
大约3M左右的fcitx输入法在10分钟之内就安装结束了。安装后的fcitx的确与系统自带的scim有冲突,指南中已经给出解决方法了,照做就是了。具体如下:
sudo gedit /usr/lib/gtk-2.0/2.10.0/immodule-files.d/scim-gtk2-immodule.immodules

将内容改为如下:
# automatically generated by dh_gtkmodules, do not edit
“/usr/lib/gtk-2.0/2.10.0/immodules/im-scim.so”
“scim” “SCIM Input Method” “scim” “/usr/share/locale” “ja:ko”
这样修改以后,scim在中文环境下将不被启动,也就不会于fcitx冲突了。

下面开始安装中文包支持以及中文字体。选择System->系统管理->Language Support,在打开的对话框中的Supported Language中选择Chinese,默认语言也选择Chinese,确定后,系统会提示需要安装语言包,安装就是了。语言包挺多挺大下载也挺慢,耐心吧。

Ubuntu默认带了一种叫:文鼎PL上海宋的字体,毫无疑问不能满足我们的审美观,我们需要另外安装自己喜欢的字体。在Ubuntu中文论坛上很多认推荐安装的是一种叫:文泉驿的开源中文字体,我也试试。执行sudo apt-get install xfonts-wqy,安装后重启X-Windows。然后在'System'->首选项 ->外观中将你想设置为文泉驿的地方都选择上即可。网上还有很多漂亮的字体,我就姑且先用这个吧。

Linux经过多年发展,其娱乐性也有了长足的进步,除了内置十多款小游戏外,还内置了多款影音播放软件。我打开其中一款叫RthythmBox,选择了一首MP3试图打开收听,让我气愤的是居然提示我:找不到mp3的解码器。按照网上的指示:sudo apt-get install w32codecs。心想这回总该可以了吧。结果点击play,问题依旧。提示找不到mp3 decoder。无奈中采用了一招windows下的打开mp3的方法:双击那个mp3文件,居然弹出一个对话框告诉我,找不到mp3的decoder,并提示是否下载restricted packages,下载就是了。也许mp3格式文件涉及版权或者某些专利吧,以致ubuntu没有将其纳入解码支持。当杨坤演唱的颇为震撼的集结号主题曲'兄弟'响起时,ubuntu的影音功能这才算配置好。

作为C开发人员,怎能离开gcc呢。打开命令行,输入gcc -v,得到的信息:gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2),ubuntu果然内置了gcc,而且版本也基本上是最新的了。写一个小'hello ubuntu'程序试试吧。执行gcc -o helloubuntu helloubuntu.c后一个error呈现在我的眼前,居然提示:找不到stdio.h!难道ubuntu下没有安装C标准库的头文件和库文件,经检查的确没有安装。没办法还得借助网络,好心人给出方法:执行sudo apt-get instal build-essential。果不其然,在build-essential安装到系统中后,hello ubuntu也得以顺利编译和执行了。

平时一直使用的是vim,众所周知vim支持定制,我把我的.vimrc文件放到了HOME目录下,执行vim,出乎意料的是vim提示:E319: Sorry, the command is not available in this version: syntax on。我仔细看了一下vim是7.1.x版本的,怎能连syntax on这种配置语法都不支持呢?在网上搜索了很久,终于在一个台湾地区的网站得到了答案:ubuntu的vim还是一个tiny version,的确连syntax on都不支持。你需要执行sudo apt-get install vim来重新安装full vim版本才能支持这些个性化配置。

Linux毕竟不是以桌面系统起家的,试用了这么长时间感觉在Ubuntu上用光标总是不那么顺手,特别是用笔记本的Touchpad(触控板)控制光标总是会有失误,稍不注意,就导致页面上下左右乱动。无奈中尽量强迫自己多记忆些快捷键组合,试用键盘还是比较精确的,另外对于程序员而言多记住一些快捷键是大有裨益的,习惯后可以大大提高工作效率。

最后牢骚一句:X-Window桌面在频繁鼠标、键盘事件发生时反映很是不灵敏,在写Blog的时候,Gedit多次失去了反应,无奈只能关闭重启。另外本篇blog就是在ubuntu linux下使用gedit编辑的^_^。

在Linux上工作

Linux上学习Linux内核我想应该是最好的方法了。Linux对我来说绝对是一个新鲜环境,搭建在Linux上的工作环境就是我的首要工作,这篇blog记录的就是我在Linux上的工作环境,也希望对大家有些借鉴意义。

我的Linux是在一个多月以前安装的[注1],安装的版本是Fedora Core 4。我使用的是本地磁盘映像安装,磁盘映像文件很大,总共4个,大约2.4G体积。安装过程倒是没有像网上很多人说得那样不顺利,包括修改、合并分区在内大约用了3个小时就看到Linux的桌面了。

进入Linux首先映入眼帘的的就是Linux桌面,我选择了GNOME(GNU Network Object Model Environment)桌面,不为什么,就是因为它流行。下一步就是熟悉这个新环境了,如基本的系统设置、网络设置以及个性化定制等,这些不详述。

工作环境是一个常用软件的集合,在Windows下自不必说了,那些软件都是耳熟能详了。但是在Linux下又有哪些软件可以作为替代品呢?带着这样的目的,我开始了搭建Linux工作环境的历程。另外王垠(http://learn.tsinghua.edu.cn:8080/2001315450)曾在其主页上介绍过不少好用的工具软件,这里很多软件也都是源于王垠的介绍。

Linux下的软件安装一般有两种方法:
(1) 通过rpm方式
安装:rpm -i your-package.rpm
卸载:rpm -e your-package

(2) 通过源代码编译方式
源代码编译三部曲:configure –> make –> make install

我的Linux工作环境
(1) 强大的Bash
以前在Solaris上开发使用的都是C shell,而Linux默认的Shell却是Bash Shell。我初始感觉Bash Shell与C Shell不同之处包括可以自动匹配补齐命令行、支持UP和DOWN ARROW来选择前一个和后一个命令行。对于一个非系统工程师的开发人员来说有一份得心应手的Shell配置文件足矣。下面是我的一份配置文件,简单而灵活,关键一点是它完全能够满足我的需求:
/* .bashrc */
# Tony Bai's .bashrc

#
# Source global definitions
#
if [ -f /etc/bashrc ]; then
        . /etc/bashrc   # –> Read /etc/bashrc, if present.
fi

#
# Greetings
#
echo "*********************************"
echo "***     This is Tony Bai      ***"
echo "*** Welcome to my linux world ***"
echo "*********************************"

function _exit()        # function to run upon exit of shell
{
        echo "********************"
        echo "***   Bye Bye!   ***"
        echo "*** Welcome Back ***"
        echo "********************"
}
trap _exit EXIT

#
# Export environment variables
#
CVSROOT=:pserver:tony@127.0.0.1:/export/home/cvs/CVS-ROOT
PROJDIR=/home/administrator/proj/example
PATH=.:$PATH:$HOME/bin:.local/bin

export CVSROOT
export PROJDIR

#
# User specific aliases and functions
#

# System command set
alias rm='rm -i'
alias mv='mv -i'
alias mkdir='mkdir -p'
alias h='history'
alias which='type -all'
alias ..='cd ..'
alias path='echo -e ${PATH//:/\\n}'
alias du='du -kh'
alias df='df -kTh'
alias la='ls -Al'               # show hidden files
alias ls='ls -hF –color'       # add colors for filetype recognition
alias lx='ls -lXB'              # sort by extension
alias lk='ls -lSr'              # sort by size
alias lc='ls -lcr'              # sort by change time
alias lu='ls -lur'              # sort by access time
alias lr='ls -lR'               # recursive ls
alias lt='ls -ltr'              # sort by date
alias lm='ls -al |more'         # pipe through 'more'

# Compile
alias gcc='gcc -Wall'

# System info Viewer
alias cpu='cat /proc/cpuinfo'
alias mem='cat /proc/meminfo'
alias version='cat /proc/version'
alias ipconfig='/sbin/ifconfig'

# Project info
alias cdinc='cd $PROJDIR/include'
alias cdsrc='cd $PROJDIR/src'

另外修改.bashrc后别忘了执行'bash'使配置修改生效。

(2) 输入法
毕竟是开发中文程序,中文输入发必不可少。虽觉得Fedora自带的“智能拼音”不错,但是“小企鹅输入法(free Chinese Input Toy for X)”的定制功能却让我更加垂涎。遂在小企鹅输入法网站上下载了专门为Fedora Core 4制作的rpm。安装后我们就可以修改~/.fcitx/config文件来订制你个性化的输入法了,如果你在Windows上使用微软输入法习惯了,我们完全可以把“小企鹅输入法”变成Linux上的“微软输入法”。

(3) 浏览器
无论在任何平台上我们都不能忽略网络世界的存在,在Windows上有IE,在Linux上我们有Mozilla Firefox这一新宠儿。关于Firefox的资料太多太多,我想这里就毋庸讳言了。

(4) 邮件工具
Evolution, 一款在使用习惯上颇为接近于Microsoft Outlook的邮件客户端及个人信息管理程序,如果你是用惯了Outlook的用户,那么Evolution将是你在Linux上的一个不错的选择。Evolution是Linux自带的程序,无需你下载安装了。

(5) 编辑器
对于一名程序员来说获得一得心应手的编辑器就好比如虎添翼一般。Linux给你提供了多种选择,既有图形界面的,又有基于终端的。不过VI/VIM仍然是我的最爱。

(6) 开发工具
由于做后台服务端开发,所以必不可少的需要Gcc, make等工具, Linux上还默认提供automake, autoconf等工具,免去了你手工编写Makefile的烦恼,不过要掌握这些工具也需要一个过程,自己权衡吧^_^。

(7) 词典工具
王垠在其文章中提到了WordNet,对该软件的新颖的概念很是感兴趣,遂down了一个,不过遗憾的是没有编译通过,至今未找到原因。

(8) 娱乐工具
程序员在工作之余都喜欢看看电影,而MPlayer又是被公认在Linux下最好的媒体播放软件。遗憾的是我的机器上没有声卡,不能听到MPlayer输出的优美音乐。

(9) 办公工具
由于公司的文档都是由微软的工具产生的,要想在Linux下阅读和修改可不是件容易事。试过了Linux自带的OpenOffice,PPT文档还可以,Word文档简直就不堪入目了。王垠推荐将Word等先转换为html网页再查看,我很懒嫌麻烦。想起金山最新推出的WPS2005在Windows下的效果还不错,希望金山也能尽快推出Linux下的WPS版本。来解决这一使用Linux办公的最大难题。

(10) 通讯工具
对于使用QQ的人,LumaQQ相信是最好的选择;而Gaim是一个支持多种IM协议的工具,只是上手不是很容易罢了。

初接触Linux,试用了上面的一些工具,还处于经验积累阶段。

[注1]
我是参考http://fedora.Linuxsir.org上的安装说明一步一步做的,感觉还不错。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats