vi高階應用

2021-05-25 12:59:45 字數 2907 閱讀 1332

linux

2008-10-29 23:33:53

閱讀39

字型大小:大

小訂閱

find ./ -name "*.doc" -exec rm {} /;

2,用find , grep, xargs 的組合

find | grep .doc$ | xargs -i rm {}

看上去,第乙個簡單一些,但很類似,不過如果要實現:

刪除那些沒有指定字尾的檔案,那用find的時候,檔名的匹配,似乎要麻煩一些,而用後者就來得很輕鬆。

find | grep -v .doc$ | xargs -i rm {}

1.交換兩個字元位置

xp其實就是刪除游標當前字元(x),然後再將快取的字元貼出(p)

2.上下兩行調換

ddp實際就是(dd)刪除當前行,(p)後即將快取的行貼出

3.把檔案內容反轉

:g/^/m0

找到每一行,然後m移動到當前第一行的上面

4.上下兩行合併

j實用性:高,shift+j

5.刪除所有行

dg(d)為刪除,(shift+g)到檔案尾,因此這命令效用為從游標處刪除至檔案尾

那麼刪除到文首呢?對了,如果知道gg可以將游標移至文首,那麼dgg便是刪除到文首了

類似的還有:

dw -- 刪到詞尾

db -- 刪到詞頭

daw -- 刪除游標所在詞(較有用)

如果你用 "c" 代替 "d",這會變成修改命令;而改用 "y",則變成拷貝命令,等等等等。
6.從當前位置刪除到行尾

d$(d)刪除,$ (即 shift+4)為行尾,^( 即 shift+6)為行頭,依此類推,d^刪除至行頭

更為簡潔的命令為d,對了,就是shift+d,就這麼簡單

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

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

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

8.:ab string strings

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

當你在檔案裡插入 usa 時

united states of america 就蹦出來了

其實執行的是":abbreviate"命令,用":unabbreviate"命令解除縮寫,要刪除全部縮寫用

":abclear"

9.

:map keys new_seq

定義你當前 鍵盤命令

鍵對映,我前面的tips有用到

10.:set [all]

vi or ex 的編輯狀態

如 顯示每行 :set nu

set,就是set,不顯示行號":se nonu"

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

下面。

講的太不清楚了,n用數字代替,即將後面的指令重複執行n次,yy為複製,nyy複製n行

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

實用性:高,s等於我常用的cc或c

13.:%s/old_word/new_word/g

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

替換,用法是這樣:":起始行,結束行s/搜尋串/替換串/gc" 從起始行到結束行,把所有的搜尋串替換為替換串,最後那個"c"為開啟互動式替換,%為全文

14.游標控制

k:上移 nk 上移n行

j:下移 nj 下移n行

游標移動,還有h:左移  l:右移,不過我更喜歡用上、下、左、右,嘿嘿

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

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

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

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

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

在當前螢幕中

h 跳到第一行

m 跳到中間一行

l 跳到最後一行

當前螢幕的游標控制技巧,助記方法為:head、middle、last

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

24.到前乙個函式[[ ,到下乙個函式]] ,括號配對% ,交叉參考ctrl_] (事先用ctags做索引),回來用e# ` 編輯乙個函式:vi -t 函式名 ,編輯加密文字vi -x

%括號匹配我介紹過,:e#回來可以用ctrl+o替代,更優雅

25.在插入模式下ctrl+p,自動補齊剩餘單詞,以賴規則:tags,以有的單詞等等

還ctrl_n呢

vi 高階命令

鑑於大家在使用vi 的時候有一定的陌生,在這裡借花獻佛,從兄弟版 shell 中整理出以下關於vi程式設計的高階技巧,希望對大家學習unix有所幫助,並希望大家能結合使用hpux的心得體會對這些經驗進行進一步的擴充套件。1.交換兩個字元位置 xp2.上下兩行調換 ddp3.把檔案內容反轉 g m0 ...

vi使用高階

下面的命令在vi命令模式被啟用 h 游標左移乙個字元 l 游標向右移動乙個字元 j 游標下移一行 k 移動游標線 一.對整行操作 1.複製游標所在行 yy 2.刪除游標所在行 dd 3.選中游標所在行 shift v 結合j k選取多行 4.複製選中內容 y 數字 p 指定貼上次數 6.剪下選中內容...

vi 高階命令

1.熟練使用vi的游標命令 h 方向鍵,向左移動游標乙個字元的位置 l 方向鍵,向右移動游標乙個字元的位置 n 移動游標到第n行 n待定 1g 移動游標到檔案的第一行 g 移動游標到檔案的最後一行 set number 設定顯示行號 set nonumber 取消顯示行號 2.熟練使用vi的查詢命令...