簡單的介紹UNIX下的常用編輯工具VI(轉)
簡單的介紹UNIX下的常用編輯工具VI(轉)[@more@]vi全螢幕編輯器
vi(Visual)是以視覺為導向的全螢幕編輯器、共分為三種方式(mode):
command方式:
?任何輸入都會作為編輯命令,而不會出現在螢幕上,若輸入錯誤則有“岬”的聲音;任何輸入
?都引起立即反映
insert方式:
?任何輸入的資料都置於編輯暫存器。在command方式下輸入(I,a,A等),可進入insert方式,??insert方式下按ESC,可跳回command方式。
escape方式:
以“:”或者“/”為前導的指令,出現在螢幕的最下一行,任何輸入都被當成特別指令。
進入vi(在系統提示符下面輸入以下指令):
vi ????????? 進入vi而不讀入任何檔案
vi filename????? 進入vi並讀入指定名稱的檔案(新、舊檔案均可)。
vi +n filename????進入vi並且由檔案的第幾行開始。
vi +filename ???? 進入vi並且由檔案的最後一行開始。
vi + /word filename ?進入vi並且由檔案的word這個字開始。
vi filename(s) ??? 進入vi並且將各指定檔案列入名單內,第一個檔案先讀入。
vedit???????? 進入vi並且在輸入方式時會在狀態行顯示“INSERT MODE"。
編輯數個檔案(利用vi filename(s))進入vi後)
:args ????????顯示編輯名單中的各個檔名
:n??????????讀入編輯名單中的下一個檔案
:rew?????????讀入編輯名單中的第一個檔案
:e#????????? 讀入編輯名單內的前一個檔案
:e file ???????讀入另一個檔案進vi(此檔案可不在編輯名單內),若原檔案經修改還沒有存檔,則???????????應先以: w 存檔。
:e! file???????強迫讀入另一個檔案進入vi,原檔案不作存檔動作。
儲存及退出vi
:w filename????? 存入指定檔案,但未退出vi(若未指定檔名則為當前工作的檔名)。
:wq 或者 :x或者zz?? 存檔案,並且退出vi.
:q??????????不作任何修改並退出vi。
:q!????????? 放棄任何修改並退出vi。
:!command?????? 暫時退出vi並執行shell指令,執行完畢後再回到vi。
:sh????????? 暫時退出vi到系統下,結束時按Ctrl + d則回到vi。
加資料指令
i?????????? 在關標位置開始插入字元,結束時候按ESC鍵。
I?????????? 在游標所在行的最前面開始加字,結束時按ESC鍵。
a?????????? 在游標位置後開始加字,結束時按ESC鍵。
A?????????? 在游標所在行的最後面開始加字,結束時按ESC鍵。
o?????????? 在游標下加一空白行並開始加字,結束時按ESC鍵。
O?????????? 在游標上加一空白行並開始加字,結束時按ESC鍵。
!command???????執行shell指令,並把結果加在游標所在行的下一行。
刪除指令
nx??????????刪除由游標位置起始的n個字元(含游標位置,按一個x表示刪除游標所在的字元)
nX ????????? 刪除由游標位置起始的n個字元(不含游標位置)。
ndw????????? 刪除游標位置其實的n個字元組(word)。
d0 ????????? 將行的開始到游標位置的字元全部刪除。
d$ 或D ??????? 將游標位置起始到行尾的字元全部刪除。
ndd ?????????將游標位置起始的n行(整行)刪除(dd表示刪除游標所在行)。
:start,endd????? 刪除檔案的第start到end行。
關標移動
0 ??????????移到一行的開始
$ ??????????移到一行的最後
[?????????? 移到檔案開始位置
]?????????? 移到檔案結束位置
nh??????????往左移n位
nl或者spacebar ??? 往右移n位
nk??????????向上移n行
n+??????????向上移n行,游標在該行的起始
ni ????????? 向下移n行
n-??????????向下移n行,游標在該行的起始
H?????????? 移到螢幕的左上角
M?????????? 移到螢幕的中間行開頭
L?????????? 移到螢幕的最後一行
G?????????? 移到檔案的最後一行
nG或者:n???????移到檔案的第n行
nw??????????右移n個字組,標點符號屬於字組
nW??????????右移n個字組,標點符號不屬於字組
nb??????????左移n個字組,標點符號屬於字組
nB??????????左移n個字組,標點符號不屬於字組
Ctrl + u???????螢幕上卷半個選單
Ctrl + d ?????? 螢幕下卷半個選單
Ctrl + b ?????? 螢幕上卷一個選單
Ctrl + F ?????? 螢幕下卷一個選單
修改指令
r?????????? 修改游標檔案的字元
R?????????? 從游標位置開始修改,結束時按ESC鍵
new????????? 更改n組字元,結束時按ESC鍵
ncc????????? 從游標所在位置開始更改n行,結束時按ESC鍵
重排各行長度
i?????????? 並按Enter將該行由游標所在處斷開,並進入insert方式
J ??????????把下一行的資料連線到本行之後
尋找指令
/text???????? 從游標位置往下找字串text
?text???????? 從游標位置往上找字串text
n?????????? 繼續找下一個字串(在輸入上面的尋找指令之後使用)
尋找並且取代指令
:getxt1/s/ /text2/options ??將各行的text1替換為text2
???????????????option=g表示檔案中所有的text1均被取代,若未輸入任何option,則只有???????????????各行中的第一個出現的text1被取代
???????????????option=go 在螢幕顯示各取代的行
???????????????option=gc 在每個字串取代之前要求確認?
Start,endgtext1/s/ / text2/options ?同上,只尋找並取代第start~end行。
或:Start,ends/text1/text2/options
複製及移動檔案
:first,last co dest ?????將first 到last行的資料複製到目標行(dest)下面
:Start,end?m dest??????將start 到 end行的資料移動到目標行(dest)下。???
:r filename????????? 將指定檔案的內容讀入游標所在行下。
nY ????????????? 將游標所在位置開始的n行資料暫存
p?????????????? 複製暫存資料在游標的下一行
P?????????????? 複製暫存資料在游標的上一行
其他命令
.?????????????? 重複前一指令
u?????????????? 取消前一指令
Ctrl + l???????????重新整理螢幕顯示
:set number????????? 顯示檔案的行號,但不會存檔案
:set nonumber???????? 解除行號顯示
:set ai??????????? 設定每行起始位置(以游標當前位置為起始)
:set noai?????????? 取消行起始位置設定
:f 或 + g??????? 告訴使用者有關現行編輯檔案的資料。
vi(Visual)是以視覺為導向的全螢幕編輯器、共分為三種方式(mode):
command方式:
?任何輸入都會作為編輯命令,而不會出現在螢幕上,若輸入錯誤則有“岬”的聲音;任何輸入
?都引起立即反映
insert方式:
?任何輸入的資料都置於編輯暫存器。在command方式下輸入(I,a,A等),可進入insert方式,??insert方式下按ESC,可跳回command方式。
escape方式:
以“:”或者“/”為前導的指令,出現在螢幕的最下一行,任何輸入都被當成特別指令。
進入vi(在系統提示符下面輸入以下指令):
vi ????????? 進入vi而不讀入任何檔案
vi filename????? 進入vi並讀入指定名稱的檔案(新、舊檔案均可)。
vi +n filename????進入vi並且由檔案的第幾行開始。
vi +filename ???? 進入vi並且由檔案的最後一行開始。
vi + /word filename ?進入vi並且由檔案的word這個字開始。
vi filename(s) ??? 進入vi並且將各指定檔案列入名單內,第一個檔案先讀入。
vedit???????? 進入vi並且在輸入方式時會在狀態行顯示“INSERT MODE"。
編輯數個檔案(利用vi filename(s))進入vi後)
:args ????????顯示編輯名單中的各個檔名
:n??????????讀入編輯名單中的下一個檔案
:rew?????????讀入編輯名單中的第一個檔案
:e#????????? 讀入編輯名單內的前一個檔案
:e file ???????讀入另一個檔案進vi(此檔案可不在編輯名單內),若原檔案經修改還沒有存檔,則???????????應先以: w 存檔。
:e! file???????強迫讀入另一個檔案進入vi,原檔案不作存檔動作。
儲存及退出vi
:w filename????? 存入指定檔案,但未退出vi(若未指定檔名則為當前工作的檔名)。
:wq 或者 :x或者zz?? 存檔案,並且退出vi.
:q??????????不作任何修改並退出vi。
:q!????????? 放棄任何修改並退出vi。
:!command?????? 暫時退出vi並執行shell指令,執行完畢後再回到vi。
:sh????????? 暫時退出vi到系統下,結束時按Ctrl + d則回到vi。
加資料指令
i?????????? 在關標位置開始插入字元,結束時候按ESC鍵。
I?????????? 在游標所在行的最前面開始加字,結束時按ESC鍵。
a?????????? 在游標位置後開始加字,結束時按ESC鍵。
A?????????? 在游標所在行的最後面開始加字,結束時按ESC鍵。
o?????????? 在游標下加一空白行並開始加字,結束時按ESC鍵。
O?????????? 在游標上加一空白行並開始加字,結束時按ESC鍵。
!command???????執行shell指令,並把結果加在游標所在行的下一行。
刪除指令
nx??????????刪除由游標位置起始的n個字元(含游標位置,按一個x表示刪除游標所在的字元)
nX ????????? 刪除由游標位置起始的n個字元(不含游標位置)。
ndw????????? 刪除游標位置其實的n個字元組(word)。
d0 ????????? 將行的開始到游標位置的字元全部刪除。
d$ 或D ??????? 將游標位置起始到行尾的字元全部刪除。
ndd ?????????將游標位置起始的n行(整行)刪除(dd表示刪除游標所在行)。
:start,endd????? 刪除檔案的第start到end行。
關標移動
0 ??????????移到一行的開始
$ ??????????移到一行的最後
[?????????? 移到檔案開始位置
]?????????? 移到檔案結束位置
nh??????????往左移n位
nl或者spacebar ??? 往右移n位
nk??????????向上移n行
n+??????????向上移n行,游標在該行的起始
ni ????????? 向下移n行
n-??????????向下移n行,游標在該行的起始
H?????????? 移到螢幕的左上角
M?????????? 移到螢幕的中間行開頭
L?????????? 移到螢幕的最後一行
G?????????? 移到檔案的最後一行
nG或者:n???????移到檔案的第n行
nw??????????右移n個字組,標點符號屬於字組
nW??????????右移n個字組,標點符號不屬於字組
nb??????????左移n個字組,標點符號屬於字組
nB??????????左移n個字組,標點符號不屬於字組
Ctrl + u???????螢幕上卷半個選單
Ctrl + d ?????? 螢幕下卷半個選單
Ctrl + b ?????? 螢幕上卷一個選單
Ctrl + F ?????? 螢幕下卷一個選單
修改指令
r?????????? 修改游標檔案的字元
R?????????? 從游標位置開始修改,結束時按ESC鍵
new????????? 更改n組字元,結束時按ESC鍵
ncc????????? 從游標所在位置開始更改n行,結束時按ESC鍵
重排各行長度
i?????????? 並按Enter將該行由游標所在處斷開,並進入insert方式
J ??????????把下一行的資料連線到本行之後
尋找指令
/text???????? 從游標位置往下找字串text
?text???????? 從游標位置往上找字串text
n?????????? 繼續找下一個字串(在輸入上面的尋找指令之後使用)
尋找並且取代指令
:getxt1/s/ /text2/options ??將各行的text1替換為text2
???????????????option=g表示檔案中所有的text1均被取代,若未輸入任何option,則只有???????????????各行中的第一個出現的text1被取代
???????????????option=go 在螢幕顯示各取代的行
???????????????option=gc 在每個字串取代之前要求確認?
Start,endgtext1/s/ / text2/options ?同上,只尋找並取代第start~end行。
或:Start,ends/text1/text2/options
複製及移動檔案
:first,last co dest ?????將first 到last行的資料複製到目標行(dest)下面
:Start,end?m dest??????將start 到 end行的資料移動到目標行(dest)下。???
:r filename????????? 將指定檔案的內容讀入游標所在行下。
nY ????????????? 將游標所在位置開始的n行資料暫存
p?????????????? 複製暫存資料在游標的下一行
P?????????????? 複製暫存資料在游標的上一行
其他命令
.?????????????? 重複前一指令
u?????????????? 取消前一指令
Ctrl + l???????????重新整理螢幕顯示
:set number????????? 顯示檔案的行號,但不會存檔案
:set nonumber???????? 解除行號顯示
:set ai??????????? 設定每行起始位置(以游標當前位置為起始)
:set noai?????????? 取消行起始位置設定
:f 或
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-947683/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Unix中Vi編輯常用命令總結(轉)
- xheditor文字編輯器的簡單實用介紹
- Linux下的編輯器――vi大全(轉)Linux
- Unix vi編輯器命令總結
- UNIX系統都會提供的螢幕編輯器-vi的使用(轉)
- AngularJS實現的表單編輯提交功能簡單介紹AngularJS
- EasyUI對treegrid編輯方法簡單介紹UI
- vi編輯命令(轉)
- 簡單介紹一下Java常用的五大框架!Java框架
- java字串的簡單介紹(轉)Java字串
- MSMQ的簡單介紹(收藏) (轉)MQ
- unix的AWK命令介紹(轉)
- 提高jquery效能的常用技巧簡單介紹jQuery
- jQuery常用的動畫函式簡單介紹jQuery動畫函式
- linux vi命令常用方法介紹Linux
- 簡單介紹下量化分析的常用庫TA-lib
- Unix下常見shell簡介(轉)
- 原生js的常用dom元素操簡單介紹JS
- artEditor移動端富文字編輯器使用簡單介紹
- UNIX簡介(轉)
- Linux下字元介面文字編輯器 vi(轉)Linux字元
- js的邏輯與&&運算子用法簡單介紹JS
- CentOS7 vi編輯命令【轉】CentOS
- vi和vim的編輯模式模式
- 簡單介紹Go語言常用的打log方式Go
- redis的簡單使用和介紹(轉載)Redis
- 「Premiere中文新手教程」PR常用剪輯工具介紹REM
- SqlDataAdapter簡單介紹 (轉)SQLLDAAPT
- Oracle 鎖簡單介紹(轉)Oracle
- Oracle鎖簡單介紹(轉)Oracle
- vi 的一些簡單命令(轉)
- Webpack 的簡單介紹Web
- Promise的簡單介紹Promise
- CFRunloopObserverRef 的簡單介紹OOPServer
- node.js的編碼規範簡單介紹Node.js
- linux下vi編輯器命令大全Linux
- Vi 簡介 linux操作 (轉)Linux
- css編碼規範簡單介紹CSS