2010年12月9日 星期四

[Vim] Regular Expression 中介字元

中介字元(metacharacter, or character classes)主要是用以簡化 regexp 的書寫。

\s 表空白字元,即Space或Tab。
不含換行字元,這是編輯器的特性使然。在 perl 的 \s 是包含換行字元的。而且 vim 及 elvis 皆不支援 \n 這種換行中介字元。

\S 表非空白字元。
\d 表數目字(digits),即 [0-9]。
\D 表非數目字,即 [^0-9]。
\w 表一般字元(word character),包括底線。即 [0-9a-zA-Z_]。
\W 表非一般字元,即 [^0-9a-zA-Z_]。
\a 表英文字母(alphabetic character),即 [a-zA-Z]。
\A 表非英文字母,即 [^a-zA-Z]。
\l 表小寫字母(lowercase character),即 [a-z]。
\L 表非小寫字母,即 [^a-z]。 \u 表大寫字母(uppercase),即 [A-Z]。
\U 表非大寫字母,即 [^A-Z]。

原始 vi 不支援此種中介字元。
使用中介字元的比對速度將會比使用字元集合 [] 的快。

2010年12月1日 星期三

[Ubuntu] 利用sshfs掛載sftp的目錄

SSHFS可以透過SSH來掛載遠端的目錄,掛載以後操作遠端的檔案就像操作本地端檔案一樣,超方便!

只要三步:

1. 安裝sshfs
sudo apt-get install sshfs
2. 在本地端建立掛載位置
mkdir ~/sftp_dir
3. 使用sshfs將遠端目錄掛載到本地端(此例掛載遠端根目錄)
sshfs username@192.168.1.1:/ ~/sftp_dir

2010年11月20日 星期六

[Vim] code的收折

程式碼寫得長了,不論是編輯或閱讀都是一件麻煩事。好在Vim有內建收折的功能,可以將程式碼依syntax或是指定的行數折疊。

這裡提供一些簡單的使用方法以及我愛用的設定。

將以下設定加入Vim的設定檔中
"folding settings
set foldmethod=indent "fold based on indent
set foldnestmax=10 "deepest fold is 10 levels
set nofoldenable "disable folding by default
set foldlevel=1

這個設定依照程式碼的縮排做收折,並且預設打開檔案時為全部展開的。

指令:
  • 折疊 / 展開 : za
  • 全部折疊: zM
  • 全部展開: zR