vi命令
在命令狀態下,在某一行上按"J"鍵將Join下一行。
進入vi的命令
vi filename: 開啟或新建檔案,並將游標置於第一行首
vi +n filename: 開啟檔案,並將游標置於第n行首
vi + filename: 開啟檔案,並將游標置於最後一行首
vi +/pattern filename: 開啟檔案,並將游標置於第一個與pattern匹配的串處
vi -r filename: 在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename: 開啟多個檔案,依次進行編輯
移動游標類命令
h: 游標左移一個字元
l: 游標右移一個字元
space: 游標右移一個字元
Backspace: 游標左移一個字元
k或Ctrl+p: 游標上移一行
j或Ctrl+n: 游標下移一行
Enter: 游標下移一行
w或W : 游標右移一個字至字首
b或B : 游標左移一個字至字首
e或E : 游標右移一個字至字尾
): 游標移至句尾
(: 游標移至句首
}: 游標移至段落開頭
{: 游標移至段落結尾
nG: 游標移至第n行首
n+: 游標下移n行
n-: 游標上移n行
n$: 游標移至第n行尾
H: 游標移至螢幕頂行
M: 游標移至螢幕中間行
L: 游標移至螢幕最後行
0: 游標移至當前行首
$: 游標移至當前行尾
螢幕翻滾類命令
Ctrl+u: 向檔案首翻半屏
Ctrl+d: 向檔案尾翻半屏
Ctrl+f: 向檔案尾翻一屏
Ctrl+b: 向檔案首翻一屏
nz: 將第n行滾至螢幕頂部,不指定n時將當前行滾至螢幕頂部。
插入文字類命令
i: 在游標前
I: 在當前行首
a: 游標後
A: 在當前行尾
o: 在當前行之下新開一行
O: 在當前行之上新開一行
r: 替換當前字元
R: 替換當前字元及其後的字元,直至按ESC鍵
s: 從當前游標位置處開始,以輸入的文字替代指定數目的字元
S: 刪除指定數目的行,並以所輸入文字代替之
ncw或nCW: 修改指定數目的字
nCC: 修改指定數目的行
刪除命令
ndw或ndW: 刪除游標處開始及其後的n-1個字
do: 刪至行首
d$: 刪至行尾
ndd: 刪除當前行及其後n-1行
x或X: 刪除一個字元,x刪除游標後的,而X刪除游標前的
Ctrl+u: 刪除輸入方式下所輸入的文字
搜尋及替換命令
/pattern: 從游標開始處向檔案尾搜尋pattern ?pattern: 從游標開始處向檔案首搜尋pattern n: 在同一方向重複上一次搜尋命令 N: 在反方向上重複上一次搜尋命令 :s/p1/p2/g: 將當前行中所有p1均用p2替代 :n1,n2s/p1/p2/g: 將第n1至n2行中所有p1均用p2替代 :g/p1/s//p2/g: 將檔案中所有p1均用p2替換
選項設定
all: 列出所有選項設定情況
term: 設定終端型別
ignorance: 在搜尋中忽略大小寫
list: 顯示製表位(Ctrl+I)和行尾標誌($)
number: 顯示行號
report: 顯示由面向行的命令修改過的數目
terse: 顯示簡短的警告資訊
warn: 在轉到別的檔案時若沒儲存當前檔案則顯示NO write資訊
nomagic: 允許在搜尋模式中,使用前面不帶“\”的特殊字元
nowrapscan: 禁止vi在搜尋到達檔案兩端時,又從另一端開始
mesg: 允許vi顯示其他使用者用write寫到自己終端上的資訊
最後行方式命令
:n1,n2 co n3: 將n1行到n2行之間的內容拷貝到第n3行下 :n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下 :n1,n2 d: 將 n1行到n2行之間的內容刪除 :w: 儲存當前檔案 :e filename: 開啟檔案filename進行編輯 :x: 儲存當前檔案並退出 :q: 退出vi :q!: 不儲存檔案並退出vi :!command: 執行shell命令command :n1,n2 w!command: 將檔案中n1行至n2行的內容作為command的輸入並執行之, 若不指定n1,n2,則表示將整個檔案內容作為command的輸入 :r!command: 將命令command的輸出結果放到當前行
暫存器操作
"?nyy: 將當前行及其下n行的內容儲存到暫存器?中,其中?為一個字母,n為一個數字
"?nyw: 將當前行及其下n個字儲存到暫存器?中,其中?為一個字母,n為一個數字
"?nyl: 將當前行及其下n個字元儲存到暫存器?中,其中?為一個字母,n為一個數字
"?p: 取出暫存器?中的內容並將其放到游標位置處。這裡?可以是一個字母,也可以是一個數字
ndd: 將當前行及其下共n行文字刪除,並將所刪內容放到1號刪除暫存器中
[命令] (文字)
[命令] (數字)(文字)
(數字)[命令] (文字)
基本命令:i a c d y p u x w q o r s
vi [filename] 開啟一個指定檔案
基本文字處理
i 在當前游標前插入文字
I 在行首插入文字
a 在當前游標後插入文字
A 在行尾插入文字
O 在當前行前插入一行
o 在當前行後插入一行
x 刪除當前游標字元
xw 刪除單詞
x$ 刪除到行尾
x0 刪除到行首
5x 刪除5個字元
0 游標移動到當前行第一個字元
$ 游標移動到當前行最後一個字元
h 游標左移一個空格
l 游標右移一個空格
j 游標下移一行
k 游標上移一行
w|W 游標前移一個單詞
b|B 游標後移一個單詞
p 貼上
移動或複製文字可以通過先刪除(dd),然後貼上(p)的方法實現,如dd刪除一行,p貼上改行,x刪除字元,p貼上字元。
c | C 修改文字
cw 修改單詞,並插入
c$ 修改到行尾
c0 修改到行首
cc 替換當前行
d |D 刪除字元
dw 刪除單詞
d$ 刪除到行尾
dd 刪除當前行
r|R 替換當前文字
S 替換當前行
s 替換字元
~ 字母大小寫轉換
y | Y 複製文字
yw 複製單詞
y$ 複製到行尾
y0 複製到行首
yy 複製一行
4yy 複製4行
. 重複操作
u 撤銷上一次操作
U 撤銷改行任何操作
J 合併當前行與下一行
引數可以帶數字使用,如4h左移4個空格, 50i* 插入50個*
/ | n 向前搜尋
? | N 向後搜尋
^F 向前滾一屏
^B 向後滾一屏
^D 向前滾半屏
^U 向後滾半屏
^L 重新整理螢幕
編輯命令擴充套件
vi + [file] 開啟檔案到最後一行
vi -r [file] 系統崩潰後恢復檔案
vi +n [file] 開啟檔案到第n行
vi +/pattern [file] 開啟檔案到模式首次出現的地方
vi -R 以只讀模式開啟檔案
//1-9 前9次刪除操作
vi編輯器中可以CTRL+Z掛起vi,返回Unix shell狀態,進行其他工作,unix shell中的fg 命令可以使當前工作返回第一個掛起的vi視窗
ex行編輯器
vi中,在ex行命令可以用!呼叫unix系統命令,如!ls, 列出當前目錄的所有檔案,!df 察看當前硬碟使用情況。
ex命令由行號和命令組成,以Enter鍵結束。
:1 到第一行
:1,3 列印1~3行
:$ 到最後一行
:shift + G 到最後一行
:p 恢復緩衝區的內容(如:1p :3p)
:s/screen/line 替換當前行第一個screen 為 line
:1,3 s/screen/l 替換1~3行的screen為l
Q 進入ex編輯命令模式
vi 返回vi編輯器
:delete|d 刪除
:copy |co|t copy 並貼上 copy的內容
:move [行號]|m move到指定行
:23,29co100 複製23~29行並把他們貼上到100行的後面
:set nu 顯示行號
:= 顯示總行號
:.= 先是當前行行號
行地址符號
. 當前行
$ 最後以行
% 檔案每一行(1,$)
+ 向後
- 向前
:.+20# 先是從當前行向後20行的行號
:g 全域性搜尋
:g/pattern 搜尋符合模式的行
:g!/patterhn 搜尋不符合模式的行
:w 儲存但不退出.
:w [newfile] 將當前修改儲存到新檔案.
:wq || ZZ 儲存退出.
:e 不儲存當前修改,回到初始版本檔案.
:q 退出不儲存.
寫檔案並推出編輯器
:1,10w>> [newfile] 使用>>重定向新增符 和w 把內容追加到檔案
:read [file] 讀取系統中現有檔案資料
:r [file]
:0r [file] 將要讀取的檔案放到當前檔案的開始
:12r [file] 將要讀取的檔案放到當前檔案的12行後
vi可以開啟多個檔案,通過ex命令在檔案間切換,如vi temp test, 通過:vi temp, :vi test切換到不同檔案,:n命令可以呼叫另一個檔案
:g | :s 全域性替換
/g 在當前行全域性替換
:s/old/new/g 當前行全域性替換old字元為new
:1,$s/old/new/g 全域性替換
:1,50s/old/new/g 替換1~50行
:gc 確認替換,y 替換
n 重複搜尋
%s/editer/editor/g == :g/editer/s//editor/g
grep/sed/awk 正則表達
. 匹配單字元
* 匹配其前面的單個字元的0個或多個例項:bugs* == bug | bugs
*. 匹配任何數量的任何字元
^ 用於正規表示式的開始
$
\ 將後面的字元視為普通字元:\* == *
[] 匹配所包含字元的任何一個:p[aeiout]r == par | per....
:g/^$/d 刪除所有空行
\U 替換字元為大寫
& 重複替換
Advanced vi command
:set option 設定選項
:set nooption 關閉選項設定
:set all 顯示所有選項
:set ic 指定模式搜尋忽略大小寫
:set noic 不忽略
.exrc檔案 控制vi環境的exrc檔案位於主目錄下(首次登陸時所在的目錄),可以用vi編輯器修改.exrc檔案
:so sourcefile 可以呼叫sourcefile中的選項設定
程式設計選項
:set autoindent 自動縮排
CTRL+D 取消一個縮排級別(插入模式)
CRTL+T 實現另一個縮排級別(插入模式)
>> 行右移(預設8空格--實際上將製表符插入到文字中)
<< 行左移8空格
5>> 移動該段落中前5行
:set shiftwidth=4 該選項可以更改預設縮排的空格數目
:set tabstop=4 設定tab製表符號的字元數目
:set list 設定製表符顯示為^I,行尾顯示為$,通常螢幕中製表符和空白均顯示為空白。
:set showmatch 設定搜尋技巧
tabstop
shiftwidth
number
list
autowrite 設定後,呼叫:n(下一個)命令移動到下一個檔案編輯時,:! 執行shell命令之前將自動寫出已修改的緩衝區內容
:![command] 執行unix命令
:!date 顯示時間
:!sort 排序檔案
:ab 單詞縮寫
:unab 單詞縮寫失效
:map 列出當前對映的所有字元
:map x sequence 對映x為sequence編輯命令
:unmap x 取消對映
ex特殊鍵:
^ CTRL+V
^M 回車
^[ ESC
^H Backspace
^I tab
"... 雙引號標記ex註釋行,
VIM -- Vi Improved
==========================================================================
VI中命令區分大小寫,工作模式分為插入與命令模式,命令模式包括基本命令和ex編輯命令,ex編輯命令一般出現在螢幕下方,由:引出。
VI命令格式:
[命令] (文字)
[命令] (數字)(文字)
(數字)[命令] (文字)
基本命令:i a c d y p u x w q o r s
vi [filename] 開啟一個指定檔案
基本文字處理
i 在當前游標前插入文字
I 在行首插入文字
a 在當前游標後插入文字
A 在行尾插入文字
O 在當前行前插入一行
o 在當前行後插入一行
x 刪除當前游標字元
xw 刪除單詞
x$ 刪除到行尾
x0 刪除到行首
5x 刪除5個字元
0 游標移動到當前行第一個字元
$ 游標移動到當前行最後一個字元
h 游標左移一個空格
l 游標右移一個空格
j 游標下移一行
k 游標上移一行
w|W 游標前移一個單詞
b|B 游標後移一個單詞
p 貼上
移動或複製文字可以通過先刪除(dd),然後貼上(p)的方法實現,如dd刪除一行,p貼上改行,x刪除字元,p貼上字元。
c | C 修改文字
cw 修改單詞,並插入
c$ 修改到行尾
c0 修改到行首
cc 替換當前行
d |D 刪除字元
dw 刪除單詞
d$ 刪除到行尾
dd 刪除當前行
r|R 替換當前文字
S 替換當前行
s 替換字元
~ 字母大小寫轉換
y | Y 複製文字
yw 複製單詞
y$ 複製到行尾
y0 複製到行首
yy 複製一行
4yy 複製4行
. 重複操作
u 撤銷上一次操作
U 撤銷改行任何操作
J 合併當前行與下一行
引數可以帶數字使用,如4h左移4個空格, 50i* 插入50個*
/ | n 向前搜尋
? | N 向後搜尋
^F 向前滾一屏
^B 向後滾一屏
^D 向前滾半屏
^U 向後滾半屏
^L 重新整理螢幕
編輯命令擴充套件
vi + [file] 開啟檔案到最後一行
vi -r [file] 系統崩潰後恢復檔案
vi +n [file] 開啟檔案到第n行
vi +/pattern [file] 開啟檔案到模式首次出現的地方
vi -R 以只讀模式開啟檔案
//1-9 前9次刪除操作
vi編輯器中可以CTRL+Z掛起vi,返回Unix shell狀態,進行其他工作,unix shell中的fg 命令可以使當前工作返回第一個掛起的vi視窗
ex行編輯器
vi中,在ex行命令可以用!呼叫unix系統命令,如!ls, 列出當前目錄的所有檔案,!df 察看當前硬碟使用情況。
ex命令由行號和命令組成,以Enter鍵結束。
:1 到第一行
:1,3 列印1~3行
:$ 到最後一行
:shift + G 到最後一行
:p 恢復緩衝區的內容(如:1p :3p)
:s/screen/line 替換當前行第一個screen 為 line
:1,3 s/screen/l 替換1~3行的screen為l
Q 進入ex編輯命令模式
vi 返回vi編輯器
:delete|d 刪除
:copy |co|t copy 並貼上 copy的內容
:move [行號]|m move到指定行
:23,29co100 複製23~29行並把他們貼上到100行的後面
:set nu 顯示行號
:= 顯示總行號
:.= 先是當前行行號
行地址符號
. 當前行
$ 最後以行
% 檔案每一行(1,$)
+ 向後
- 向前
:.+20# 先是從當前行向後20行的行號
:g 全域性搜尋
:g/pattern 搜尋符合模式的行
:g!/patterhn 搜尋不符合模式的行
:w 儲存但不退出.
:w [newfile] 將當前修改儲存到新檔案.
:wq || ZZ 儲存退出.
:e 不儲存當前修改,回到初始版本檔案.
:q 退出不儲存.
寫檔案並推出編輯器
:1,10w>> [newfile] 使用>>重定向新增符 和w 把內容追加到檔案
:read [file] 讀取系統中現有檔案資料
:r [file]
:0r [file] 將要讀取的檔案放到當前檔案的開始
:12r [file] 將要讀取的檔案放到當前檔案的12行後
vi可以開啟多個檔案,通過ex命令在檔案間切換,如vi temp test, 通過:vi temp, :vi test切換到不同檔案,:n命令可以呼叫另一個檔案
:g | :s 全域性替換
/g 在當前行全域性替換
:s/old/new/g 當前行全域性替換old字元為new
:1,$s/old/new/g 全域性替換
:1,50s/old/new/g 替換1~50行
:gc 確認替換,y 替換
n 重複搜尋
%s/editer/editor/g == :g/editer/s//editor/g
grep/sed/awk 正則表達
. 匹配單字元
* 匹配其前面的單個字元的0個或多個例項:bugs* == bug | bugs
*. 匹配任何數量的任何字元
^ 用於正規表示式的開始
$
\ 將後面的字元視為普通字元:\* == *
[] 匹配所包含字元的任何一個:p[aeiout]r == par | per....
:g/^$/d 刪除所有空行
\U 替換字元為大寫
& 重複替換
Advanced vi command
:set option 設定選項
:set nooption 關閉選項設定
:set all 顯示所有選項
:set ic 指定模式搜尋忽略大小寫
:set noic 不忽略
.exrc檔案 控制vi環境的exrc檔案位於主目錄下(首次登陸時所在的目錄),可以用vi編輯器修改.exrc檔案
:so sourcefile 可以呼叫sourcefile中的選項設定
程式設計選項
:set autoindent 自動縮排
CTRL+D 取消一個縮排級別(插入模式)
CRTL+T 實現另一個縮排級別(插入模式)
>> 行右移(預設8空格--實際上將製表符插入到文字中)
<< 行左移8空格
5>> 移動該段落中前5行
:set shiftwidth=4 該選項可以更改預設縮排的空格數目
:set tabstop=4 設定tab製表符號的字元數目
:set list 設定製表符顯示為^I,行尾顯示為$,通常螢幕中製表符和空白均顯示為空白。
:set showmatch 設定搜尋技巧
tabstop
shiftwidth
number
list
autowrite 設定後,呼叫:n(下一個)命令移動到下一個檔案編輯時,:! 執行shell命令之前將自動寫出已修改的緩衝區內容
:![command] 執行unix命令
:!date 顯示時間
:!sort 排序檔案
:ab 單詞縮寫
:unab 單詞縮寫失效
:map 列出當前對映的所有字元
:map x sequence 對映x為sequence編輯命令
:unmap x 取消對映
ex特殊鍵:
^ CTRL+V
^M 回車
^[ ESC
^H Backspace
^I tab
"... 雙引號標記ex註釋行,
VIM -- Vi Improved
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20985606/viewspace-1066995/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VI 命令
- vi(vim)命令
- vi 命令 用法
- 常用VI命令
- vi命令用法
- UNIX VI命令
- VI命令彙總
- Vi命令實踐
- set -o vi 命令
- vi 命令專題
- Vi命令總結
- vi命令詳解
- vi替換命令
- vi命令詳解(轉)
- 常用的vi/vim命令
- vi&vim命令列命令列
- 我用到的vi命令
- Vi/Vim命令桌布圖
- VI 日常命令來大全
- vi命令的常用操作
- aix中的vi命令AI
- vi命令簡單使用
- vi編輯命令(轉)
- vi命令速查表
- 【linux下vi命令大全】Linux
- linux下vi命令大全Linux
- liunx下vi命令詳解
- vi 替換命令引數
- vi命令簡單實用
- vi命令速查表(轉)
- vi命令鳥哥詳解
- vi編輯器相關命令
- vi 命令常用快捷鍵 [final]
- Linux VI編輯命令使用Linux
- VI常用命令集合
- Linux 下vi 命令學習Linux
- vi常用命令(轉載)
- vi的替換命令說明