***************===
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
上一處---
vi常用命令
1.在進行編寫 時,在格式對起上很有用 第一行,vim使用自動對起,也就是把當前行的對起格式應用到下一行 第二行,依據上面的對起格式,智慧型的選擇對起方式,對於類似c語言編寫上很有用 set autoindent set smartindent c語言對齊方式,最好用它 set cindent 2....
vi常用命令
一 vi的三種模式 3 命令列模式 從一般模式按下 時進入命令列模式。注意 編輯模式和命令列模式不能互相切換,只能通過一般模式切換。二 三種模式常用按鍵說明 1 一般模式下的可用按鈕 最常用的 移動游標 移動游標 上下左右鍵 螢幕向上翻頁 pageup或者ctrl b 螢幕向下翻頁 pagedown...
vi常用命令
a 一般模式 vi 處理檔案時,一進入該檔案,就是一般模式了.b 編輯模式 在一般模式下可以進行刪除,複製,貼上等操作,卻無法進行編輯操作。等按下 i,i,o,o,a,a,r,r 等 字母之後才能進入編輯模式.通常在linux中,按下上述字母時,左下方會出現 insert 或者 replace 字樣...