in header_common.htm --> -->

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

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

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

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

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

本帖最後由 IT_man 於 2017-5-6 23:16 編輯
( f, K. C9 s. p1 P8 q1 c
% X/ g) {0 k' Y5 [6 Svi指令說明(完整版)
, A9 {3 B/ W9 P* E1 R( b
  • vi 的操作模式" v' A% b1 f2 g- q2 P

5 p1 ?9 k# C7 B, h

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

  • 輸入模式5 _! ^9 X, C' \* w* S' t

& g% b* Y0 x0 s; ~7 f, f+ N3 Q
       如何進入輸入模式; k# J6 s! k  O1 T8 H
                a (append)    由游標之後加入資料。
. v: y! P3 T: t7 K                A                   由該行之末加入資料。  p+ E8 A6 T+ _+ M6 B5 \
                i (insert)        由游標之前加入資料。
0 E  U3 ]; i  |+ g: T                I                   由該行之首加入資料。( M& E% f( K  m3 d% R
                o (open)       新增一行於該行之下供輸入資料之用。
. r* ]7 B% ?; o5 I: V" l8 C                O                  新增一行於該行之上供輸入資料之用。0 c: y% Q& C5 U+ n
       如何離開輸入模式
# G0 O! w1 P, J, I- g" k. i+ a             《ESC》          結束輸入模式。
3 G0 J# u/ P* ~; _6 @
  • 指令模式
    5 y/ T: f2 ?4 o# N. P! r


0 n+ g1 i- C1 Z: z* A  T1.游標之移動
+ @& K- k- E! ]  V" G2 H" W) X              h       向左移一個字元。
3 m3 L! s# w6 `! z9 y" {              j       向上移一個字元。
! e5 R& f+ }7 K1 ^% t) t3 @              k       向下移一個字元。
+ E( q. V1 ?  n" c              l       向右移一個字元。
. l, W. y/ s7 N; \9 p  ~4 q              0       移至該行之首
9 w- ?( d% }# E, P              $       移至該行之末。
0 f& I0 P/ s1 b: @) t$ S              ^       移至該行的第一個字元處。% w' z1 K( \/ H( `0 O/ t0 k  ^
              H       移至視窗的第一列。
: O4 m1 v  L$ T# r' x              M       移至視窗的中間那列。9 S1 B" X- B+ u/ \, O
              L       移至視窗的最後一列。. M: E2 S1 N# B
             G       移至該檔案的最後一列。: a# T" D" ~+ l/ `" ^. f7 i8 R2 M
             +       移至下一列的第一個字元處。8 [( R7 O' ~2 X/ q8 K5 _. F4 h
             -       移至上一列的第一個字元處。/ J) g" ?! A1 J, |- V3 Q3 ^+ U" F: P
             (       移至該句之首。 (註一)6 t. X# ?" q$ P% i" I
             )       移至該句之末。
, r: n1 Z% z' R# ^3 E! Y. n! D             {       移至該段落之首。 (註二)0 B: N: V$ w- }7 l
             }       移至該段落之末。4 p9 P1 u1 y: I3 r1 [& d
             nG      移至該檔案的第 n 列。
" a2 }% B' m/ ?, K             n+      移至游標所在位置之後的第 n 列。
4 V2 x) V& L* j* R             n-      移至游標所在位置之前的第 n 列。
2 B9 J" {( H7 @* Q2 I            <Ctrl><g>       會顯示該行之行號、檔案名稱、檔案中最末行之行號、游標所在行號佔總行號之百分比。
! @! H$ Y1 O# \5 v            註一:句子(sentence)在vi中是指以『!』、『.』或『?』結束的一串字。* P: J4 h6 p, y$ E/ d) k3 D9 z
            註二:段落(paragraph)在vi中是指以空白行隔開的文字。
6 q, t' i5 [  {  H" ], Z
# ]) j7 r( X1 Z! `( e( `7 M3 f2.視窗的移動       <Ctrl><f>       視窗往下捲一頁。: L7 p. @& o" L( ~) e) R
           <Ctrl><b>       視窗往上捲一頁。
: O3 }6 Z) d' G+ z  O+ @$ X0 R           <Ctrl><d>       視窗往下捲半頁。
3 l( t5 I' M5 |7 e1 G& ~# u& t           <Ctrl><u>       視窗往上捲半頁。( _8 A, b, d5 n: U1 P) x
           <Ctrl><e>       視窗往下捲一行。
- Z: D) X: {/ g' @+ m           <Ctrl><y>       視窗往上捲一行。
# G! y6 }+ q5 n3 }4 m
! J8 E& ]5 J) x$ m2 y3.刪除、複製及修改指令介紹 (此單元較少使用)
. @5 q  S8 a( b( N1 c       d(delete)、c(change)和y(yank)這一類的指令在 vi 中的指令格式為:; @1 E. M* _, f% {7 ]; o0 ]
       Operator + Scope = command
0 |) Y3 b3 z! d8 B, M' d) w  c       (運算子)   (範圍)
' j5 X: c8 R* y' V4 e       運算子:
1 S* E8 O* t0 `7 ~+ [" E       d       刪除指令。刪除資料,但會將刪除資料複製到記憶體緩衝區。
6 _! q$ [6 \! J  ~  I       y       將資料(字組、行列、句子或段落)複製到緩衝區。" a3 E# T+ j" N4 j7 a0 `
       p       放置(put)指令,與 d 和 y 配和使用。可將最後delete或yank的資$ a* t- O7 U0 ]8 {: ]9 M4 x, a) o
                料放置於游標所在位置之行列下。
' {7 j" `7 f5 P5 R7 ^  ^       c       修改(change)指令,類似delete與insert的組和。刪除一個字組、句
: c2 a9 n& {% Q  c                子等之資料,並插入新鍵資料。
  d; p  d  G: Q. I$ R2 B! W       範圍:% @4 `( [1 N9 f& h, r) O5 ^
       e       由游標所在位置至該字串的最後一個字元。* s2 }: t2 ?. L8 c/ U. O. x
       w       由游標所在位置至下一個字串的第一個字元。/ g  W) U$ p; U4 S* u2 S. l+ t
       b       由游標所在位置至前一個字串的第一個字元。" e. o5 L2 \) a% ~- ?) Y  z
       $       由游標所在位置至該行的最後一個字元。
* ?# W: [* D3 ^       0       由游標所在位置至該行的第一個字元。6 `: U  b6 M% E
       )       由游標所在位置至下一個句子的第一個字元。; y+ t  x3 R; I: a0 B
       (       由游標所在位置至該句子的第一個字元。
( }* d+ g* [4 a, M0 g       {       由游標所在位置至該段落的最後一個字元。
- w, T, X3 L" Q       }       由游標所在位置至該段落的第一個字元。
7 e7 o- ]( N* h- a' V0 \       整行動作2 u8 \/ o+ p5 d6 N# j
       dd      刪除整行。
; q' J) h; G. s) {6 n, F       D       以行為單位,刪除游標後之所有字元。( L# S" L' I; y3 W
       cc      修改整行的內容。
  ]4 k% o+ M1 q2 |& K       yy      yank整行,使游標所在該行複製到記憶體緩衝區。) E  W& @  E' \) x! i
# r8 f- q- {. i+ @8 ]( M8 l8 o, r/ e
4.刪除與修改: R& {5 T/ A3 T, h; I+ r. M
       x       刪除游標所在該字元。5 i: U4 n9 p" U/ Z0 Q* C
       X       刪除游標所在之前一字元。* s* C6 s) V5 X5 x/ y- \- C: W
       dd      刪除游標所在該行。
2 W$ b8 N  z- K1 t. o! w/ f       r       用接於此指令之後的字元取代(replace)游標所在字元。) v3 C: S1 ~' Q7 D. P. F. G
                如: ra 將游標所在字元以 a 取代之。
: S/ F) r0 E6 K/ s       R       進入取代狀態,直到《ESC》為止。
& a- o1 @9 ^  T9 @       s       刪除游標所在之字元,並進入輸入模式直到《ESC》。4 c, Y# J: J  m& h& r
       S       刪除游標所在之該行資料,並進入輸入模式直到《ESC》。
1 w. `) }6 A: s; ]  Z7 |: h5 t' a; G# c
5.搬移與複製3 ~9 `: U/ \4 J
       利用delete 及 put 指令可完成資料搬移之目的。
