@ChingHanHo

I Build Stuff.

更好用的 Vim 外掛管理工具:Vundle

vim-vundle

先前曾經寫過怎麼使用 Pathogen 管理 Vim 的外掛,Git 的 submodule 用久了開始覺得很不方便,有時候只是要測試一下新玩具,用完就刪掉,可是前後要操作的指令至少超過四個,實在有夠麻煩。

正打算來寫個 script 自動化過程,但這種東西怎麼可能沒人寫過,於是上網找了一下,被我發現 Vundle 這個管理工具,看完 README 後馬上就把 Pathogen 刪掉了,然後寫了這篇文章。XD

Git Submodule 用法筆記

早上整理 .dotfiles 因為對 Git 的 submodule 指令不熟悉弄得灰頭土臉,最後把整個目錄砍掉重新 clone 回來,結果發現 submodule 裡面的目錄都是空的,才知道原來 Git 不會自動去抓 submodule 的 repo,還要另外加一些指令。

這些指令因為不會很常用(吧?),最近是因為在摸索 Vim 的補丁管理才開始碰到 git submodule 問題,如果不寫可能後天就忘光了,所以我把今天碰到的問題整理記錄下來。

終端機必備的多工良伴:tmux

每次把終端機關掉後,先前的狀態都無法記錄,這個問題困擾我好久,最近才知道 tmux 這個工具,終於解決了這個問題。

從官網上的描述,tmux 是個 terminal multiplexer,意思就是可以讓終端機同時跑多個程式,不用的時候可以把他們藏到背景去,需要的時候再叫出來,甚至 ssh 登入到遠端主機也不會斷掉,此外還可以在同個視窗下切割區塊,如下圖(圖片來源):

tmux-demo

右邊開 Vim 寫程式,左上角跑 RSpec 測試,同時左下角開 Rails server 看 log,神奇的是這些狀態可以保存起來,不需要的時候可以藏到背景去,可是用 Sublime Text 2 就沒這麼理想,害我有種想改用 Vim 的衝動。

Vim 補丁管理器:Pathogen

mvim-screenshot

2013.04.12 更新:今天把 Command-T 移除掉換用 ctrlp,優點是用不用 Ruby 去編譯,用的是 Vimscript 去寫,所以效能跟問題也會比較少。 2013.05.25 更新:今天起改用 Vundle 來管理,可以參考我的新文章:「更好用的 Vim 外掛管理工具:Vundle

安裝 Pathogen

管理 Vim 補丁我用的是 Pathogen 這套,可以讓所有補丁統一放在 ~/.vim/bundle 下,每個補丁就是一個獨立的資料夾,想要移除就直接砍掉即可。安裝方法是將 pathogen.vim 腳本放在 ~/.vim/autoload 目錄下,可以用以下指令完成:

1
2
3
mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -Sso ~/.vim/autoload/pathogen.vim \
    https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

然後將這行加進 .vimrc 裡,啟動 Vim 時便會自動讀取 ~/.vim/bundle 下的補丁檔案:

" auto load all plugins in vim bundle
execute pathogen#infect()

安裝補丁

之後只要將下載的補丁資料夾拖進 ~/.vim/bundle 裡面即可,不過我更偏愛使用 Git 來管理。假設要安裝 Command-T 補丁,可以用 Git 的 submodule 指令完成:

1
2
3
4
5
cd ~/.vim
mkdir ~/.vim/bundle // if you have not yet created this directory
git submodule add https://github.com/wincent/Command-T.git bundle/command-t
git add .
git commit -m "install Command-T plugin as a submodule"

更新補丁

使用 Git 安裝補丁的好處是可以自己動手 hack,也可以保持更新。對單一補丁更新只要變更所在目錄到該補丁的位置,然後 git pull 去拉 upstream 的最新程式碼:

1
2
cd ~/.vim/bundle/command-t
git pull origin master

要一次更新所有已安裝的補丁,則可以用 Git 的 foreach 指令來更新每個補丁的最新版本:

git submodule foreach git pull origin master

後記

平常被 Sublime Text 的 Package Control 寵慣了,來用 Vim 感到非常的麻煩和不習慣,而且 Command-T 安裝後還要用 Ruby 跟 C 去編譯才能用,這到底是什麼鬼編輯器啦!XD

Google 搜尋加密有兩種

剛剛看 Business Insider 提到了 Google 的 encrypted.google.com 這個網址,記得在 Google 還沒有對已登入用戶全面預設用 HTTPS 連線以前,encrypted.google.com 是專門用來使用 HTTPS 的網址,也就是當連線到 https://www.google.com 時會被自動跳轉到 https://encrypted.google.com

既然現在 Google 對於已登入的用戶已經預設用 HTTPS 連線,那這個東西還留著幹嘛?所以問一下 Google 找答案,原來 encrypted.google.com 另有其他特異功能,兩者之間的差異,主要在於點擊廣告與搜尋結果時,處理 HTTP 參照位址的方式不同。