in header_common.htm --> -->

52AV手機A片王|52AV.ONE

 找回密碼
 立即註冊
快捷導航

Yahoo!奇摩搜尋
熱搜: 手機A片
Google奇摩搜尋
熱搜: 手機A片
     
查看: 3353|回復: 0
打印 上一主題 下一主題

[linux指令] Linux下的文字編輯器-vi詳細說明

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2014-11-18 08:47:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

本帖最後由 IT_man 於 2017-5-6 23:16 編輯 5 Q0 A& r. p! T. z
& G+ ?& A' h* e8 G: S
vi指令說明(完整版)
! {# O" `7 _6 w$ U6 K% _7 U" x
  • vi 的操作模式0 r( S+ x# G8 `) J. o4 P2 c/ e$ H) `


* G' J( _9 s, c! u4 a

vi 提供兩種操作模式:輸入模式(insert mode)指令模式(command mode)。當使用者進入 vi 後,內定即處在指令模式下,此刻鍵入之任何字元皆 被視為指令。在此模式下可進行刪除、修改等動作。若要輸入資料,則需進入輸入模式。

  • 輸入模式
    $ R$ Y- ^$ T5 _$ y: s

" d- D. `; @2 ?
       如何進入輸入模式' D; @# s. H  E
                a (append)    由游標之後加入資料。
5 c* ^0 ^. j" s; F4 J                A                   由該行之末加入資料。
$ J" A0 V0 K. Z# I                i (insert)        由游標之前加入資料。- ?; Z  [, \& h& F
                I                   由該行之首加入資料。
1 I2 M% l. b$ e                o (open)       新增一行於該行之下供輸入資料之用。) b, q0 g3 x* h: s/ Z5 J
                O                  新增一行於該行之上供輸入資料之用。( ~" C# M0 Z. y- ~) U8 y6 f, w
       如何離開輸入模式
% A4 `) D3 @$ b) |" O' {             《ESC》          結束輸入模式。0 y8 q3 U/ y- Y" l' X& j( T# L
  • 指令模式' x  _7 c& `: @; a


' r" A4 X+ w8 k# {9 s3 B7 x1.游標之移動4 b' m9 X& m- ^2 ?1 J
              h       向左移一個字元。
" N: x& |/ ^, B, {0 \6 h              j       向上移一個字元。
( W7 a5 P. y% }3 s              k       向下移一個字元。
) X$ `+ G. e5 R8 I( H7 Y              l       向右移一個字元。
5 f& R* S0 l% r; W% O              0       移至該行之首& y3 {/ d# U6 Y& j2 |. A/ d6 T
              $       移至該行之末。# W5 U8 k# d$ J& v& ?1 \' V8 K7 Y
              ^       移至該行的第一個字元處。
$ z/ N3 Z$ s2 T. k. y( l" C              H       移至視窗的第一列。; k7 m  W0 @7 }0 L& M3 b
              M       移至視窗的中間那列。
0 u& I' G8 O* n/ ~4 B* [              L       移至視窗的最後一列。9 x6 _4 C/ A* _* q3 P
             G       移至該檔案的最後一列。" M5 u) K. i6 a& L
             +       移至下一列的第一個字元處。, T8 ~3 ]1 B3 I$ D; `5 t) V
             -       移至上一列的第一個字元處。) c5 l6 \7 B( `
             (       移至該句之首。 (註一)
8 y. Y8 W4 X1 v" W) _$ a             )       移至該句之末。
2 j- R2 E7 u: \  L/ y( V8 C             {       移至該段落之首。 (註二): C; |& Z' ~6 @. x: n
             }       移至該段落之末。
3 E  {! p+ i- M/ F# E, a$ D5 Q$ l             nG      移至該檔案的第 n 列。
8 ?* P) B/ _* g% s2 _6 a; {             n+      移至游標所在位置之後的第 n 列。
  R" Y& i  b" ~6 h& Q             n-      移至游標所在位置之前的第 n 列。* ]) Z) U0 z4 H2 ^" |
            <Ctrl><g>       會顯示該行之行號、檔案名稱、檔案中最末行之行號、游標所在行號佔總行號之百分比。
# w: O& N( \4 T  p) r            註一:句子(sentence)在vi中是指以『!』、『.』或『?』結束的一串字。
+ u6 z+ M4 a1 J' q0 u            註二:段落(paragraph)在vi中是指以空白行隔開的文字。4 L& ^% M  p5 p
3 ~9 b, C3 d- `( y5 d2 n+ U7 ?+ s* P
2.視窗的移動       <Ctrl><f>       視窗往下捲一頁。
; W" H1 z9 I9 M3 B; G9 Z. W* u/ S           <Ctrl><b>       視窗往上捲一頁。
9 T7 p- K; m; @9 x6 w0 N           <Ctrl><d>       視窗往下捲半頁。
3 H3 ^4 Q: ^! x: ]4 B- n, \           <Ctrl><u>       視窗往上捲半頁。
3 l$ T7 _2 p! Y+ r           <Ctrl><e>       視窗往下捲一行。& N, g. c- N+ [; [6 e
           <Ctrl><y>       視窗往上捲一行。( E2 l+ f! V/ q; j
, [6 {6 x$ n: l; K
3.刪除、複製及修改指令介紹 (此單元較少使用)
6 ]8 X6 M* \. E       d(delete)、c(change)和y(yank)這一類的指令在 vi 中的指令格式為:
& u2 ?, f6 K: r       Operator + Scope = command0 u; w2 d  B& E0 g5 d& C
       (運算子)   (範圍)
) W. L# k* B1 t       運算子:; S) d, T8 J2 j4 ?! E9 K5 o
       d       刪除指令。刪除資料,但會將刪除資料複製到記憶體緩衝區。
5 c  v, X. k/ _, F8 Q, t" O- Q+ P       y       將資料(字組、行列、句子或段落)複製到緩衝區。
; ~3 \: m; I7 N: _/ S       p       放置(put)指令,與 d 和 y 配和使用。可將最後delete或yank的資
* J8 p7 s  o0 \: ?4 S' n6 h" Z                料放置於游標所在位置之行列下。
+ ~9 k9 `) w& F# C  g! ^0 e/ _       c       修改(change)指令,類似delete與insert的組和。刪除一個字組、句
, v, Y7 i3 g1 Y1 E. A7 q                子等之資料,並插入新鍵資料。) i) x( d7 ^9 x
       範圍:
! Y% n; [5 ^3 T" @       e       由游標所在位置至該字串的最後一個字元。
4 e% n. q0 E' f. p       w       由游標所在位置至下一個字串的第一個字元。" G1 \/ l7 ?1 `1 ~4 e
       b       由游標所在位置至前一個字串的第一個字元。9 o* }7 |+ P+ B4 _  A7 `9 b
       $       由游標所在位置至該行的最後一個字元。
. r) M$ b' `; a3 j# {4 D) e       0       由游標所在位置至該行的第一個字元。
' s( ~5 U, W* |8 a& }6 \! t       )       由游標所在位置至下一個句子的第一個字元。
! }, |6 S1 R5 u: J9 H' e1 p) m1 z       (       由游標所在位置至該句子的第一個字元。5 ^& \# a) l) ?& }( K5 ?. k
       {       由游標所在位置至該段落的最後一個字元。
4 m% J- u* X5 _* M4 I2 x       }       由游標所在位置至該段落的第一個字元。1 V; m% ^% v- K5 V
       整行動作
) {; [7 U0 w3 r2 p& G       dd      刪除整行。
7 D' c  v3 P* R( s+ i       D       以行為單位,刪除游標後之所有字元。$ o7 K# g0 O/ h6 T2 F! N
       cc      修改整行的內容。
  Y& h. J$ ]* F$ ?  P) a, c) \1 X* w1 k4 s       yy      yank整行,使游標所在該行複製到記憶體緩衝區。. f& d3 b; [* w* [1 s) }