, Z+ [; o5 }0 r5 z. q       利用yank 及 put 指令可完成資料複製之目的。
3 X. k, A/ F- A) [% E6 y       yank 和delete 可將指定的資料複製到記憶體緩衝區,而藉由 put 指令/ P' y) M+ p& r# V
       可將緩衝區內的資料複製到螢幕上。3 O! b( K2 s% o( g) c
       例:8 s- d, Q9 l" I# W
       搬移一行        ‧在該行執行 dd; V) U$ G+ X0 n
                        ‧游標移至目的地  C3 k, S5 x1 a  s5 A  v
                        ‧執行 p1 u# L8 x$ c5 i1 T4 `1 J9 F$ A) \
       複製一行        ‧在該行執行 yy
& n* i9 ^1 S) C+ s, }- x                        ‧游標移至目的地3 ~% F% j' B- u; n
                        ‧執行 p
# b5 R. {" J0 r; O; S; c& g- q
- a# S' k# X, A6.指令重複
* i4 A4 M, {- \3 Q       在指令模式中,可在指令前面加入一數字 n,則此指令動作會重複執行 n% ]3 [0 o+ n0 z' N) w
       次。
) l' H; A/ Z' w$ N0 A& n       例:; U5 L1 {9 w5 g; R- [! l8 {4 T
       刪除10行                ‧10dd
2 k! F% S: J: E. j4 g' i       複製10行                ‧10yy
) ^$ O; M. ]6 v& [5 H; s                                ‧游標移至目的地- q  [, C' ?, ]1 P- ]
                                ‧p
: y" u  u4 e0 r% L+ K9 b  P       指標往下移10行 ‧10j
5 I9 T* Z( u- L/ m. T8 \6 Q. U  [1 P4 P+ {" Q3 Y
7.取消前一動作(Undo)' _0 |9 a. E! T# ^- h9 n
       即復原執行上一指令前的內容。* m/ q' @* Q$ u3 n  p6 s  |6 ]1 {
       u       恢復最後一個指令之前的結果。5 m* v9 S8 ~: c' R- F
       U       恢復游標該行之所有改變。
8 Y. Q" a, c% K/ |  t8 B$ v( E+ W( U8 h: i+ J
8.搜尋; I2 E$ r6 L$ F( L8 t: u5 D
       在vi中可搜尋某一字串,使游標移至該處。, t. {3 V7 |7 l; }( G0 [& g& `
       /字串           往游標之後尋找該字串。! M- h& u* N: v7 v) x" f
       ?字串           往游標之前尋找該字串。* d" H% ]! Z2 @" V4 W
       n               往下繼續尋找下一個相同的字串。
. a0 b' @5 G' V# n' E- T       N               往上繼續尋找下一個相同的字串。3 D. A; Q3 j4 `4 g2 H6 E

7 C1 T% \" A5 x% q( c$ e/ k9.資料的連接6 m; I0 r* L' ~6 f' k' d9 ^0 o
       J       句子的連接。將游標所在之下一行連接至游標該行的後面。+ U- b( \0 g" v8 J
       若某行資料太長亦可將其分成兩行,只要將游標移至分開點,進入輸入模式3 k8 F5 h1 L* l/ f% M7 z
       (可利用a、i等指令)再按《Enter》即可。
% T6 m2 }: g/ t. `: s2 ^
8 q8 R9 v) K4 k, D: n10.環境的設定0 T( e. J8 A! |4 Q  `: w6 u$ l
       :setnu                設定資料的行號。
1 G% o- W' u2 F# W3 S. C7 t+ B       :setnonu              取消行號設定。" z6 z3 K% l# ]
       :setai                自動內縮。
# W1 E: i0 a9 `9 Y: f       :setnoai              取消自動內縮。
$ t  S( L2 J" ]$ b. S       自動內縮(automatic indentation)
/ ]( {  N: B3 b       在編輯文件或程式時,有時會遇到需要內縮的狀況,『:set ai』即提供自, ]! o) z  L# r+ G/ S3 e
       動內縮的功能,用下例解釋之:
4 a, M  m6 C: {. P       ‧vi test
" K! v' B) Z6 `, y1 P1 r# B       ‧(進入編輯視窗後)
, \1 }  P; u# z9 j7 _- B         this is the test for auto indent
! _! X# I- }9 ~+ k  o* {, C% }         《Tab》start indent           ← :set ai (設自動內縮)$ w( _& @) k3 F; O' S
         《Tab》data
  ^. Y( t) x* |, g0 ?0 B         《Tab》data
* l# n$ V5 F" y         《Tab》data                   ← :set noai (取消自動內縮)* E0 g5 Q$ h+ W
       the end of auto indent.+ s8 w/ Q( ~- D! n
       ‧註:<Ctrl><d>可刪除《Tab》字元。! I9 D( w3 r* h8 M

$ a2 _* q" l$ W. \# A11.ex指令
  U1 `# x  c5 F* Y- M5 C$ z       讀寫資料
. r* u6 U' o. ~! D& ^% K: P       :w                     將緩衝區的資料寫入磁碟中。
- M1 ~# g. S+ q' ~& j" d  \8 L" z5 |       :10,20wtest   將第10行至第20行的資料寫入test檔案。
5 R( w% F) S$ k7 y       :10,20w>>test  將第10行至第20行的資料加在test檔案之後。5 E2 E/ m) q- g' y0 c  W
       :rtest                將test檔案的資料讀入編輯緩衝區的最後。" Z9 s0 @4 R7 P2 c0 h1 S# ]
       刪除、複製及搬移  m$ u, c2 o4 y; v. Q
       :10,20d                刪除第10行至第20行的資料。
& K- B  c) U  @+ O       :10d                   刪除第10行的資料。! q: A0 j7 A4 L8 I
       :%d                    刪除整個編輯緩衝區。
( d- |4 @9 Q2 j% Q; [0 [1 ^       :10,20co30             將第10行至第20行的資料複製至第30行之後。
3 s5 V3 }  Y4 r, P  i3 \# p       :10,20mo30             將第10行至第20行的資料搬移至第30行之後。
# h# ]( H3 R& U* Z1 D! [4 s+ ~+ x/ O       字串搜尋與取代$ X+ W2 ]3 G/ ~9 h, U
       s(substitute)指令可搜尋某行列範圍。' L* `7 {6 S; I  M
       g(global)指令則可搜尋整個編輯緩衝區的資料。9 @6 w6 @' \( b  H
       s指令以第一個滿足該條件的字串為其取代的對象,若該行有數個滿足該條  G* B* _! w) k$ y1 L' i7 L
       件的字串,也僅能取代第一個,若想取代所有的字串則需加上g參數。
. S: e' Y4 J( }7 p% U       :1,$s/old/new/g                將檔案中所有的『old』改成『new』。
5 j0 z2 C0 z9 ~% q' P: s9 U       :10,20s/^/   /        將第10行至第20行資料的最前面插入5個空白。. c7 z0 ^1 w, o, e4 T7 U
       :%s/old/new/g          將編輯緩衝區中所有的『old』改成『new』。
! O9 F3 w$ @# B; D- p
4 Q% W* ~* H! n6 u$ v12.恢復編輯時被中斷的檔案
* K" V6 M3 P6 d       在編輯過程中,若系統當掉或連線中斷,而緩衝區的資料並還未, m$ {! d; m, S! e; l
       被寫回磁碟時,當再度回到系統,執行下列指令即可回復中斷前/ q) ~/ x! h* R; W
       的檔案內容。; I" ^/ W- a7 E6 C
       %vi -r filename
$ b# U* g: O6 I2 w( \8 {$ h+ h5 _! j6 {  }0 a
13.編輯多個檔案
0 h6 E( u- _/ c0 }' ]* N4 n       vi亦提供同時編輯多個檔案的功能,方法如下:
7 U* \' W- E+ A# W       %vi file1 file2 ..' X: W  C# t, H/ v, F2 M: T* H
       當第一個檔案編修完成後,可利用『:w』將該緩衝區存檔,而後/ h, M4 `; B( w4 u; q7 ?
       再利用 『:n』載入下一個檔案。
5 N  v! p* B  g% Z; i' D. X9 P! x, E; j, d# }' u9 D
參考:
' M! ?/ g( y% H$ A) k. \& \* ]* Z/ @& H  k& g+ a$ |7 O/ A7 q" l$ w
http://chunchaichang.blogspot.tw/2010/08/vim-s.html, r: k3 o9 O6 V: {
-->
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則


-->

聚BT福利

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

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

GMT+8, 2024-10-4 16:13 , Processed in 0.072073 second(s), 16 queries .

連絡站長.廣告招商

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

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