day07-文件編輯VIM
1.什么是VIM
vim就像windows的記事本或Word文件媒至,都是用來編輯文件的坎弯。
2.VI與VIM有什么區(qū)別
VIM就是VI的增強版桂肌,vi沒有語法檢查狰闪,語法高亮而vim有
3.如何使用VIM vim的四種模式
小結(jié):vim編輯打開文件整體流程如下
1宪肖、默認(rèn)打開文件處于普通模式
2表制、從普通模式切換至編輯模式需要使用a ,i ,o? A , I,O
3、編輯模式修改完畢后需要先使用ESC鍵返回普通模式
4控乾、在普通模式輸入“:”或“/”進(jìn)入命令模式么介,可實現(xiàn)的保存與退出
PS:在vim中,無法直接從編輯模式切換到命令模式蜕衡。
vim 普通模式
1.命令光標(biāo)跳轉(zhuǎn)
? ? ? G ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 光標(biāo)跳轉(zhuǎn)至文件末端
? ? ? gg ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 光標(biāo)跳轉(zhuǎn)至文件頂端
? ? ? Ngg ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 光標(biāo)跳轉(zhuǎn)至當(dāng)前文件內(nèi)的N行
? ? ? $ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 光標(biāo)跳轉(zhuǎn)至當(dāng)前光標(biāo)所在行的尾部
? ? ? ^|0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 光標(biāo)跳轉(zhuǎn)至當(dāng)前光標(biāo)所在行的首部
2.文件內(nèi)容較多
? ? ctrl + f ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 往下翻頁(行比較多)
? ? ctrl + b ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 往上翻頁
3.復(fù)制與粘貼? yy? p
? ? ?? yy ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 復(fù)制當(dāng)前所在的行
? ?? 5yy ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 復(fù)制當(dāng)前光標(biāo)以及光標(biāo)向下4行
? ? ? p(小寫) ? ? ? ? ? ? ? ? ? ?? 粘貼至當(dāng)前光標(biāo)下一行
? ? ? P(大寫) ? ? ? ? ? ? ? ? ? ?? 粘貼至當(dāng)前光標(biāo)上一行
4.刪除 壤短、剪貼、撤銷
? ? ? ? dd ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 刪除當(dāng)前光標(biāo)所在的行
? ? ?? 4dd ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 刪除當(dāng)前光標(biāo)所在的行以及往下的3行
? ? ? ? dG ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 刪除當(dāng)前光標(biāo)以后的所有行
? ? ? ? D ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 刪除當(dāng)前光標(biāo)及光標(biāo)以后的內(nèi)容
? ? ? ? x ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 刪除當(dāng)前光標(biāo)行往后的字符? ? ? ? ? ? ? ? ?
? ? ? ? u ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 撤銷上一次的操作
? ? dd &? p ? ? ? ? ? ? ? ? ? ? ? ?? 剪切衷咽、先刪除dd(number? ? dd)鸽扁,后粘貼p
5.替換
? ? ? ? ? r ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 替換當(dāng)前光標(biāo)標(biāo)記的單個字符
vim 編輯模式
編輯模式(從普通模式進(jìn)入到編輯模式)
? ? i? ? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)入編輯模式,光標(biāo)不做任何操作
? ? a ? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)入編輯模式镶骗,將當(dāng)前光標(biāo)往后一位
? ? o ? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)入編輯模式桶现,并在當(dāng)前光標(biāo)下添加一行空白內(nèi)容
? ? I? ? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)入編輯模式,并且光標(biāo)跳轉(zhuǎn)至本行的頭部
? ? A ? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)入編輯模式鼎姊,將光標(biāo)移動至本行的尾部
? ? O? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)入編輯模式骡和,并在當(dāng)前光標(biāo)上添加一行空白內(nèi)容
vim命令模式
1.文件保存與退出
? ? :w? ? ? ? ? ? ? ? ? ? ? ? ? ? 保存當(dāng)前狀態(tài)
? ? :q ? ? ? ? ? ? ? ? ? ? ? ? ? ? 退出當(dāng)前文件(文件必須保存才能退出)
? :wq ? ? ? ? ? ? ? ? ? ? ? ? ?? 先保存,后退出
? ? :w! ? ? ? ? ? ? ? ? ? ? ? ? ? 強制保存當(dāng)前狀態(tài)
? ? :q! ? ? ? ? ? ? ? ? ? ? ? ? ?? 強制退出文件不會修改當(dāng)前內(nèi)容
? ? :wq! ? ? ? ? ? ? ? ? ? ? ? ?? 強制保存并退出
? ? 文件保存 ? ? ? :wq保存并退 ? ? ? ? ? ?? :wq! 強制保存并退出
2.文件內(nèi)容查找
? ? /str? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 需要搜索的內(nèi)容
? ? ? n ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 搜索到的內(nèi)容依次往下查找
? ? ? N ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 搜索到的內(nèi)容依次往上查找
3.文件內(nèi)容替換
? ? ? :1,5#sbin#test#g? ? ? 替換1-5行中包括sbin的內(nèi)容test
? ? ? :s#sbin#test#g ? ? ? ? 全部替換文件中包含 sbin的替換為 test
4文件內(nèi)容另存為
? ? ? :w? 目標(biāo)位置? ? ? ? ? ? ? ? 將內(nèi)容另存為#位置#文件中
vim實圖模式
? ? ? 視圖模式(從普通模式進(jìn)入視圖模式)相寇,主要進(jìn)行批量操作
? ? ? ? ctrl+v 進(jìn)入可視塊模式慰于,選中需要注釋的行 ??
? ? ? ? ? ?? 1.插入:按shift+i進(jìn)入編輯模式,輸入#,結(jié)束按ESC鍵 ? ? ? ? ? ? ? ?
? ? ? ? ? ?? 2.刪除:選中內(nèi)容后,按d鍵刪除 ? ? ? ? ? ? ??
? ? ? ? ? ?? 3.替換:選中需要替換的內(nèi)容, 按下r鍵,然后輸入替換后的內(nèi)容
? ? ? ? shift+v 進(jìn)入可視行模式唤衫,選中整行內(nèi)容 ? ? ? ? ? ? ? ??
? ? ? ? ? ?? 1.復(fù)制:選中行內(nèi)容后按y鍵及可復(fù)制婆赠。 ? ? ? ? ? ? ? ??
? ? ? ? ? ?? 2.刪除:選中行內(nèi)容后按d鍵刪除。
vim 知識
1.環(huán)境變量臨時生效
? ? ? ? :set nu ??????#顯示行號 ? ? ??
? ? ? ? :set ic ??????#忽略大小寫, 在搜索的時候有用 ? ? ? ? ?
? ? ? ? :set ai ??????#自動縮進(jìn) ? ? ? ? ?
? ? ? ? :set list ?????#顯示制表符(空行佳励、tab鍵) ? ? ? ? ?
? ? ? ? :set no[nu|ic|ai…] ?#取消臨時設(shè)定的變量
2.環(huán)境變量永久生效休里。~/.vimrc 個人環(huán)境變量(優(yōu)先級高) /etc/vimrc 全局環(huán)境變量
? ? ? vim ~/.vimrc #當(dāng)下次再打開文件自動顯示行號并忽略大小寫 ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ?? set nu? ? ? ? ? ? ? set ic
? ? ? 如果個人vim環(huán)境沒有配置, 則使用全局vim環(huán)境變量配置蛆挫。
? ? ? 如果個人vim環(huán)境和全局環(huán)境變量產(chǎn)生沖突, 優(yōu)先使用個人vim環(huán)境變量。
3.如何同時編輯多個文件
? ? ? vim -o file1 file2 ?#水平分割? ? ? vim -O file1 file2 ?#垂直分割
? ? ? ctrl+ww 文件間切換
4.相同文件之間差異對比妙黍,通常用于對比修改前后差異
? ? ? ? ? diff ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文件對比
? ? ? ? ? vimdiff ?? ? 以vim方式打開兩個文件對比悴侵,高亮顯示不同的內(nèi)容
5.如果VIM非正常退出 (ctrl+z)掛起或強制退出終端沒關(guān)閉VIM后
? ? ? ? ? ? rm -f .filename.swp?