vi編輯器
作用:編輯文本文件中的內容的工具
命令歷史
末行模式中,以:和/開頭的命令都有歷史紀錄,可以首先鍵入:或/然后按上下箭頭來選擇某個歷史命令。
啟動vim
在命令行窗口中輸入以下命令即可
vim 直接啟動vim
vim filename 打開vim並創建名為filename的文
vim的模式
vi的工作模式
命令模式:僅僅可以查看內容,但是不能進行修改(默認)
輸入模式:可以對文件中的內容進行修改
末行模式:此模式可以執行一些命令
vi打開文件
vi打開文件
vi 文件名
注意:
1. vi打開文件,如果發現文件是空的,那么說明你所打開的文件是不存在的
2. 也就是vi既可以打開現有的文件,也可以創建新文件,只是所創建的新文件內容是空白的
3. vi有增強版本,稱之為vim(建議用vim)
4. vi是用來編輯文本文件的,不能用來打開目錄
情況1:從命令模式到輸入模式
i:在光標所在位置的前插入內容
I:將光標移到到行首,然后進入輸入模式
a:將光標向后移到一位,然后進行插入模式(輸入的內容會在光標原始位置的后一位。
A:在當前行尾插入
o:在光標所在行的下面新開一行,然后進入輸入模式
O:在光標所在行的開面新開一行,然后進入輸入模式
命令模式下的常用操作
第一類操作:復制、移動刪除文件內容
yy:復制光標所在的行
nyy:復制光標所在的行開始向下的N行
dd:剪切光標所在的行
ndd:剪切光標所在的行開始向下的N行
p(小):粘貼到光標所在行的下面
P(大):粘貼到光標所在行的上面
D:刪除光標所在位置到行尾的內容
dG:刪除光標所在的行到末尾全部的行
第二類操作:撤銷和重復執行的相關操作
u:撤銷上次所指向的操作(相當於windows中ctrl+z)
nu:撤銷n次操作(n的值最大是50)
ctrl+r:撤銷剛剛所撤銷的那個操作(相當於windows中ctrl+y)
.:重復執行上一次所做的操作
第三類操作:跳轉相關的操作
nG:跳轉到第n行
G:直接跳轉到最后一行
0:跳轉到行首(會認為空格也是內容,此時會跳轉到空格的最前面)
^:跳轉到行首(不認為空格是內容,此時會跳轉到第一個非空字符)
$:跳轉到行尾
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏
第四類操作:替換相關操作
r:替換一個字符(替換完成之后,自動返回到編輯模式)
R:進入替換模式(要想退出替換模式,按esc)
第五類操作:查找
/string:在文件中搜索指定的字符串
n:正向查找
N:反向查找
情況2:從輸入模式到命令模式
esc
情況3:從編輯模式到末行模式
進入末行模式的方式:在編輯模式下按shift+:
末行模式下的常用操作
第一類命令:行號
set nu:顯示行號
set nonu:關閉行號
第二類命令:跳轉
num:直接跳轉到第num行
$:直接跳轉到最后一行
第三類命令:取消匹配到的內容的高亮
nohl
第四類命令:替換
start,end s/原始內容/替換內容/g
(分隔符不一定是/,只要是三個相同的符號即可)
注意:
如果不用g,那么僅僅會替換每行的第一個找到的對象
如果使用g,那么會將范圍內所有找到的對象全部做替換
例子:將54到56之間的echo替換為bajie
:54,56 s/echo/bajie/g
例子:將文件中全部的echo替換為bajie
:1,$ s/echo/bajie/g
或
:% s/echo/bajie/g
例子:將文件的50-100行行首添加一個#
:50,100 s/^/#/g
例子:1-5行首添加空格
:1,5 s/^/ /g
例子:將全部行首的空格刪除
:1,$ s/^ //g
例子:將全部行首的#刪除
:1,$ s/^#//g
例子:將1-5行中的a刪除
:1,5 s/a//g
例子:在1-5行的末尾添加一個#
:1,5 s/$/#/g
例子:將文件中全部的/替換為+
:% s@/@+@g
補充1:
^:表示行首
$:表示行位
第五類命令:保存和退出
w:執行保存操作(保存到原始文件中)
w /path/to/file:實現文件另存為
q:退出
!:強制執行操作
第六類命令:高級操作
!命令:在vi中直接執行命令
r /path/to/file:將file中的內容導入到當前文件中
set tabstop=4:將tab縮進的字符數設置為4個
set ai:設置自動縮進
set noai:取消自動縮進
第七類命令:復制、移動、刪除多行的操作
start,end d:刪除多行
start,end m dest:將多行移動到指定行的下面
start,end co dest:將多個復制到指定行的下面
例子:將59到198之間的內容復制到233行的下面
59,198 co 233
分屏操作
vim -o file1 file2:實現水平分屏
vim -O file1 file2: 實現垂直分屏
ctrl+w:切換到另一個分屏
打開文件的小技巧
vim +num file:打開文件的時候,自動跳轉到第num行(加號不可省略)
vim + file:打開文件的時候,自動跳轉到最后一行
vi的配置文件
/etc/vimrc:全局配置文件,在這個文件中做的配置,會對所有用戶生效
~/.vimrc:(默認不存在,需要自己手動創建)用戶配置文件,僅僅對當前用戶生效
1. 編輯vi的配置文件,實現可以自動顯示行號、縮進4個字符、自動對齊
# vi ~/.vimrc
:set nu
:set ai
:set tabstop=4
vi崩潰緩存機制
用vim編輯一個文件的是,如果文件沒有正常的關閉(wq、q、q!),那么就會生成一個崩潰緩存文件
崩潰緩存文件的和作用
1. 緩存文件是隱藏文件
2. 緩存文件基本格式是 .file.swp
3. 緩存文件的作用是用於在系統意外關機的情況下,恢復文件中的內容(修改了文件內容,意外關掉終端或者系統)
4. 緩存文件的使用方式
第一步:# vim -r .file.swp
第二步:保存退出
第三步:刪除緩存文件
注意:
1. 如果文件發生了修改,那么無法直接退出
2. 如果要退出一個修改了的文件,有三種方式
方式1:先執行保存(w),然后執行退出(q)
方式2:直接保存並退出(wq)
方式3:不保存,並強制執行退出操作(q!)
練習
先執行如下命令
cd /tmp
cp /etc/rc.d/rc.local ./
然后用vim打開這個文件
然后在這個文件第三行寫上自己的名字
然后返回到命令模式
先執行命令
cd /tmp
cp /etc/init.d/functions ./
1.然后用vim打開文件
2.然后將第一行移動到第五行
3.將第8行以后的全面行都刪除
4.將第一行到底7行的內容復制一次,粘貼到第7行下面
5.然后還原第七行中的內容
6.保存退出
先執行命令
cd /tmp
cp /etc/init.d/functions ./
1.然后用vim打開文件
2.跳轉到第443行
3.跳轉到最后一行
4.向上翻1屏
5.將664行中settings中的i替換為大寫
6.跳轉到第2行
7.將第3行以后的全部內容都刪除
6.保存退出
先執行命令
cd /tmp
cp /etc/init.d/functions ./
1. 然后用vim打開文件,並顯示行號
2. 在文件每行的末尾添加上 -自己姓名
3. 將文件的最后10行的行首添上#
4. 將以#開頭的行的行首添加 newline
5. 取消行號、取消文件內容的高亮
6. 保存文件
7. 不保存強制退出
#######################
2. 用vim在tmp創建一個文件file,寫入如下內容
# my info
my name is liuqi
your name is wukong#
we are going to xi tian#
my email is 161@qq.com
password is in /etc/passwd
over.
3. 將第2行到第6行的內容復制到第7行的下面,復制5次
4. 將在文件中查找單詞 my
5. 執行一次保存操作
5. 將第7行到末行的首部添加一個#
5. 將文件中的/替換為=
6. 將 # my info 移動到 .over 的下面
7. 跳轉到末行,再跳轉到首行
8. 保存並退出
######################################
補充:
1. 創建空白文件的方式有兩種touch、vi\vim
2. linux中,文件的后綴對於文件的屬性沒有任何影響,文件的屬性只和創建文件的時候所執行的命令有關
3. linux中無論是命令還是文件名,都嚴格區分大小寫