2007年11月30日 星期五

[基礎] VIM 如何進行字元的替換

假使有一段程式碼如下:


kaiser_windowed(kaiser_size_index) = windowed(x,'kaiser',kaiser_window_size(window_size_index), ref_length);
noise_kaiser_windowed(u_index) = ones(length(kaiser_window_size),1)*x_ref - kaiser_windowed;

一般而言,上面的程式碼經過驗證,確定無誤之後,會想要再複製上面的兩行,同時賦予不同的功能。於是會變成:

kaiser_windowed(kaiser_size_index) = windowed(x,'kaiser',kaiser_window_size(window_size_index), ref_length);
noise_kaiser_windowed(u_index) = ones(length(kaiser_window_size),1)*x_ref - kaiser_windowed;

kaiser_windowed(kaiser_size_index) = windowed(x,'kaiser',kaiser_window_size(window_size_index), ref_length);
noise_kaiser_windowed(u_index) = ones(length(kaiser_window_size),1)*x_ref - kaiser_windowed;

kaiser_windowed(kaiser_size_index) = windowed(x,'kaiser',kaiser_window_size(window_size_index), ref_length);
noise_kaiser_windowed(u_index) = ones(length(kaiser_window_size),1)*x_ref - kaiser_windowed;

於是乎,我們想要把上述程式裡面第三到第六行的「kaiser」要改成「hamming」跟「direct」,等同於使用不同的變數來呼叫函式。在VIM裡面有兩種方法可以達到更換字元的目的,先介紹一下第一種方法
格式如下:
":/s/要被代換的字/想要代換的字/g"
最後的g是指把選取的範圍,都做代換!

例子:
把要代換字的部分,利用"Vip"選取之後,執行
":/s/kaiser/hamming/g" %用"hamming"來代替"kaiser"
":/s/kaiser/direct/g"%用"direct"來代替"kaiser"


第二種方法:

1. 先來到"kaiser"的開頭"k",然後計算一下"kaiser"有幾個字母,然後執行"c6l",意思是刪除六個字
2. <輸入新的字,例如:"hamming"
3. 執行搜尋"/kaiser",此時"kaiser"會被反白
4. 執行"n.",讓VI可以做重複的刪除替換的動作!!

第二種方法的好處是,使用者可以自己親眼確認,有哪一些字是需要被替換的,有哪一些自不需要被替換,比第一種方式,無腦的全部替代,更安全嚕!!

沒有留言: