什么是vi财骨?
vi(vim) 可以說是 linux 中用得最多的工具了镐作,不管你配置服務也好,寫腳本也好隆箩,總會用到它该贾。但是,vim 作為一個 純字符 模式下的工具捌臊,它的操作和 WINDOWS 中的文本編輯工具相比多少有些復雜杨蛋。
基本概念
基本上 vi 可分為三種操作狀態(tài),分別是命令模式(Command mode)理澎、插入模式(Insert mode)和底線命令模式(Last line mode)逞力,各模式的功能區(qū)分如下:
Comand mode:控制屏幕光標的移動,字符或光標的刪除糠爬,移動復制某區(qū)段及進入Insert mode下寇荧,或者到 Last line mode。
Insert mode:唯有在 Insert mode 下秩铆,才可做文字數(shù)據(jù)輸入砚亭,按 Esc 等可回到Comand mode。
Last line mode:將儲存文件或離開編輯器殴玛,也可設置編輯環(huán)境捅膘,如尋找字符串、列出行號等滚粟。
不過可以把 vi 簡化成兩個模式寻仗,即是將 Last line mode 也算入 Command mode,把 vi 分成 Command 和 Insert mode凡壤。
基本操作
進入 vi 編輯模式
vi text.sh # 在系統(tǒng)提示符號輸入 vi 及文件名稱后署尤,即可進入 vi 全屏幕編輯畫面
編輯文件
進入 vi 之后是處于 Command mode 下,您要切換到 Insert mode 才能輸入文字亚侠。在 Command mode 下按 i曹体、a 或 o 三鍵就可進入 Insert mode。這時候您就可以開始輸入文字了硝烂。
i : 插入箕别,從目前光標所在之處插入所輸入的文字。
a : 增加滞谢,目前光標所在的下一個字開始輸入文字串稀。
o : 插入新的一行,從行首開始輸入文字狮杨。
Insert 的切換 Command mode母截,按 Esc 鍵(退出編輯狀態(tài)):
您目前處于 Insert mode,您就只能一直打字橄教。假如您發(fā)現(xiàn)打錯字了清寇,想用光標鍵往回移動喘漏,將該字刪除,就要按 ESC 鍵轉(zhuǎn)換回 Command mode颗管,再刪除文字陷遮。
多行注釋/反注釋
1.多行注釋:
Ctrl+v 進入塊級編輯模式
操作光標上下 選取被注釋區(qū)域
輸入I {大寫的i} 進入多行插入修改模式
輸入# 輸入要插入的字符
按ESC 退出多行插入模式
2.取消注釋
Ctrl+v 進入塊級編輯模式
操作光標上下 選取被注釋區(qū)域
按d刪除第一列#號
按ESC 退出多行插入模式
離開 vi 及存文件
在 Command mode 下,可按冒號 :鍵入入 Last line mode垦江,例如:
:w filename (輸入 w filename帽馋,將文章存入指定的文件名 filename)
:wq(輸入 wq,因為進入之時已經(jīng)指定文件名 testfile比吭,所以會寫入 testfile 并離開vi)
:q! (輸入 q!绽族,強制離開并放棄編輯的文件)
Command mode 功能鍵列表
移動光標
第一種方法:上下左右按鍵【好像白說了~~】
第二種方法:vi 標準按鍵:h、j衩藤、k吧慢、l,分別控制光標左赏表、下检诗、上、右移一格瓢剿。
翻頁
按Ctrl+B:屏幕往后移動一頁逢慌。[常用]
按Ctrl+F:屏幕往前移動一頁。[常用]
按Ctrl+U:屏幕往后移動半頁间狂。
按Ctrl+D:屏幕往前移動半頁攻泼。
按 0 (數(shù)字零):移動文章的開頭。[常用]
按 G:移動到文章的最后鉴象。[常用]
按 w:光標跳到下個word的開頭忙菠。[常用]
按 e:光標跳到下個word的字尾。
按 b:光標回到上個word的開頭纺弊。
按 $:移到光標所在行的行尾牛欢。[常用]
按 ^:移到該行第一個非空白的字符。
按 0:移到該行的開頭位置淆游。[常用]
按 #:移到該行的第#個位置傍睹,例:51、121稽犁。[常用]
刪除文字
x:每按一次刪除光標所在位置的后面一個字符。[超常用]
dd:刪除光標所在行骚亿。[超常用]
yy:復制光標所在行已亥。[超常用]
p:復制單行到您想粘貼之處。(指令 yy 與 p 必須搭配使用)
撤銷操作
u:假如您誤操作一個指令来屠,可以馬上按u虑椎,回復到上一個操作震鹉。[超常用]
跳至指定行
Ctrl+G:列出光標所在行的行號。例如 15G捆姜,表示移動光標至文章的第15行行首传趾。[常用]
Last line mode 下指令簡介
先按 Esc 鍵確定您已經(jīng)處于 Command mode 下后,再按冒號 : 或 / 或 ? 三鍵的其中一鍵進入 Last line mode泥技。
列出行號
set nu: 輸入 set nu 后浆兰,會在文章的每一行前面列出行號。
跳到文章的某一行
:井號代表一個數(shù)字珊豹,在 Last line mode 提示符號 : 前輸入數(shù)字簸呈,再按 Enter 就會跳到該行了,如:15[Enter] 就會跳到文章的第15行店茶。[常用]
尋找字符串
/關鍵字:先按/蜕便,再輸入您想尋找的字,如果第一次找的關鍵字不是您相盡可能的贩幻,可以一直按n會往下尋找到您要的關鍵字為止轿腺。
?關鍵字:先按 ?丛楚,再輸入您想尋找的字族壳,如果第一次找的關鍵字不是您想要的,可以按n會往前尋找到您要的關鍵字為止鸯檬。
取代字符串
1,s/string/replace/g 會將全文的 string 字符串取代為 replace 字符串决侈,其中 1,s 是相同的功能功茴,c 則是表示要替代之前必須再次確認是否取代庐冯。
1,20s/string/replace/g:將1至20行間的 string 替代為 relpace 字符串。
存文件
w:在 last line mode 提示符號 : 前按 w 即可將文件存起來坎穿。[超常用]
離開
q:按 q 就離開展父,有時如果無法離開 vi,可搭配 ! 強置離開 vi玲昧,如 q!
qw:一般建議離開時栖茉,搭配 w 一起使用,如此離開時還可存文件孵延。[常用]