2010年3月28日 星期日

偽嘸蝦米的設定

由之前一直到剛剛,在用偽嘸米的時候,在某一些視窗沒有辦法送出字。

剛剛隨便測試的結果,發現,可能是送字的方式有問題。

把它們改成「使用替代方式」就可以解決這一個問題啦~

NotePad++

在寫程式的時候,面對一堆程式碼,這個時候編輯就非常重要啦~
像是vim,Source Insight、PSPad、Notepad++,每一個都有各的優點~
就好像是Windows與Linux各有各的優點~

今天要介紹的就是Notepad++,主要的網站是.:: NOTEPAD++ ::.:

有一個不錯的功能,叫做支援多重視窗同步編輯

蠻不錯的,而且有Portable的軟體,蠻不錯的軟體

參考資料:
好用的Notepad++

2010年3月16日 星期二

設定XP的I386的路徑

設定XP的I386的路徑
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SourcePath

2010年3月13日 星期六

如何快速刪除 Subversion 專用的隱藏目錄

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /k \"TITLE Removing SVN Folders in %1 && FOR /r \"%1\" %%f IN (.svn _svn) DO RD /s /q \"%%f\" \""

你只要將以上的註冊檔內容複製下來,並儲存成 DeleteSVN.reg 檔,在雙擊這個檔就可以安裝完成了。

不過這是個很危險的動作,因為這會將所有修訂的紀錄、版本資訊全部都給刪除掉喔,你最好知道你在做什麼,否則不要亂試。

[2010.07.08 補充]
呼~用刪除資料的方式,還是會讓人覺得膽顫心驚的~因此,我們透過dos的xcopy指令,就可以簡單的達到同樣的目的~
xcopy source_directory destination_directory /E
這一個指令會復製所有檔案,包含子目錄下的所有檔案,但是,並不包含系統檔隱藏檔!
可以參考Dos指令 - 複製指令
如此一來,就會產生一個destination_directory的資料夾,是跟原本的svn的資料夾內容是相同的,但是,不會有svn的產物!

參考資料:
如何快速刪除 Subversion 專用的隱藏目錄
Wiki - Windows Registry

記憶力訓練

據意大利《晚郵報》報導,意大利一所大學三名教授進行了這樣的一項實驗:他們挑選了一位記憶中等的青年學生,讓他每星期接受三至五天,每天一小時,背誦由三個數至四個數組成的數字訓練。每次訓練前,他如果能一字不差地背誦前次所記的訓練。就讓他再增加一組數字。經過二十個月約二百三十小時的訓練,他起初能熟記七個數,以後增加到八十個互不相關的數,而且在每次練習時幾乎能記住80%的新數字,使得他的記憶力能同一些具有特殊記憶力的專家媲美。

可見,記憶力通過訓練的確可以提高。事實上,古今中外的許多名人學者都通過各種方法來鍛鍊自己的記憶力。馬克思從少年時代開始,堅持不斷地用一種自己不太熟悉的外語去背誦詩歌,有意識地鍛鍊記憶力;列夫.托爾斯泰也是採用背誦的方式鍛鍊記憶力。他說:"背誦是記憶力的體操。"每天早晨,他都嚴格要求自己強記一些單詞或其他方面的東西,以增強記憶力。宋代詞人李清照採用與丈夫比賽競猜某典故出自某書的方式,在興趣盎然的娛樂中,鞏固了知識,增強了記憶。

專門研究鍛鍊記憶力方法的美國學者布魯諾.弗斯特說:"要具備一個可靠的記憶力,必須每天一刻鐘到半個小時的時間,做一套有計劃的腦力練習,複雜的或簡單的均可,只要能迫使你去動腦筋。"

下面給大家介紹幾種行之有效的記憶力訓練方法:

(1) 積極暗示法

許多人之所以記憶力不佳,是由於對自己的記憶力缺乏自信。在面對一個要記的材料時,這些人常常想:"多難記啊!","這麼多,我能記住嗎?"這種想法是提高記憶力的最大障礙。

美國心理學家胡德華說:"凡是記憶力強的人,都必須對自己的記憶充滿信心。"要想樹立起這種信心就要進行積極的自我暗示,經常在心中默念:"我一定能記住!"。當你對能否記住缺乏信心時,也可以回憶自己過去的成功經驗,如"我曾在全班各科考試成績排前五名""我幾歲的時候就能背許多唐詩"。當這些過去良好的記憶形象再次浮現時,會增強你"一定能記住"的信心。
(2) 精細回憶法

我們在平時的學習和生活中,識記了很多東西,卻很少去回憶。識記和回憶之間的不平衡,使我們的記憶變得十分模糊。

