2010年8月15日 星期日

edit multiple files

要 edit 多個 file 只要持續在 command 輸入: :e filename
用::ls或是:buffers可以列出目前所有開啟的 file -- vi 叫 "buffer"

:ls 會將 buffer 的 number 列在最前面,然後用:bn n=buffer number就可以跳到那個 file/buffer

要注意,用 :q 的話會關掉整個 vi,如果只是要關掉現在這個 buffer/file,要用::bd

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 下去..