20190403vim编辑器week1_day3
vi編輯器
作用:編輯文本文件中的內(nèi)容的工具
命令歷史
末行模式中,以:和/開(kāi)頭的命令都有歷史紀(jì)錄,可以首先鍵入:或/然后按上下箭頭來(lái)選擇某個(gè)歷史命令。
啟動(dòng)vim
在命令行窗口中輸入以下命令即可
vim 直接啟動(dòng)vim
vim filename 打開(kāi)vim并創(chuàng)建名為filename的文件
vim的模式
vi的工作模式
命令模式:僅僅可以查看內(nèi)容,但是不能進(jìn)行修改(默認(rèn))
輸入模式:可以對(duì)文件中的內(nèi)容進(jìn)行修改
末行模式:此模式可以執(zhí)行一些命令
vi打開(kāi)文件
vi打開(kāi)文件
vi?文件名
注意:
1. vi打開(kāi)文件,如果發(fā)現(xiàn)文件是空的,那么說(shuō)明你所打開(kāi)的文件是不存在的
2.?也就是vi既可以打開(kāi)現(xiàn)有的文件,也可以創(chuàng)建新文件,只是所創(chuàng)建的新文件內(nèi)容是空白的
3. vi有增強(qiáng)版本,稱(chēng)之為vim(建議用vim)
4. vi是用來(lái)編輯文本文件的,不能用來(lái)打開(kāi)目錄
?
情況1:從命令模式到輸入模式
i:在光標(biāo)所在位置的前插入內(nèi)容
I:將光標(biāo)移到到行首,然后進(jìn)入輸入模式
a:將光標(biāo)向后移到一位,然后進(jìn)行插入模式(輸入的內(nèi)容會(huì)在光標(biāo)原始位置的后一位。
A:在當(dāng)前行尾插入
o:在光標(biāo)所在行的下面新開(kāi)一行,然后進(jìn)入輸入模式
O:在光標(biāo)所在行的開(kāi)面新開(kāi)一行,然后進(jìn)入輸入模式
命令模式下的常用操作
第一類(lèi)操作:復(fù)制、移動(dòng)刪除文件內(nèi)容
yy:復(fù)制光標(biāo)所在的行
nyy:復(fù)制光標(biāo)所在的行開(kāi)始向下的N行
dd:剪切光標(biāo)所在的行
ndd:剪切光標(biāo)所在的行開(kāi)始向下的N行
p(小):粘貼到光標(biāo)所在行的下面
P(大):粘貼到光標(biāo)所在行的上面
D:刪除光標(biāo)所在位置到行尾的內(nèi)容
dG:刪除光標(biāo)所在的行到末尾全部的行
?home跳轉(zhuǎn)到行首
end跳轉(zhuǎn)到行位
pgup上翻一頁(yè)
pgdn下翻一頁(yè)
?
第二類(lèi)操作:撤銷(xiāo)和重復(fù)執(zhí)行的相關(guān)操作
u:撤銷(xiāo)上次所指向的操作(相當(dāng)于windows中ctrl+z)
nu:撤銷(xiāo)n次操作(n的值最大是50)
ctrl+r:撤銷(xiāo)剛剛所撤銷(xiāo)的那個(gè)操作(相當(dāng)于windows中ctrl+y)
?
:重復(fù)執(zhí)行上一次所做的操作
?
第三類(lèi)操作:跳轉(zhuǎn)相關(guān)的操作
nG:跳轉(zhuǎn)到第n行
G:直接跳轉(zhuǎn)到最后一行
?
0:跳轉(zhuǎn)到行首(會(huì)認(rèn)為空格也是內(nèi)容,此時(shí)會(huì)跳轉(zhuǎn)到空格的最前面)
^:跳轉(zhuǎn)到行首(不認(rèn)為空格是內(nèi)容,此時(shí)會(huì)跳轉(zhuǎn)到第一個(gè)非空字符)
$:跳轉(zhuǎn)到行尾
?
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏
?
第四類(lèi)操作:替換相關(guān)操作
r:替換一個(gè)字符(替換完成之后,自動(dòng)返回到編輯模式)
R:進(jìn)入替換模式(要想退出替換模式,按esc)
?
?
第五類(lèi)操作:查找
/string:在文件中搜索指定的字符串
n:正向查找
N:反向查找
?
情況2:從輸入模式到命令模式
esc
?
?
?
情況3:從編輯模式到末行模式
?
進(jìn)入末行模式的方式:在編輯模式下按shift+:
?
末行模式下的常用操作
第一類(lèi)命令:行號(hào)
set nu:顯示行號(hào)
set nonu:關(guān)閉行號(hào)
?
第二類(lèi)命令:跳轉(zhuǎn)
num:直接跳轉(zhuǎn)到第num行
$:直接跳轉(zhuǎn)到最后一行
?
第三類(lèi)命令:取消匹配到的內(nèi)容的高亮
nohl
?
第四類(lèi)命令:替換
start,end s/原始內(nèi)容/替換內(nèi)容/g
(分隔符不一定是/,只要是三個(gè)相同的符號(hào)即可)
?
?
注意:
如果不用g,那么僅僅會(huì)替換每行的第一個(gè)找到的對(duì)象
如果使用g,那么會(huì)將范圍內(nèi)所有找到的對(duì)象全部做替換
?
例子:將54到56之間的echo替換為bajie
:54,56 s/echo/bajie/g
?
例子:將文件中全部的echo替換為bajie
:1,$ s/echo/bajie/g
或
:% s/echo/bajie/g
?
例子:將文件的50-100行行首添加一個(gè)#
: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行的末尾添加一個(gè)#
:1,5 s/$/#/g
?
例子:將文件中全部的/替換為+
:% s@/@+@g
?
補(bǔ)充1:
^:表示行首
$:表示行位
?
?
第五類(lèi)命令:保存和退出
w:執(zhí)行保存操作(保存到原始文件中)
w /path/to/file:實(shí)現(xiàn)文件另存為
q:退出
!:強(qiáng)制執(zhí)行操作
?
第六類(lèi)命令:高級(jí)操作
!命令:在vi中直接執(zhí)行命令
r /path/to/file:將file中的內(nèi)容導(dǎo)入到當(dāng)前文件中
set tabstop=4:將tab縮進(jìn)的字符數(shù)設(shè)置為4個(gè)
set ai:設(shè)置自動(dòng)縮進(jìn)
set noai:取消自動(dòng)縮進(jìn)
?
第七類(lèi)命令:復(fù)制、移動(dòng)、刪除多行的操作
start,end d:刪除多行
start,end m dest:將多行移動(dòng)到指定行的下面
start,end co dest:將多個(gè)復(fù)制到指定行的下面
?
例子:將59到198之間的內(nèi)容復(fù)制到233行的下面
59,198 co 233
?
分屏操作
vim -o file1 file2:實(shí)現(xiàn)水平分屏
vim -O file1 file2:?實(shí)現(xiàn)垂直分屏
ctrl+w:切換到另一個(gè)分屏
?
?
打開(kāi)文件的小技巧
vim +num file:打開(kāi)文件的時(shí)候,自動(dòng)跳轉(zhuǎn)到第num行(加號(hào)不可省略)
vim + file:打開(kāi)文件的時(shí)候,自動(dòng)跳轉(zhuǎn)到最后一行
?
?
vi的配置文件
/etc/vimrc:全局配置文件,在這個(gè)文件中做的配置,會(huì)對(duì)所有用戶(hù)生效
~/.vimrc:(默認(rèn)不存在,需要自己手動(dòng)創(chuàng)建)用戶(hù)配置文件,僅僅對(duì)當(dāng)前用戶(hù)生效
?
1.?編輯vi的配置文件,實(shí)現(xiàn)可以自動(dòng)顯示行號(hào)、縮進(jìn)4個(gè)字符、自動(dòng)對(duì)齊
# vi ~/.vimrc
:set nu
:set ai
:set tabstop=4
?
vi崩潰緩存機(jī)制
用vim編輯一個(gè)文件的是,如果文件沒(méi)有正常的關(guān)閉(wq、q、q!),那么就會(huì)生成一個(gè)崩潰緩存文件
?
?
崩潰緩存文件的和作用
1.?緩存文件是隱藏文件
2.?緩存文件基本格式是?.file.swp
3.?緩存文件的作用是用于在系統(tǒng)意外關(guān)機(jī)的情況下,恢復(fù)文件中的內(nèi)容(修改了文件內(nèi)容,意外關(guān)掉終端或者系統(tǒng))
4.?緩存文件的使用方式
第一步:# vim -r .file.swp
第二步:保存退出
第三步:刪除緩存文件
?
?
注意:
1.?如果文件發(fā)生了修改,那么無(wú)法直接退出
2.?如果要退出一個(gè)修改了的文件,有三種方式
方式1:先執(zhí)行保存(w),然后執(zhí)行退出(q)
方式2:直接保存并退出(wq)
方式3:不保存,并強(qiáng)制執(zhí)行退出操作(q!)
?
補(bǔ)充:
1.?創(chuàng)建空白文件的方式有兩種touch、vi\vim
2. linux中,文件的后綴對(duì)于文件的屬性沒(méi)有任何影響,文件的屬性只和創(chuàng)建文件的時(shí)候所執(zhí)行的命令有關(guān)
3. linux中無(wú)論是命令還是文件名,都嚴(yán)格區(qū)分大小寫(xiě)
練習(xí)
?
轉(zhuǎn)載于:https://www.cnblogs.com/liu-hua/p/10647649.html
總結(jié)
以上是生活随笔為你收集整理的20190403vim编辑器week1_day3的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: UOJ#449. 【集训队作业2018】
- 下一篇: Linux定时检测内存,若使用率超过指标