VI的常見使用技巧

2021-04-01 09:16:46 字數 3105 閱讀 4053

vi命令可以說是unix/linux世界裡最常用的編輯檔案的命令了,很多人不喜歡vi因為它

的眾多的命令集,但是我們只需要掌握基本的命令然後靈活地加以運用,相信你會象我一

樣喜歡它的。

本文旨在更有條理有歸納性地介紹vi的一些最常用命令和一些高階的應用。

二:基本命令介紹:

1) 在乙個新檔案中讀/etc/passwd中的內容,取出使用者名稱部分

vi file

:r /etc/passwd 在開啟的檔案file中游標所在處讀入/etc/passwd

:%s/:.*//g 刪除/etc/passwd中使用者名稱後面的從冒號開始直到行尾的所有部分

:3r /etc/passwd 這是在指定的行號後面讀入檔案內容

另外一種方法刪掉檔案中所有的空行及以#開始的注釋行

#cat squid.conf.default | grep -v '^$' | grep -v '^#'

2) 在開啟乙個檔案編輯後才知道登入的使用者對該檔案沒有寫權,不能存檔

vi file

:w /tmp/1 既然沒法存檔,不想放棄所做的所有修改,先臨時存到/tmp/1

:20,59w /tmp/1 或者僅僅把第20到59行之間的內容存檔成檔案/tmp/1

3) 用vi編輯乙個檔案,但需要刪除大段大段的內容

vi file

ctrl+g 把游標移到需要刪除的行的處按ctrl+g顯示行號,再到結尾處再按ctrl+g.

:23,1045d 假定兩次行號為23和1045,則把這幾間的內容全刪除

也可以在開始和結束兩行中用ma,mb命令標記後用:'a,'bd刪除.

4) 在整個檔案或某幾行中在行首或行尾加一些字串

vi file

:3,$s/^/some string / 在檔案的第一行至最後一行的行首前插入some string

:%s/$/ some string/g 在整個檔案每一行的行尾新增 some string

:%s/string1/string2/g 在整個檔案中替換string1成string2

:3,7s/string1/string2/ 僅替換檔案中的第三到七行中的string1成string2

note: s為substitute,%表示所有行,g表示global

5) 同時編輯兩個檔案,在兩個檔案中拷貝剪貼文字

vi file1 file2

yy 同時開啟兩個檔案,在檔案1的游標所在處拷貝所在行

:n 切換到檔案2 (n=next)

p 在檔案2的游標所在處貼上所拷貝的行

:n 切換回檔案1

6) 替換檔案中的路徑

:%s#/usr/bin#/bin#g 把檔案中所有路徑/usr/bin換成/bin

或者用

:%s//usr/bin//bin/g 在'/'前用符號指出'/'是真的單個字元'/' 

鑑於大家在使用vi 的時候有一定的陌生,在這裡借花獻佛,從兄弟版[shell]中整理出以下關於vi程式設計的高階技巧,希望對大家學習unix有所幫助,並希望大家能結合使用hpux的心得體會對這些經驗進行進一步的擴充套件。

1.交換兩個字元位置

xp2.上下兩行調換

ddp3.把檔案內容反轉

:g/^/m0/       (未通過)

4.上下兩行合併

j5.刪除所有行

dg6.從當前位置刪除到行尾

d$7.從當前位置複製到行尾

y$ 如果要貼上到其他地方 p 就可以了

由於vi 是建立在 ex 上的 所以 當鍵入 : 時就來到了 ex 命令狀態

8.:ab string strings

例如 ":ab usa united states of america" ,

當你在文見裡插入 usa 時

united states of america 就蹦出來了

9.:map keys new_seq

定義你當前 鍵盤命令

10.:set [all]

vi or ex  的編輯狀態

如 顯示每行 :set nu

11.在命令狀態下,nyy表示拷貝從游標行起的下n行內容,p表示paste,可剛複製的內容貼上在游標處的

下面。

12.單個字元替換用r,覆蓋多個字元用r,用多個字元替換乙個字元用s,整行替換用s

13.:%s/old_word/new_word/g

這個指令是於在整個檔案中替換特定字串  

14.游標控制

k:上移 nk 上移n行

j:下移 nj 下移n行

將游標移到第n行,按下 mk

將游標移到第m行,按下 "ay'k

即將第n到m的行存到a暫存器,以此類推,b,c........暫存器等

這樣就可以將你常用的需要復用的內容貼上到不同的暫存器中以備用

想貼上到某處,直接將游標移到某地,按下 『ap 即可,以此類推,b,c........暫存器等

在當前螢幕中

h 跳到第一行

m 跳到中間一行

l 跳到最後一行

15.表8-2 刪除命令

刪除命令操作

d l 刪除當前字元(與x命令功能相同)

d 0 刪除到某一行的開始位置

d ^ 刪除到某一行的第乙個字元位置(不包括空格或ta b字元)

d w 刪除到某個單詞的結尾位置

d 3 w 刪除到第三個單詞的結尾位置

d b 刪除到某個單詞的開始位置

d w 刪除到某個以空格作為分隔符的單詞的結尾位置

d b 刪除到某個以空格作為分隔符的單詞的開始位置

d 7 b 刪除到前面7個以空格作為分隔符的單詞的開始位置

d) 刪除到某個語句的結尾位置

d 4) 刪除到第四個語句的結尾位置

d( 刪除到某個語句的開始位置

d } 刪除到某個段落的結尾位置

d 修改到某個段落的結尾位置

c '`

6  for machine in $addr

7   do

8     ping  $machine -n 2

9   done

10  done

Vi常見使用技巧

vi功能相當強大,但也很繁瑣,需要你經常使用,經常鍛鍊,時間長了,命令記熟了,效率就提上去了。這篇文章不是vi的詳細使用手冊,而只是針對me的。1 啟動vi 將游標定位到檔案最後一行啟動 vi filename 將游標定位到每乙個出現string字串的行首 vi string filename 注意...

VI的常見使用技巧

vi的常見使用技巧 本文 自 http linuxforum.一 簡介 vi命令可以說是unix linux世界裡最常用的編輯檔案的命令了,很多人不喜歡vi因為它 的眾多的命令集,但是我們只需要掌握基本的命令然後靈活地加以運用,相信你會象我一 樣喜歡它的。本文旨在更有條理有歸納性地介紹vi的一些最常...

VI的常見使用技巧 ZZ

原文章發布於 2001.7.6 by 吳阿亭 本站會員 一 簡介 vi命令可以說是unix linux世界裡最常用的編輯檔案的命令了,很多人不喜歡vi因為它 的眾多的命令集,但是我們只需要掌握基本的命令然後靈活地加以運用,相信你會象我一 樣喜歡它的。本文旨在更有條理有歸納性地介紹vi的一些最常用命令...