改程式像我這種健忘又駑鈍的最常做一個動作就是把這行註解起來,然後再複製一行下來改,Vim裡可以可方便的用yy複製一行,然後註解掉, 再p貼上就可以了‧Emacs雖然有Ctrl-C Ctrl-C加註解,但是不是我要的...就自己錄一個macro來試試, 做了三個:
Alt-yy就跟Vim的yy指令一樣
Alt-yyc就是複製一行再貼上,並且把上一行註解起來
Alt-cc就是到這行開頭加//註解
;; my macro
(fset 'yy
[?\C-a ?\C-@ ?\C-e ?\M-w])
(fset 'yyc
[?\C-a ?\C-@ ?\C-e ?\M-w return ?\C-y up ?\C-a ?/ ?/])
(fset 'cc
"\C-a//")
駑鈍如我覺得打Alt太麻煩,所以用function key更快
(global-set-key [f2] 'yy)
(global-set-key [f3] 'yyc)
(global-set-key [f4] 'cc)
註解只用//是很呆的事,像python或shell就不適用了,相信會有更聰明的做法。
----
後來發現真的有很帥的方法!! 用elisp神奇的advise功能擴充~~
http://www.emacswiki.org/emacs/SlickCopy
沒有選取時, C-w會砍整行, M-w會複製整行, 就像Vim的dd和yy
2009年8月24日 星期一
PHP的regular expression
原本的一些函式如ereg_開頭的或split等在PHP 5.3版就要丟棄、6.0則會移除。ereg不是binary safe, 也許有心人可以跳過檢查,輕易注入null bytes: 手冊有寫,所以要聽。現在最好使用PCRE(Perl-Compatible)類的, 也就是preg_開頭的。
2008年6月9日 星期一
DirectShow on Windows Mobile 5/6的Debug版
Windows Mobile 5.0 PocketPC SDK和Windows Mobile 6.0 Professional SDK沒有strmbasd.lib, 所以Build Debug版有問題。難道要自己去build debug的baseclass?!
2008年4月28日 星期一
__GSHandlerCheck
舊的VS2005 project重新compile發生以下錯誤:
把C/C++ /Code Generation的Buffer Security Check設成no (/GS-)
詳細看:
error LNK2001: unresolved external symbol __GSHandlerCheck
把C/C++ /Code Generation的Buffer Security Check設成no (/GS-)
詳細看:
2008年4月16日 星期三
pow() 和log10()在Visual Studio 2005有C2668的error
程式專案用Visual Studio 2005開時, 會發生以下錯誤訊息
error C2668: 'pow' : ambiguous call to overloaded function
MSDN說: 在Visual C++ 2005, pow(int, int)不支援重載了,要把第一個參數轉換(cast)成double, float, 或是long double
log10也是一樣, 原本log10(j)要改成
error C2668: 'pow' : ambiguous call to overloaded function
MSDN說: 在Visual C++ 2005, pow(int, int)不支援重載了,要把第一個參數轉換(cast)成double, float, 或是long double
log10也是一樣, 原本log10(j)要改成
log10( static_cast(j))
訂閱:
文章 (Atom)