2009年9月8日 星期二

編輯 binary file

開啟時加上 "-b" option:
vim -b RON.MPG

參考 這一篇

加 -b 是為了防止最後一被加上 換行符號。

在 vi 裡面,實際上要配合 xxd 來作 hex 轉換
%!xxd
進入 hex display

之後就可以用一般 vi command insert delete 修改。
改好後再下xxd revert command 轉回binary
%!xxd -r

最後再用 wq 寫回就可以了

Show Line Number

show 行號
:set number
不要show 行號的話:
:set nonumber

2009年3月26日 星期四

Mark and Jump 標記與在標記間跳躍

在目前游標位置輸入 mx x 可以是任意字元,用來代表這個mark 的位置。

移動到 line 10,輸入 ma
移動到 line 90,輸入 mb

然後在任何位置,輸入 `a 就會到 lin 10 (剛剛輸入 ma 的游標位置)。
輸入 `b 就會到 line90。

m 就是 mark 的意思,後面的字元代表 mark 為 ?

` 是到 mark 的位置。

兩個 `` 就會到 "上一個" 游標位置。

如果要在括弧間跳躍: %

2009年3月9日 星期一

Copy, Paste - block

用V 和 Y

在 copy 的開始按 "v",移動游標(不能用arrow key)就會看到反白。到結束的地方按"y"


貼上用"p"

p : 貼在後面
P : 貼在前面




v 和方向選完 block 後...

y 是 copy
d 是 cut

2009年3月1日 星期日

Undo - u

在 command mode 按下 'u' 就可以 undo 上一個修改,
反覆按 u 就可以一直 undo 下去..

2009年2月9日 星期一

Auto Indent for C style

到 command mode ,下 set smartindent 就可以
: set smartindent

2009年2月4日 星期三

利用Vi 的 diff 功能,配合 subversion 作 revision diff 顯示

原理 只是用 svn 的 cat 功能 把某個版本的 sourcecode cat 出來 (到 tmp file)。
然後再用 vim 來開啟兩個檔案 : working and tmp.

把 svn 上,剛剛 committ 的 init.c cat 出來成 tmp:
# svn cat init.c @COMMITTED tmp
用 vim 的 diff 模式開啟:
#vim -d init.c tmp
就降,在 vim 裡還是可以編輯,save...

2009年2月3日 星期二

Go to the end of file

就是利用 command line ": 行數" 的方法,
然後利用 "$" 代表"最後":

先在command mode 按 ":" 這樣就會在最下面一行出現 ":"
然後再輸入 "$" 就代表最後一行。
按 Enter

^ 代表開頭
$ 代表最後

所以
:^
會到 file 的開頭
:$
會到 file 的最後