經常回憶,回憶得儘可能精細,是鍛鍊記憶力的好方法。比如:

回憶一間你非常熟悉的房間,想一想房間裡都有什麼?門窗朝哪開?家具都擺放在哪裡?牆上掛有哪些裝飾品?暖氣片和電燈開關在什麼地方?等等。要回憶得儘量完整無缺。當你再次回到到間時,檢查一下你遺漏了什麼。

想一想一小時前你在做什麼?你在哪裡?和什麼人在一起?你們在一起都說了什麼?那個人長得什麼樣?你如何向別人描述他的長相?

回憶一下你最近看過的電影,電影裡都有哪些主要人物?發生了什麼事?他們都做了什麼?結局如何?要儘可能回想電影中每一個鏡頭。

回憶一下你童年的夥伴,你們在一起都做過什麼?還能記起他們的名字嗎?他們的家都住在什麼地方?

(3) 奇特聯想法

聯想是促進記憶的一種方式。比如,我們遇到一個生字:咩。該字由口和羊組成,口即嘴,羊的嘴,除了吃草,還會叫。羊怎麼叫"咩……"字義出來了,字音也知道。咩,羊叫之聲,讀MIE。

奇特聯想是聯想的一種則將要記的東西在頭腦中人為地形成一定衡奇古怪的聯想,從而幫助記憶。比如,要想記住"狗--自行車"這對詞,我們可以想像"狗騎著自行車在馬路上逛來逛去"。有人要記"火車、河流、風箏、大砲、鴨梨、黃狗、閃電、街道、松樹、高粱"共十個詞,他形成如下奇特聯想:一個人登上了高速的火車,火車在河流上奔馳,河流上飄來一個大風箏,風箏上架著一門大砲,大砲的炮筒裡打出來一個大風箏,風箏上架著陸門大砲,大砲的炮筒裡打出來一隻鴨梨,鴨梨打進黃狗的嘴裡,黃狗像一道閃電,迅速地路過街道,爬上一棵老松樹,咬住了老松樹上長著的一棵高粱。

(4) 限時強記法

在規定的時間裡去背誦一些數字、人名、單詞等等,可以鍛鍊博聞強記的能力。比如:

在3分鐘內,背誦圓周率()小數點後30位數字:3.141592653589793238462643383279;

在2分鐘內,背誦十個陌生的人名;

在10分鐘內,背誦十個外文生詞。

(5) 記憶保健操

在頭頸後部找到"天柱"、"風池"二穴,將兩手交凡於腦後,用拇指的指腹腔按壓這兩個穴位,每次按壓5秒鐘,突然加壓,然後將拇指移開,按壓5至10次後,會感到頭腦清醒。

參考資料:
多吃什麼可以加強記憶力,有什麼方法可以鍛練。

vim自動補齊功能

在寫程式的時候,最好希望編輯器在我們打完了部分的字之後,它可以列出讓我們可以選擇的候選字。

像是Source Inside與Visual C++和QTCreate都有這一個功能~沒有錯~vim也可以有這一個功能~

開最一篇文章,是希望最後可以把這一篇文章補成完成像是Source Inside的功能(遠望~)

目前還沒有很多時間去研究,不過,其實,一開始它就有一部分很簡單的自動補齊功能啦~

自動補齊(Auto-completion) (在Insert Mode中使用)
Ctrl-N 自動補齊檔案內的下一個可能字(word)
Ctrl-P 自動補齊檔案內的上一個可能字(word)
Ctrl-X Ctrl-F 自動補齊檔名

參考資料:
給程式設計師的Vim入門圖解說明
在linux下用vim取代source insight (vim 6.4)
用vim替代source insight
使用了盜版source insight慣了,不知道linux有什麼好的編輯軟件
linux下有沒有像source insight 一樣的源程序查看工具阿?

FreeCommander & MDIE

在Windows下面,通常要開很多視窗~

所以,之前有介紹資料夾分頁工具 - QT Tab Bar

它算是把功能加在微軟的檔案視窗上面。

而今天要介紹的兩個軟體是,自己建立一個視窗來管理這一台電腦的檔案系統。

FreeCommander
其實,我一開始會使用它,並不是用來瀏覽檔案,而是它有其中一個功能,就是同步的功能~
瀏覽多個視窗我還是使用QT Tab Bar這一個軟體~
它有一個缺點就是一次只能開啟二個視窗~不過,它可以記錄你之前開的視窗,算是非常好用~又是免費的~
具有「壓縮/解壓縮ZIP、CAB檔」,「解壓縮RAR檔」,以及「檔案分割」的功能、還有「檔案同步」的功能~

