i 最經常使用的切換到插入模式命令 a 也能切換到插入模式,確切地講是在光標後面增長內容 I 切換到插入模式,而且插入的內容在光標所在行的行首 A 切換到插入模式,而且插入的內容在光標所在行的行末 o 小寫字母o,在光標所在行的下面插入一個空行,2o表示插入兩個空行 O 大寫字母O,在光標所在行的上面插入一個空行,2O表示插入兩個空行linux
在行首行尾添加指定字符 行首 :%s/^/your_word/ 行尾 :%s/$/your_word/shell
cc 改變整行,即將整行內容清掉 C 從光標開始直至行末的內容被清掉vim
r 將光標處的字符替換,而後自動切回命令模式 R 從光標處開始字符替換,直到按Esc才切回命令模式 s 替換光標所在處的字符,能夠輸入任意多個字符,直到按Esc才切回命令模式,前面能夠帶數字,好比 2s,表示替換光標處開始往右的兩個字符 S 替換光標所在的行,能夠輸入任意多個字符,直到按Esc才切回命令模式windows
vi/vim 中可使用 :s 命令來替換字符串。該命令有不少種不一樣細節使用方法,能夠實現複雜的功能,記錄幾種在此,方便之後查詢。 :s/vivian/sky/ 替換當前行第一個 vivian 爲 sky :s/vivian/sky/g 替換當前行全部 vivian 爲 sky :n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第一個 vivian 爲 sky :n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行全部 vivian 爲 sky n 爲數字,若 n 爲 .,表示從當前行開始到最後一行 :%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第一個 vivian 爲 sky :%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中全部 vivian 爲 sky 可使用 # 做爲分隔符,此時中間出現的 / 不會做爲分隔符 :s#vivian/#sky/# 替換當前行第一個 vivian/ 爲 sky/ :%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/ 5. 刪除文本中的^M 問題描述:對於換行,window下用回車換行(0A0D)來表示,linux下是回車(0A)來表示。這樣,將window上的文件拷到unix上用時,總會有個^M.請寫個用在unix下的過濾windows文件的換行符(0D)的shell或c程序。 。 使用命令:cat filename1 | tr -d 「^V^M」 > newfile; 。 使用命令:sed -e 「s/^V^M//」 filename > outputfilename.須要注意的是在一、2兩種方法中,^V和^M指的是Ctrl+V和Ctrl+M.你必需要手工進行輸入,而不是粘貼。 。 在vi中處理:首先使用vi打開文件,而後按ESC鍵,接着輸入命令:%s/^V^M//. 。 :%s/^M$//g 若是上述方法無用,則正確的解決辦法是: [Page] 。 tr -d \"\\r\" < src >dest 。 tr -d \"\\015\" dest 。 strings A>B 6. 替換確認 咱們有不少時候會須要某個字符(串)在文章中某些位置出現時被替換,而其它位置不被替換的有選擇的操做,這就須要用戶來進行確認,vi的查找替換一樣支持 例如 :s/vivian/sky/g 替換當前行全部 vivian 爲 sky 在命令後面加上一個字母c就能夠實現,即:s/vivian/sky/gc 顧名思意,c是confirm的縮寫 7. 其它 利用 :s 命令能夠實現字符串的替換。具體的用法包括: :s/str1/str2/ 用字符串 str2 替換行中首次出現的字符串 str1 :s/str1/str2/g 用字符串 str2 替換行中全部出現的字符串 str1 :。,$ s/str1/str2/g 用字符串 str2 替換正文當前行到末尾全部出現的字符串 str1 :1,$ s/str1/str2/g 用字符串 str2 替換正文中全部出現的字符串 str1 :g/str1/s//str2/g 功能同上 從上述替換命令能夠看到:g 放在命令末尾,表示對搜索字符串的每次出現進行替換;不加 g,表示只對搜索 字符串的首次出現進行替換;g 放在命令開頭,表示對正文中全部包含搜索字符串的行進行替換操做
x 刪除當前光標所在的字符 nx 刪除當前光標開始往右的n個字符 X 刪除當前光標所在處往左一位的字符 nX 刪除當前光標左邊n個字符,光標所在處的字符不會被刪 D 同C d0 刪除當前行從行首到光標之間的全部字符,光標所在處的字符不會被刪unix
:nd 刪除第n行 :.d 刪除當前行 :$d 刪除最後一行 :'ad 刪除帶有標記a的行 :m,nd 刪除第m行到第n行code
% 表明針對被編輯文件的每一行進行後續操做 $ 表明一行的結尾處 ^ 表明一行的開頭處字符串