2009年8月18日 星期二

Vim Hacks @ COSCUP

Vim Hacks
View more documents from c9s.


這次在 coscup 的 talk 時間比較緊湊,刷了很多東西沒講到,還好沒有又在加內容,只挑了部份我覺得有幫助的地方講,不然真的會講不完。XD
上台北之前就熬了一整夜整理東西,當工作人員忙完 COSCUP 之後,上台前一天做簡報到隔天早上五點,真是爆累的。XD

本來想說編輯器這個話題,大家應該都很熟練 Vim 了,也許會很冷門,結果出乎意料之外,會場很多人,也有朋友在 session 後過來一起討論,實在是謝謝大家捧場。

附上一張 walkingice 幫我拍的照片



以及當時 irc 的 log,也許應該另外打一個螢幕把 irc screen 打上去。 :p
http://paste.plurk.com/show/15436

其他 coscup 相關資料可在這裡找到
http://wiki.coscup.org/mediakit-2009

11 則留言:

  1. 講得很精彩,讓我獲益良多!!希望以後還能聽到更精彩的內容。

    回覆刪除
  2. 謝謝。這次的 talk 希望能夠拋磚引玉,讓大家開始重視 editor 所帶來的效率問題,提昇大家的開發速度。

    未來還希望能夠在南部或北部多一些 talk ,講的更完整一些。

    :-)

    對了,在 ricky 的 blog
    http://rickey-nctu.blogspot.com/,ricky 也很熱血的寫了很多 vim 的教學跟文章,值得參考一番。

    :D

    回覆刪除
  3. 我有去看了,果然有很多很有用的Tips,真是一個寶庫阿。

    之前在COSCUP上面問的quickfix的問題,我發現好像是因為在openbsd裡面的make不是用gnu/make。後來我改成gmake就可以跳到subdirectory的檔案了。

    希望有機會還能跟大家交流交流心得... :D

    回覆刪除
  4. c9d大,請教您一個問題,有辦作到按某個Key之後,會去執行一個function,然後在function裡頭,送出一串keystroke嗎? 例如
    :h ole-sendkeys
    裡面提到的SendKeys()

    回覆刪除
  5. Dear tsung-kai chen,

    你提到的是 OLE 的 interface 如果有需要用外部 application 呼叫 vim 來用才需要用到。

    實際上你需要的應該是相當簡單

    nmap <F2> :call FunctionName()<CR>

    來呼叫 vim function

    或是

    imap <F2> iHello World<ESC>


    或者更簡單的,可以使用 macro 來做重複的動作。 :p

    請參考 :h function
    :h mapping
    :h macro

    回覆刪除
  6. @c9s 嗯,那個我知道,我想要的是,例如
    nmap <F2> :call FunctionName()<CR>

    function! FunctionName()
    送出 '^'(行首) 這個控制字元到,Vim Normal state
    endfunction

    不好意思,描述得不夠清楚,讓你誤會了

    回覆刪除
  7. Dear Tsung-Kai Chen,

    可以使用

    call feedkeys('^')

    像這樣。 :)

    回覆刪除
  8. Cool... It works!
    btw, feedkeys("^")是控制字元,feedkeys('^')是個一般字元!

    感謝c9s大,我一直在vim help裡,猜不到相關的keyword...囧rz

    回覆刪除
  9. 要花點時間消化,但 vim 還真好用...
    c9s 的講義都變成我的手冊...

    回覆刪除
  10. 講得好. 害我又回去把 :help 重看了一次, 已經快十年沒這樣做過了. :-)

    加油!

    回覆刪除
  11. 謝謝 Audrey 前輩!

    小弟懂得不多,還請多多指教。有聽聞 Audreyt 前輩的 vim script 有不少絕妙的東西呢! :)

    回覆刪除