[2010.04.22 補充]
列出多個分頁
雜項→設定→顯示→資料夾分頁→也對單分頁顯示分頁欄

把FreeCommander加入右鍵選單
雜項→設定→殼層功能表→加入"FreeCommander"項目到內文功能表予→"資料夾"和"檔案"

[2010.06.10 補充-start]
雜項→設定→程式→編輯程式(F4)可以設定哪一種副檔名,可以指定由特定的編輯器開啟
以下是我設定的例子,我設定所有檔案都是由vim開啟
D:\Portable\PortableApps\gVimPortable\gVimPortable.exe -p --remote-tab-silent
另外一提,後面接的參數是讓當有第一個vim視窗存在時,要開啟第二個檔案的時候,會在第一個vim視窗中開啟一個tab,並且把第二個檔案放入其中,這樣才不會讓整個視窗操作環境變的很雜亂!
[2010.06.10 補充-end]
[2010.08.15 補充]
設定目前在使用的分頁在tab特別的明顯
雜項→設定→顯示→資料夾分頁→顏色→水平漸層色彩

MDIE
這一個就可以同時開啟多個視窗,而且,它跟QT Tab Bar我覺得對我來說有一個最大的優點,就是當ctrl + f時,MDIE會自動跳出另一個tab,不會影響到原先的視窗~
但是,目前中文化還不是很完全~
繁體版下載點

參考資料:
MDIE - 像瀏覽器的「檔案總管」
檔案總管替代軟體 FreeCommander

2010年3月10日 星期三

vim的expression與substitute配合運作

vim強就強在可以對文字檔案本身,做有規則性的動作,像是同時在行首加入某一個特定的字串、找到某一個pattern,則執行某一個取代的動作。

另外,vim本身內建了很多function,透過expression與substitute結合起來,真的是天下無敵啊~可以不需要用到外部指令(當然有外部指令更好,就當作備用嘛~)

例如:
getline({lnum} [, {end}])
可以取得目前文件內容的第lnum行的資料。

input({prompt} [, {text} [, {completion}]])
可以讓使用者輸入資料

inputdialog({prompt} [, {text} [, {cancelreturn}]])
可以讓使用者透過跳出的視窗輸入資料

put
把字串放到文章中

line ({expr})
取得行數
Q: 取得目前指標的行數
line(".")
Q: 取得目前檔案最後一行的行數
line("$")
Q: 取得選取區塊的第一行行數
line("'<")
Q: 取得選取區塊的最後一行行數
line("'>")

submatch({nr})
而 submatch(0) 則是用來表示前面所尋找的整個字串(pattern),而submatch(1)的話,則用來表示第一個以 \(…\) 夾起來的子字串。

substitute({expr}, {pat}, {sub}, {flags})
在{expr}尋找{pat}並且用{sub}取代

假設這裡有一個文章,內容為
article.txt
I work hard,
I try to work smart.
Can I accomplish it?


Q: 如何在文章的內容每一行前面,加入行數
A: :%s/^/\=line(".") . "\. "/
解釋:
尋找^,也就是開頭字元,一般來說,這是看不到的!
要在substitute後面使用expression則必需使用\=
原文: When the substitute string starts with "\=" the remainder is interpreted as an
expression.
而line(".")上面說過了,就是表示目前指標的行數
而後面又有一個「.」我是把它想成連接的功用,與後面"\. "連接起來

Q: 如何把I改為You
A: %s/\<I\>/You/g
解釋:
\<I\>是表示我要找的就是一個單字I而已,而accomplish其中的i就不會被我取代掉,不然accomplish會被取代為accomplYoush

Q: 如何透過expression的方式,在I後面加上and you
A: %s/\<I\>/\=submatch(0) . " and you"/
解釋:
submatch(0)就是表示前面所找到的符合的字串
.是表示連接後面字串的動作的動作

Q: 如何同時在最前面加入行號,並且同時把I改為I and you
A: %s/\(.*\)\(\<I\>\)\(.*\)/\=line(".") . "\. " . submatch(1) . submatch(2) . " and you" . submatch(3)/

[2010.03.28 補充]
Q: 要如何行號補0,像是1就印001,2是002,而10就是010,這樣排版才會漂亮
A: :%s/^/\=printf("%03d ",line("."))/g

[2015.02.02 補充]
Q: 直接在14行到145加入index,
14是1.
15是2.
...
145行是132.
A: 14,145s/^/\=printf("%d. ",line(".") - 13)/g

參考資料:
vim 小技巧 : 行數的顯示與利用