Comet in VIVOTEK Network Camera from Kent Chen @ Speaker Deck
Apple, Mac OS X, Linux, Embedded System, Vim Rocks, Blogger Hack ... VIVOTEK nOOb
| [+/-] |
[Slide] Comet in VIVOTEK Network Camera / 應用於VIVOTEK網路攝影機的Comet技術 |
| [+/-] |
[Slide] Vim Rocks! + Slideshare vs. Speaker Deck / 地表上最強編輯器Vim |
| [+/-] |
[Editor] Vim Donation, help poor children in Uganda! | 一起來贊助Vim社群唄 |
.Vim Sponsoring page: http://www.vim.org/sponsor/index.php
.Vim voting results: http://www.vim.org/sponsor/vote_results.php
.Vim Hall of honor: http://www.vim.org/sponsor/hall_of_honour.php | [+/-] |
[VimGdb = vim + gdb] build vim from source with vimgdb patch |
我想對於vim和gdb的搭配,最完美的組合莫過於vimgdb這個patch了。前一陣子在苦腦怎麼樣的環境會讓我操作gdb這個神器最順手呢?! 讓我能夠remote debugging在ARM開發板上的程式得心應手呢 ^^ ?! 先來張snapshot吧!
Clewn(for gVim) / vimGdb(for Vim) 官網:
http://clewn.sourceforge.net/index.html1. tar xjf vim-7.2.tar.bz2
2. tar xzf vimgdb72-1.14.tar.gz
3. patch -d vim72 --backup -p0 < vimgdb/vim72.diff
4. cd vim72
#重點是configure時,記得加上--enable-gdb這個參數
5. ./configure --enable-cscope --enable-gdb --enable-multibyte --disable-gui --enable-gui=no --without-x --disable-gpm --disable-nls --with-tlib=ncurses --enable-pythoninterp --prefix=/home/kent/usr/
6. make && make install===============================================
NOTE: In Ubuntu 8.10 and later versions, -D_FORTIFY_SOURCE=2
is set by default, and is activated when -O is set to 2 or higher.
This enables additional compile-time and run-time checks for several
libc functions. To disable, specify either -U_FORTIFY_SOURCE or
-D_FORTIFY_SOURCE=0.
===============================================
The difference between -D_FORTIFY_SOURCE=1 and -D_FORTIFY_SOURCE=2
is e.g. for
struct S { struct T { char buf[5]; int x; } t; char buf[20]; } var;
With -D_FORTIFY_SOURCE=1,
strcpy (&var.t.buf[1], "abcdefg");
is not considered an overflow (object is whole VAR), while
with -D_FORTIFY_SOURCE=2
strcpy (&var.t.buf[1], "abcdefg");
will be considered a buffer overflow.
============================================./configure --enable-multibyte --enable-cscope --disable-gui --enable-gdb --prefix=/Users/kent/usr/ CFLAGS="-O3 -D_FORTIFY_SOURCE=1"| [+/-] |
[Vim] call man in Vim & Viman = Vim+Man |
若要在Vim裡頭呼叫男人 man 來作查詢的動作,這在C/C++ Programming時很方便,不需要再切出去查詢"Linux Programmer’s Manual"。如下圖所示
使用方式如下:
1.在你的.vimrc裡頭加入底下兩行,即可使用 K 來call man:runtime! ftplugin/man.vim
nmap K <esc>:Man <cword><cr>
2.將這個我修改過的man.vim放置你的 .vim/ftplugin/ 底下(若目錄不存在,請自己建)
接下來是介紹viman這個小工具,使用方式跟man一樣,只不過是透過Vim來呈現。如下圖所示
安裝方法: 首先,將上面"在Vim裡叫男人"的方式先導入,接著將viman這個script放置你的PATH底下,就可以透過 viman fopen 指令來查看fopen手冊了。除了有syntax highlight之外,更棒的是,在這個viman底下看男人,還可以在keyword(如上圖綠色字, ex: ungetc(3))上按 Ctrl + ] 就可以跳到此keyword的說明,反之按 Ctrl + t 就可以再跳回上一層,如同Vim + cscope/ctags 的操作一般。
| [+/-] |
[Vim] Crazy Home Key (crazyhomekey.vim) 讓你的<Home>鍵更好用 |
在使用了Vim這麼長一段時間之後,終於Release了人生第一個Vim Script :"Crazy Home Key",Po文慶祝一下。其實應該稱之為"Fuzzy Home Key"比較好懂些,但都上傳上去了,就算了。終於對Vim社群終於有點回饋!發現在http://www.vim.org/上面似乎找不到類似功能的東西,於是就自己手動刻一個吧。在c9s大的指導之下,完成了這個不到50行的一個小工具...已符合我目前的需求了,先將就點用吧! 有需要的人去下面的Link抓吧~~.Name: Crazy Home Key
.Description: 模擬一些像是UltraEdit, Notepad++, VC 之類的IDE輯編器,按<Home>鍵時是跑到”行首 (^ key in Vim)”,也就是第一個非空白字元處,而不是"這一行的最前面(0 key in Vim)"。若此時再按一次<Home>鍵,才會到最此行的最前面,加速編輯。並且在Vim的Insert模式下也可正常運作!
.URL: http://www.vim.org/scripts/script.php?script_id=2772
.Demo: http://vimeo.com/6433112 (可能有點太快,看不太懂)
| [+/-] |
[Linux/Vim] Vim session manager |
在使用Vim的時候,時常會在不同的Project或是Module之間切來切去,在修改某個Module時,有時變動比較大,不是短時間就可以修改完的,亦或是偶爾會有些Interrupt,必須馬上停止目前的工作,切換到另一個project去...切很大、切不用錢...囧rz,通常一個module一改就得開好幾個檔案,這時想到若能有相關的Tool來達到這應用不知該有多好,心想強大的VIM肯定有類似的plugin可用。
於是乎馬上求助於Google大神,尋找輔助工具,一開始找到了vim內建的mksession,的確可以達到我想要的,但並不是那麼的好用,有些小細節要再tune一下,心想 Vim Scripts 站肯定有許多好心的強者包裝好更方便的plugin了,因此就找到了底下這個好玩意.Description: Vim provides a ':mksession' command to save the current editing session. This plug-in helps to work with Vim sessions by keeping them in the dedicated location and by providing commands to list all sessions, open session, open last session, close session, save session and show last session. From a list of sessions you can open session, delete session, edit session and edit extra session script. Please note that session name can contain spaces and does not have to have a .vim extension. 它幾乎具備了所有我想要的功能了,但美中不足的是,這plugin並沒有考慮到"set autochdir"這個option(這是項好東西呀,我已被寵懷了,不行沒有它呀),這個option會導致透過Vim session manager所產生的檔案的路徑有點錯亂(即使是原生的mksession也有這問題),相關的討論串在此,看來也不少人遇到這問題。將那個workaround solution加進sessionman.vim之後... Perfect! 推薦給有需要的人…
.Link: sessionman.vim : Vim session manager
[Best viewed in non-IE browser & This Font]
©2006 Template ReDesign by Kaie | Template Design: Blogger Templates by GeckoandFly.
Original design by Michael Heilemann