看 man 3 readline
, 可以把配置写在 ~/.inputrc
里。这样所有使用 readline 的 repl 都可以享受之。
我只写了很少的配置,重点还是为了启用 edit-mode vi: https://github.com/5long/dotfiles/blob/master/inputrc
require 'matrix'
m = Matrix.zero(8).to_a
之前的 Matrix.build
在 1.8 还没有。
require 'matrix'
m = Matrix.build(8, 8){0}.to_a
完整看了一下 pull request 的讨论,对方的意思是说:测试与文档是被 merge 的必要条件,而非充分条件。目前看来恐怕连提议被采纳的机会都不大,因为提倡的用法是 Rails.env.test?
... 所以在确认可能 merge 之前连文档都懒得写。- -
不过这个业务逻辑看上去有些奇怪,确定不是陷入了这种境地么:http://mywiki.wooledge.org/XyProblem
String#match 也可以接受 block 参数。http://ruby-doc.org/core-1.9.3/String.html#method-i-match
我不是很确定这个问题跟我遇到的是否一样... 我之前在 Skype 里没法启动输入法,后来发现是因为 Skype 没法从拿到输入法配置 (亦即,不知道 ibus 的存在)
这些环境变量要在登录到 X 环境的主进程设置~ 我用的 X 登录管理器是 [Slim], 登录时默认会执行 ~/.xinitrc
, 然后在 ~/.xinitrc
的开头要把环境变量设定好,再启动 window manager 就好。~/.xinitrc
的简单结构如下:
# 先设置环境变量
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus # Skype 是个 qt app.
export XMODIFIER="@im=ibus"
ibus-daemon -xrRd # 启动输入法框架的 daemon
# 顺便启动其它需要在登录时启动的应用, 比如 xcompmgr
openbox-session # 真正启动 wm/de
接下来再启动的进程都会从 openbox-session
进程继承环境变量,就能读到这个配置了。
放在 ~/.bashrc
里是不行的。尽管 ~/.xinitrc
是 bash 脚本,但这个文件被登录管理器执行时并不是交互式地启动 bash, 那么 bash 就不会加载这个文件。所以在 ~/.bashrc
里设置的环境变量就只对桌面环境里启动的 terminal 有效,也就需要在 terminal 里再启动 Skype 才能读到 ~/.bashrc
里设置的环境变量。
供参考。
先说无关于项目的:
前面的 {n} 表示应用所处虚拟桌面的位置,WinKey + 1-9
用来切换虚拟桌面~ 每个虚拟桌面上放固定的应用,完成固定的任务,这样也就可以养成习惯了。
注意 5 和 6 比较难按到,所以 5 放 email client, 自然抑制拖延症; 6 不放东西 (因为最难按...)
呼出 terminal 时处于"写代码模式", 隐藏时处于"其他模式". 嗯我是典型的 Vim 中毒。
进入写代码模式就依赖 tmux 在应用间切换,属于项目特有的应用都在虚拟机的 tmux 里。按照 window 顺序:
Ctrl-Z
, 严肃地考虑装 fugitive.vim大致这样。其实也很复杂,只比 lz 的少了两类切换:
最近有在考虑尝试 tmuxinator, 而不是总要"按需增减 window"
EDIT: 修正嵌套列表层级~
#14 楼 @zw963 awesome 是个完整的 tiling wm 而不是你期望的独立于 wm 的小工具。
http://dwm.suckless.org/ 这个应该是依赖最少的 tiling wm 了吧...
Archlinux 用户一枚~
其实我真心希望支持 mac 的同学能列出类似这种贴近主题 (亦即 Ruby / Rails) 的例子来:
http://yehudakatz.com/2012/06/05/tokaido-status-update-implementation-details/
http://railsinstaller.org/
拜托一定要录视频 - -
犯懒了没去 - - 只能自己默默喝啤酒了。
话说上次聚会最后的喝酒合影还没拿到。
这个领域叫配置管理,专门做运维的会比较熟悉。
CFEngine, Puppet 和 Chef 是比较流行的选择。不过这些工具都要求自己搭建中央服务器,然后所有受控的机器主动去 pull。不符合 lz 期望的 push 架构 (如果我对 通过ssh同步
的揣测正确的话)。
Puppet 和 Chef 也可以不用这种架构 (puppet apply
和 chef-solo
),不过看上去似乎不是"地道"的用法。
当然现在市面上也有 push 架构的 CM 工具出现:http://palletops.com/ http://www.nico.schottelius.org/software/cdist/
实在没时间就别折腾了。回到 windows/mac 下面用这个吧:http://railsinstaller.org/
--auto
是自动的没错。但 jekyll --server
估计不是为生产环境所设计的。不然应该不会写死使用 WEBrick.
lz 想达到的目的是不是"本地只看 markdown 语法正确,不预览 html, rsync
到服务器之后让服务器生成 html"? 简单的方案是每次更新之后临时 ssh
上去跑一下 jekyll --no-server --no-auto
就好。
稍微复杂一点的话,在服务器端也用 git clone
拿到一份代码,然后编辑服务器端仓库里的 .git/config
文件,按照 git help config
里的说明改一下 receive.denyCurrentBranch
配置,允许你从本地 push 到这个 remote 用来部署。然后再写个 git post-update hook 去跑 jekyll. 这样用起来就类似 github pages 了。
EDIT: 调整用词
如果你需要实现的功能大致等同于"ssh 到机器上执行事先定义好的常见的任务", 那么不妨看看 Capistrano: https://github.com/capistrano/capistrano
假如只是自己做着练手,无所谓适合与否,慢慢折腾就是了。
居然掉到第 3 页了... 我不是很确定在这个社区对“纯顶”的态度如何,不过这种实效性太强,对社区又太重要的帖子是不是有必要固定放到稍微显眼的位置上 (现有的右侧那个置顶就算了...)
报名。
以前没觉得 rails.vim 有什么大用,浏览文件一路 Command-T 了事 - - 经历了大一点的项目之后感觉还是有必要准备一些特定于 framework 的技巧。很感谢 LZ 按照使用经验挑常用的介绍~
注释/反注释代码我用的是 tComment. 它提供的gc
和 gC
命令支持用 motion 来指定需要处理的文本范围。跟内置的 d
命令等用起来一个感觉。不妨试试。当然如果你习惯先进入 Visual Mode 选取代码然后再下命令,tComment 也是支持的。
再 nitpick 一个:C
命令的作用相当于 D
然后再按 A
. 文中所描述的行为应该是 cc
或者 S
.
把标识标题的 ####
后面加个空格吧 - - 有些 Markdown Parser 比较宽松所以有时依然能正常显示。
我来稍微解释一下 Vagrant 方案吧。[是 Vagrant
不是 vargrant]
简单说 Vagrant 是个 VirtualBox CLI Wrapper. 它负责导入 Virtualbox 镜像 (需要符合 Vagrant 的基本要求,包括装好 Puppet & Chef 等,称之为 Basebox), 然后驱动 Puppet/Chef/Shell 来在虚拟机里搭建环境。这里所使用的 Puppet/Chef 代码可以跟生产环境所使用的代码复用,在生产环境是不用这个东西的。@huacnlee
这里实际搭建环境的工作还是由 Puppet/Chef 来完成,属于偏运维的知识,学学无妨。
@Peter Basebox 的系统可以自己构建时任意选择,也可以拿社区提供的来用: http://www.vagrantbox.es/ 你看到的 Ubuntu 10.04 应该是官方文档的范例,实际具体支持的系统可以看这里: https://github.com/mitchellh/vagrant/tree/1-0-stable/lib/vagrant/guest
如果不是资源实在紧张,虚拟机可以避免维护者去趟"抹平若干系统不一致"这趟混水。缺点就是要下载的东西实在有点多,照顾入门新手的话可能人家很快就没耐性了。