高見龍

喜愛非主流的新玩具,組合過後再拿來賣給客戶

Happy Programming with Coffeescript

這是今天我在台灣第一屆的JavaScript開發者大會JSDC上用到的投影片。雖然主題跟在去年的PHPConf Taiwan的一樣,但因為這回的聽眾可都是熟悉JavaScript的,依舊沒辦法用同一招繼續騙吃騙喝(同一招不能對聖鬥士用兩次),加上時間也只有30分鐘,所以投影片又幾乎整個敲掉重做。 image View on Speaker Deck | View on Slideshare | Download PDF

原以為30分鐘講一百多張投影片會講不完結果就一直衝,衝到最後發現我竟然20分鐘就講完了,希望大家還喜歡,有什麼問題,也歡迎諸位前輩先進不吝給予建議,感謝!

爽爽快快學Vim(2)

建議直接到youtube並切換至HD畫質觀看。另外也傳了一份到 vimeo 以及 youku

Vim plugin for other Apps

檔案開啟

vi -o a.rb b.rb 以水平分割視窗同時開啟檔案。

vi -O a.rb b.rb 以垂直分割視窗同時開啟檔案。

vi -p a.rb b.rb 以tab視窗同時開啟檔案。

vi http://www.eddie.com.tw 可直接開啟網址並將網頁原始碼讀進vim編輯器。

編輯

部份在shell指令在insert mode也適用,例如ctrl + wctrl + u

r 取代目前游標所在字元,R 連續取代。

J 組合游標所在的這行與下一行, 3 J 將連續3行都組合起來。

ctrl + v 進入visual block模式。

視窗

:new 新增一個水平分割視窗, :new 新增一個水平分割視窗。

ctrl w hjkl 可在分割視窗間切換。

:bp 上一個已經開啟的檔案,:bn 下一個已經開啟的檔案。

:ls 查看目前buffer裡有哪些檔案。

:bd 關閉一個已經開啟的buffer。

:b 3 切換至在buffer裡編號為3號的檔案。

:b test.rb 切換至在buffer裡檔名為test.rb的檔案。

:tab ba 可將開啟的buffer轉以tab展開。

小結

咬字跟口條還是像在含魯蛋,有待加強。下一集將會跟大家分享一些我自己工作上有在用的vim plugin,以及簡單的說明vimrc裡的一些設定。另外,如果內容有哪邊講錯的,還請先進、前輩們不吝指導 :)

爽爽快快學Vim(1)

建議直接到youtube並切換至HD畫質觀看。另外也傳了一份到vimeo以及youku

影片內提到的相關連結:

shell指令

ctrl + l: 清除畫面

ctrl + w: 一次刪除一個字(word)

ctrl + u: 刪除一整行

ctrl + r: 搜尋history

Vim

mode切換

ia 進入insert mode, i = insert, a = append

在insert mode按下 escctrl+[ 回到normal mode

在normal mode按下 vV 進入到visual mode

在visual mode按下 escctrl+[ 回到normal mode

游標移動

h j k l 移動游標

wW 往後跳一個字(word), bB 往前跳一個字(word)。

0 將游標跳回行首, $ 則是跳至行尾。

f + " 會找到該行的下一個雙引號,f + x 會找到該行下一個英文字母”x”,以此類推;大寫 F 則是反向。

t + " 會找到該行的下一個雙引號的前一個位置,t + x 會找到該行下一個英文字母”x”的前一個位置,以此類推;大寫 T 則是反向。

{ 往上一個段落移動;} 往下一個段落移動

vit 選取目前游標所在的這個標籤(tag),例如<div>hello</div>則會選取hellovat 則會連帶標籤一起選取,例如<div>hello</div>則會選取<div>hello</div>

vi" 選取目前游標所在的這個雙引號內的內容,例如"hello world"則會選取hello worldva" 則會連雙引號一起選取。其中雙引號也可以替換成單引號、小括號等符號,功能一樣是選取該符號內的文字。

viw 選取目前游標所在的這個字(word)。

gg 游標跳至整個檔案的第一行;G 游標跳至檔案的最後一行

zt 將目前游標所在位置的內容拉至螢幕的上方;zb 將目前游標所在位置的內容拉至螢幕的下方;zz 將目前游標所在位置的內容拉至螢幕的正中間;

/ 搜尋,搜尋到結果後n可跳至下一個;N可跳至上個。

* 直接搜尋符合游標所在的字(word)

編輯

i 進入insert mode,I 游標直接跳至行首,並進入insert mode

a 進入insert mode,A 游標直接跳至行末,並進入insert mode

D 刪除游標所在位置之後的所有內容

C 同上,並直接進入insert mode

x 刪除一個字元

. 重複上一個動作

dd 刪除一整行

3dd 刪除3行

yy 複製游標所在位置的一整行

3yy 從游標處往下複製3行,包含游標所在的那一行

p 貼上內容;4p 從目前游標的所在處貼上內容4次

= 格式整理,gg=G 整份文件格式自動整理

dwdiw 刪除游標所在的那一個字(word)

cwciw 刪除游標所在的一個字(word)並直接進入insert mode

> 增加縮排;< 減少縮排

常用命令

:w 寫入檔案

:q 離開Vim,若加上!則為強制離開

:tabe 開新tab

gt 切換至下一個tab;gT 切換至上一個tab。(在我的vimrc裡有分別對應到F7跟F8鍵)

:new 新增水平分割視窗;:vnew 新增垂直分割視窗。

其它

ctrl + z 把vim放至背景工作;fg 則是將vim從背景工作撿回來。

如果沒有意外或被其它工作中斷,應該可以繼續錄下去。發音的部份感覺咬字像含顆魯蛋一樣,無意義的贅字還是很多,有待加強。內容有不對的地方,再請不吝前輩們給予指教。

推薦閱讀

Ruby without Rails

這是在WebDev Party #3上分享的內容,主題是雖然Rails很威很好用,但如果沒有Rails的話,還可以拿Ruby做些什麼其它的事。

投影片: image View on Slideshare | Download PDF

希望對大家有幫助。如果有哪邊講錯的還請各位先進前輩不吝給予指正。

[update] 我也把影片上傳一份到Youtube

Vim與我的工作環境

我果然是個愛玩又愛現的人,開始來獻曝了,有講的不好的地方(例如聲音不好聽或是長相太嚇人),還請見諒。

如果畫面上的程式碼看不清楚的話,建議可以直接連結到Youtube網站切換到HD畫質,效果會好些。為什麼要連講的人一起錄進來? 因為這次並不是純操作的內容,我覺得有個人在旁邊動呀動的比較不會無聊。

爾後的主題會有:

  • Vim
  • Ruby
  • Rails
  • CoffeeScript
  • Git
  • Flash/ActionScript
  • and others..

每集長度約從10分鐘到30分鐘不等,希望可以每個月至少做個兩集(剛好可以順便幫blog灌一下水)

相關連結

Vim and Plugins

心得

錄Screencast很有趣,會發現自己講話不只卡卡的,還有很多無意義的贅字或發語詞,也很容易NG罵髒話,所以得小段小段的分開錄,錄完再合併。看別人錄都很簡單,自己來才發現要錄製流暢的Screencast難度真的相當高。

以上,不確定大家會不會喜歡這樣的內容或表演方式,或對大家有沒有實質上的幫助,如果大家不嫌棄的話,希望可以繼續玩下去。

新手上路,還請多多指教 :)

[update] 有對岸的朋友說放在youtube會因為某些神奇的原因沒辦法看,所以我也順手上傳了一份到vimeo以及youku