# N1 A) ?& _0 I; ]" R2 t% }8 i
4.刪除與修改/ y7 N8 f$ s9 W2 u' d
       x       刪除游標所在該字元。
3 c' e$ ~, ]3 k3 D  e% d# ~% ^6 u! `       X       刪除游標所在之前一字元。3 w; }% a/ A% m3 f! d8 B$ E
       dd      刪除游標所在該行。7 ^, ?9 s& G/ l1 ]* y8 y0 T
       r       用接於此指令之後的字元取代(replace)游標所在字元。
' |: Q4 ?3 A' V% C9 k                如: ra 將游標所在字元以 a 取代之。9 E. s7 q: j  r4 U
       R       進入取代狀態,直到《ESC》為止。- Q6 ~5 |7 K! f& h! v
       s       刪除游標所在之字元,並進入輸入模式直到《ESC》。6 [3 k, d, r$ H, ?: O
       S       刪除游標所在之該行資料,並進入輸入模式直到《ESC》。
* ~5 }! c2 B0 F( P! E/ @) X* k( T" m0 t8 o) s, Z9 a7 `( ?+ F
5.搬移與複製5 J, O$ }) h5 D
       利用delete 及 put 指令可完成資料搬移之目的。
; u! W% `' b& ]$ X       利用yank 及 put 指令可完成資料複製之目的。( ]" I( ]4 ^6 F4 R8 l
       yank 和delete 可將指定的資料複製到記憶體緩衝區,而藉由 put 指令* A4 s: J! i2 q* `
       可將緩衝區內的資料複製到螢幕上。
