我是一个程序员,我希望我的 PC 工作环境易用,稳定,简洁,高效,个性化.从 Windows -> Debian -> Ubuntu -> Xubuntu -> Fluxbox -> Awesome 我想我走过了一个漫长的道路.目前我使用 Ubuntu 系统,Awesome 窗口管理器,它们基本满足了我的需求,我想现在应该是和大家一起来分享一点经验的时候了.
不用 Windows 的理由很简单,在 Linux 系统上感觉更自由,学习提高自己的编程水平更容易,基本不会有重装系统这种烦心的事情.选择 Ubuntu 的理由,它很易用,保持稳定,比较其他我用过的发行版本,Debian 易用性和稳定性稍差(stable 老了点,testing 稳定差了点,unstable?那你就等着折腾吧),Arch 易用性更差(当然很多人喜欢它的简洁,快速,方便学习 Linux 系统底层机制和应用包的快速更新.但这些对我来讲不是那么重要,我不是 Linux 玩家,也不是 Linux 系统管理员,而只是一个 Web developer)为什么不用 Xubuntu?恩,Xubuntu 是比 Ubuntu 快,但是用了 Awesome 基本一样快了,我很多常用的应用也都基于 Gnome,就没那个必要了.
然后,我说的个性化不是界面上弄些漂亮的图片,或者换个很 cool 的主题,它们对泡妞也许很重要,但对工作没有什么帮助的.我所指的是使用方法上的可定制性,每个人都有自己的习惯,思考方式,解决问题的方法.因此适合我的未必适合你,这就需要有足够的灵活.
好了,基本我选择的理由就是上面的了.在发行版本的选择上,我想每个人都有各自的需求和个人特点,从中找到一个平衡点是非常重要的.我写这些也就是提供一点借鉴.
Awesome:http://linuxtoy.org/archives/awesome.html 在 LinuxTOY 上已经有文章介绍过了,我也是看了那篇文章才开始用它的,感谢那篇文章的作者.
其他我日常开发工作使用的软件基本就下面这些:
Vim
Vim 开发 Rails 很方便,不太习惯现在 Eclipse、Netbeans 那些大而全的 IDE,它们有很多的优点值得借鉴,不过基本而言它们的启动速度都比较慢,运行后的反应速度也慢.下面是一些我用的 plugin:
●bufexplorer.vim - buffer 切换,console 下面常用 ●lookupfile.vim - 找文件,很不错 ●matchit.vim - 匹配成对的语句或符号,很有用 ●mru.vim - 最常用文件列表,经常用 ●NERD_commenter.vim - 快捷来加删 comment,不错 ●project.vim - 基本我没用 ●rails.vim - 开发 Rails 需要,但大部分好像我都不怎么用,恩,应该再看看它的帮助 ●SimpleFold.vim - 它的折叠方法和 Vim 里面自带的那个语法文件不太一样,我个人觉得不错 ●snippetsEmu.vim - 缩写代码自动生成,很不错,好用,但是自带的 Rails,Html 的少了点,需要自己再补充一些 ●supertab.vim - 好用,常用 ●surround.vim - 好用,常用 ●taglist.vim - 不怎么用 ●tailminusf.vim - 不怎么用
Xterm 或 Urxvt Screen
Screen 是个好东西,通常我写一个 config 文件放在正在开发的 Rails 应用的目录下,然后 screen -c xxx.config
chdir some_workspace defutf8 on screen -t server 0 select 0 exec ruby script/server -u --debug screen -t console 1 exec ruby script/console screen -t log 2 exec tail -f log/development.log screen -t fastri 3 exec fastri-server fastri-server screen -t mysql 4 exec mysql mysql -uname -ppassword screen -t terminal | loop_qri.sh
我自己写的一个简单的 Bash 脚本,基于 fastri,用来查 Ruby Rails 以及其他所有 gem package 里面包的 api 方法帮助的小工具.
#! /bin/bash function select_method() { select method in ${keywords} do if [[ "$REPLY" =~ ^[1-9][0-9]* ]] then history -s "$method" history -w ~/.loop_qri_history echo "=============================================================================================" qri ${method} echo "=============================================================================================" have_select=1 break else keywords="$REPLY" have_select=0 break fi done
}
history -r ~/.loop_qri_history read -e -p "Please input some keywords of method:" keywords have_select=0 while true do case "$keywords" in -stop) break ;; -history) history ;; *) COLUMNS=20 PS3="Choice a method or input other keywords: " if [ $have_select -eq 0 ] then match_result=`qri ${keywords}` fi if [[ "$match_result" =~ "Multiple choices" ]] then keywords=`echo "$match_result" | sed /--/d | sed ''/,/ s/,/ /g''` echo "=============================================================================================" select_method else echo "=============================================================================================" qri ${keywords} history -s "$keywords" history -w ~/.loop_qri_history have_select=0 read -e -p "Please input some keywords of method:" keywords fi esac done
|
|