20190403vim编辑器week1_day3
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:刪除光標所在的行到末尾全部的行
?home跳轉到行首
end跳轉到行位
pgup上翻一頁
pgdn下翻一頁
?
第二類操作:撤銷和重復執行的相關操作
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!)
?
補充:
1.?創建空白文件的方式有兩種touch、vi\vim
2. linux中,文件的后綴對于文件的屬性沒有任何影響,文件的屬性只和創建文件的時候所執行的命令有關
3. linux中無論是命令還是文件名,都嚴格區分大小寫
練習
?
轉載于:https://www.cnblogs.com/liu-hua/p/10647649.html
總結
以上是生活随笔為你收集整理的20190403vim编辑器week1_day3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UOJ#449. 【集训队作业2018】
- 下一篇: sql语句优化(二)