***************===
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游標向...