linux vi 常用命令

2021-08-25 16:26:23 字數 4374 閱讀 6259

***************===

vi command

***************===

vi a.txt

用vi編輯器編輯a.txt,如果不存在則建立空檔案,預設是一般模式;

---

都可從 一般模式 進入 編輯模式

---

esc 可以從 編輯模式 進入 一般模式

---

: 從 一般模式 進入 命令模式,輸入取消、儲存等指令

---

/ 從 一般模式 進入 命令模式,可以進行搜尋;

---

wq 命令預設下,保持檔案,並退出;

q 命令預設下,退出;

q! 命令預設下,取消對檔案的修改,並退出;

---

*****====

一般模式

*****====

h 或 左箭頭

左j 或 下箭頭

下k 或 上箭頭

上l 或 右箭頭

右---

ctrl+f

向前翻頁

ctrl+b

向後翻頁

ctrl+d

向前翻半頁

ctrl+u

向後翻半頁

---

0 或 home

移動到該行第乙個字元

$ 或 end

移動到該行最後乙個字元

n向右移動n個字元

---

g 移動到最後一行

[i] gg

移動到第 i 行,省略 i 則移動到第1行,

n向下移動n行

---

=

e.g.

gg=g

---

w 後1個單詞 詞首

e 後1個單詞 詞尾,(當前如果在單詞中,且不是詞尾,則到當前單詞的詞尾,)

b 前1個單詞 詞首

---

/word

向下搜尋 word

?word

向上搜尋 word

---

x 向後刪除1個

3x 向後刪除3個

x 向前刪除1個

4x 向前刪除4個

---

dd 刪除/剪下 整行

3dd 刪除/剪下 包括當前行向下的3行

dw 刪除/剪下 單詞

3dw 刪除/剪下 當前向右的3個單詞

d游標移動

刪除/剪下 游標移動的 字元 或 行,輸入d 然後移動游標,如果游標向左則刪除左邊的1個字元,向右則刪除當前字元(相當於 x),向上則刪除當前行和上一行,向下則刪除當前行和下一行,跳轉行則刪除2行之間(包括2行)的所有行,

---

yy 複製所在行

3yy 包括當前行複製向下3行

yw 複製 游標之後的第1個單詞,游標當前所在單詞僅複製游標及其後的部分(而不是整個單詞),游標後的第1個空白符也被複製(如果存在),

3yw 複製 游標之後的3個單詞,

---

p 貼上在當前行下

p 貼上在當前行上

---

u undo

ctrl + r

redo

---

:i 跳轉到第 i 行

---

ctrl + shift + >>

shift right current line

2 ctrl + shift + >>

shift right 2 line

ctrl + shift + <<

shift left current line

2 ctrl + shift + <<

shift left 2 line

*****====

一般模式 ---> 編輯模式

*****====

i 在當前游標前插入字元

i 在當前行首前插入字元

---

a 在當前游標後插入字元

a 在當前行尾插入字元

---

o 在當前行 下 新開一行,插入字元

o 在當前行 上 新開一行,插入字元

---

r,r 準備替換當前字元,替換後仍回到一般模式

*****====

編輯模式 ---> 一般模式

*****====

esc 退出編輯模式,進入一般模式

---

*****====

一般模式 ---> 命令列模式

*****====

: 進入命令列模式

---

*****====

命令列模式

*****====

w 儲存

w! 強制儲存,即使是唯讀檔案,只要使用者的許可權夠,就可以儲存

q 退出vi,如果檔案已經改變且尚未儲存則報錯;

q! 取消修改,並退出vi

wq 儲存並退出

wq! 強制儲存並退出

---

w b.txt

當前文件另存為b.txt

---

r c.txt

將c.txt的內容加入到 當前文件中 游標處,

---

set nu

顯示行號

set nonu

取消行號

---

set ai

自動縮排

set noai

不自動縮排

---

set list

顯示 tab 和 行尾 字元, tab 用 ^i 表示,行尾用 $ 表示,

set nolist

不顯示 tab 和 行尾 字元,

---

set tablestop=x

設定 tab 的大小,

---

set all

檢視 當前設定

---

help [command]

顯示幫助,用 :q 退出幫助

---

n 切換到下個檔案

e# 切換到上個檔案

---

[a,b|% ]s/xx/yy[/gic]

將 xx 替換為 yy,

a b 分別指定 起始 和 結尾 行號,如果未指定則預設對當前行起作用, . 表示當前行, $ 表示末行, % 表示所有行

g 表示替換所有的匹配,如果 未指定 g 則僅替換每行中的第1個匹配,

i 表示忽略大小寫,如果 未指定 i 則大小寫敏感,

c 表示是否對每次替換進行確認,如果指定 c,則每個匹配的替換要確認,輸入 y 或 n 確認,

支援萬用字元,特殊字元要用 \ 轉義,如 \. ,

例子:

s/xx/yy

將當前行中 第1個 xx 替換為 yy

10,$ s/xx/yy

從第10行 到末尾,將每行中 第1個 xx 替換為 yy

% s/xx/yy/g

所有行中 所有的 xx 替換為 yy

% s/\./y/g

所有行中 所有的 . 替換為 y

% s/\ \+/\ /g

替換所有的連續空格為1個空格,

% s/test/abcdef/gi

替換所有 test(不區分大小寫),

% s/test/abcdef/gc

替換所有 test,每次替換都要求確認,

*****====

一般模式 ---> 搜尋模式

*****====

/ 向下搜尋

? 向上搜尋

n 下一處

shift+n

上一處---

Linux VI常用命令

進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi pattern filename 開啟檔案,並將游標置於第乙個與pattern匹配的串處 vi r...

linux vi 常用命令

vi編輯器中有三種狀態模式 1.命令列模式 2.輸入模式 3.末行模式 三種模式間的相互轉換 vi編輯器的啟動與退出 直接進入編輯環境 vi 進入編輯環境並開啟 新建 檔案 vi myfile 退出vi編輯環境 輸入末行命令放棄對檔案的修改,並退出編輯器 q 檔案儲存與另存為 儲存檔案 儲存對vi編...

linux vi 常用命令

一般模式 移動游標的方法 n游標向後移動n個距離 0 游標移動這一行的最前的字元 游標移動這一行的最後的字元 h 游標移動到這個螢幕的最上方那一行 m 游標移動到這個螢幕的最 那一行 l 游標移動到這個螢幕的最下方那一行 g 游標移動到這個檔案的最後那一行 gg 游標移動到這個檔案的第一行 n游標向...