; a8 ]6 ~9 I$ |9 H       例:
0 O+ H( d8 t+ r, \       搬移一行        ‧在該行執行 dd0 _+ N  f( ~/ {1 K( _- Y$ {
                        ‧游標移至目的地
4 Q, a! c2 v7 ?. G1 `" l$ `& g                        ‧執行 p
) f! ]: b- R1 W       複製一行        ‧在該行執行 yy
1 N& j7 t% Q, ]% A: |8 d& P& l                        ‧游標移至目的地
+ ?2 N5 j( m. p: m9 h& I5 M& @                        ‧執行 p2 ~; D' Y7 Q4 a0 W1 J/ a( G
6 p) f( Q0 r1 X$ F, l+ m3 R- J4 ]
6.指令重複
$ X( j* l9 O- G! I' X* {3 g1 Y6 l       在指令模式中,可在指令前面加入一數字 n,則此指令動作會重複執行 n
7 a1 r9 p5 [7 r' X       次。
7 r* q9 R3 G; d4 W& T2 j' ?1 j2 Z       例:8 l+ k, f, }% f
       刪除10行                ‧10dd
1 D- r7 H/ X# U: D' t# h$ ?       複製10行                ‧10yy, K# M% u. Z+ m, D- G6 n
                                ‧游標移至目的地
, k' f/ Y* K# C( c. U. S                                ‧p
  u* t/ }: u/ c6 t1 J       指標往下移10行 ‧10j
$ k% z  ]5 D2 q8 c
7 C( m, j  `0 [* ~5 Q7.取消前一動作(Undo). j' F) b  U4 p1 J8 Q
       即復原執行上一指令前的內容。
2 G# V1 N+ r9 r& J% ]       u       恢復最後一個指令之前的結果。: f, G% N2 C1 Y$ e3 u9 U
       U       恢復游標該行之所有改變。
  s1 v! S. ~1 s/ }6 r* G2 U) d
) a5 g1 F" d, \: ]8.搜尋# _7 r2 Q9 B% X
       在vi中可搜尋某一字串,使游標移至該處。6 r- p( g" w/ D
       /字串           往游標之後尋找該字串。
9 Z( j- F  F, I2 D8 |2 Y7 e) c3 `       ?字串           往游標之前尋找該字串。- J2 F9 ~; N1 g' ^$ I1 Q$ {6 [/ d" [
       n               往下繼續尋找下一個相同的字串。
; G: r; H8 m: U) X: r" S- b0 Y8 R       N               往上繼續尋找下一個相同的字串。6 e+ D3 K& q9 N9 Y

' Y5 g) I4 f1 D9 ~% w5 L7 p9.資料的連接# o4 k, L& A& f0 S, Q
       J       句子的連接。將游標所在之下一行連接至游標該行的後面。0 `2 `  ?8 h- ?# Z! c1 ]
       若某行資料太長亦可將其分成兩行,只要將游標移至分開點,進入輸入模式$ B6 C- V% L5 M# M  x. p) ]
       (可利用a、i等指令)再按《Enter》即可。4 n/ q3 q& @  h' k$ i

( v! v* C- G) j# k# i10.環境的設定% P3 D, h- E7 D2 g9 p, C5 B8 _: s
       :setnu                設定資料的行號。5 ?% ?  S* e/ Z- m6 c- y
       :setnonu              取消行號設定。
- g. u- j- a" X4 h       :setai                自動內縮。
3 j' p& C& N5 B9 b( T/ w       :setnoai              取消自動內縮。6 l! ^" h# T- U$ F/ ^/ ^
       自動內縮(automatic indentation)" Q: S: B; D/ x6 ]/ _. _- F( Q
       在編輯文件或程式時,有時會遇到需要內縮的狀況,『:set ai』即提供自
5 H, R8 {# H6 X       動內縮的功能,用下例解釋之:
8 @# a% P$ Y+ s# N9 f0 E5 `       ‧vi test4 S) q5 a# L8 p3 k. G
       ‧(進入編輯視窗後)
+ D! b0 o" Q) ?         this is the test for auto indent# y, j5 @8 a, ]6 L
         《Tab》start indent           ← :set ai (設自動內縮)
2 T) w* H/ C: H8 S7 S         《Tab》data
9 X* @1 k3 i' ?$ f, A* y4 p+ ^( B/ r         《Tab》data
0 d. w! I1 O8 m2 M' ]; B. n" A# T         《Tab》data                   ← :set noai (取消自動內縮)2 M! Y) `6 r7 v! {0 l
       the end of auto indent.7 v6 n7 E* ^9 t: j5 ]( N; K
       ‧註:<Ctrl><d>可刪除《Tab》字元。
# J8 r* E3 E- S: u) v
8 t2 U! ^$ m- O# s! Y11.ex指令
2 p; d% f) z6 g( A, @' y9 E% |       讀寫資料
0 y" p# ?, V' I# o       :w                     將緩衝區的資料寫入磁碟中。
. @* x9 w) H* S# M% L       :10,20wtest   將第10行至第20行的資料寫入test檔案。
8 B% B4 J# f+ N8 ?9 m7 l       :10,20w>>test  將第10行至第20行的資料加在test檔案之後。
9 w* q5 y7 w1 B7 S7 f3 h- y       :rtest                將test檔案的資料讀入編輯緩衝區的最後。
0 W" g9 T  H4 E4 W! Z2 j* Y/ e       刪除、複製及搬移0 W5 G0 ~7 [' p
       :10,20d                刪除第10行至第20行的資料。% B; S: a& J9 Z# Q( U- A* f$ X
       :10d                   刪除第10行的資料。. z2 U. l# |, s; K6 q& s' J, h& v8 k
       :%d                    刪除整個編輯緩衝區。0 E: a, _! f1 Z4 h' R# f5 h
       :10,20co30             將第10行至第20行的資料複製至第30行之後。0 f* C- v! u6 H( L! l
       :10,20mo30             將第10行至第20行的資料搬移至第30行之後。
( U# h- v/ ~3 O% T       字串搜尋與取代
+ C2 h" D- p9 o& H5 v4 s0 l1 n4 V6 |. C2 M       s(substitute)指令可搜尋某行列範圍。1 q, o1 s. k7 y$ s
       g(global)指令則可搜尋整個編輯緩衝區的資料。
# [6 O' L! K' }1 l$ [2 M* Y       s指令以第一個滿足該條件的字串為其取代的對象,若該行有數個滿足該條
- S( }' h. Y2 _$ _9 f/ e       件的字串,也僅能取代第一個,若想取代所有的字串則需加上g參數。" @# N; s% v; H6 C
       :1,$s/old/new/g                將檔案中所有的『old』改成『new』。
+ a, }# k7 ]  A5 A& O2 D1 }, S       :10,20s/^/   /        將第10行至第20行資料的最前面插入5個空白。
8 Y; s* b# L1 p1 a9 ?4 f9 l       :%s/old/new/g          將編輯緩衝區中所有的『old』改成『new』。
# [0 j8 {4 w5 e2 ^' Q/ y
; [' `* W; r* |12.恢復編輯時被中斷的檔案
  @) G3 f) X0 R  R       在編輯過程中,若系統當掉或連線中斷,而緩衝區的資料並還未7 d5 b6 Y9 \/ d9 \
       被寫回磁碟時,當再度回到系統,執行下列指令即可回復中斷前7 F' h; e8 l+ L  F0 Q7 F" @
       的檔案內容。( h, Z: @2 p) ^0 R7 X
       %vi -r filename" g! @+ V9 t) N( f
0 X. B& R$ x3 @" K; E! Q3 j
13.編輯多個檔案3 Q( }$ g4 O# q0 r) F2 v2 d
       vi亦提供同時編輯多個檔案的功能,方法如下:
' C& w) ?% O4 l3 J# q       %vi file1 file2 ..
, X+ W( P8 ^# B+ T* ~5 Y       當第一個檔案編修完成後,可利用『:w』將該緩衝區存檔,而後
* a( S+ O" h  _0 ?       再利用 『:n』載入下一個檔案。
0 t' ~  w$ s3 V9 y' U( ^
- g9 |1 ^- ~. D! ^3 x參考:5 F8 b- e1 Q1 u0 a8 D( ]
& V4 P/ T# L" e; I) [1 L
http://chunchaichang.blogspot.tw/2010/08/vim-s.html7 B3 n& ~4 W- L- `- v
-->
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則


-->

聚BT福利

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板|52AV手機A片王

GMT+8, 2024-10-16 11:38 , Processed in 0.065827 second(s), 16 queries .

連絡站長.廣告招商

[email protected] | QQ:2405733034     since 2015-01

裸聊妹 快速回復 返回頂部 返回列表