快速业务通道

一个 Ruby Rails 程序员在 Linux 下的工作环境

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10

我是一个程序员,我希望我的 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

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号