vim基本用法
模式化編輯器
模式:
編輯模式: 命令模式
鍵盤操作常被理解爲編輯命令
輸入模式
末行模式: vim內置的命令接口,執行vim命令
打開文件
vim [option]... [file]...
模式轉換:
編輯模式 --> 輸入模式
i: 在光標所在處的前方轉換爲輸入模式
a: 在光標所在處的後方轉換爲輸入模式
o: 在光標所在行的下方新建一個空行並轉換爲輸入模式
I: 行首
A: 行首
O: 光標所在行的上方新建一個空白行
輸入模式 --> 編輯模式
Esc
編輯模式 --> 末行模式
:
末行模式 --> 編輯模式
ESC
退出文件:
:q! 不保存退出
:wq 保存退出
:x 保存退出
ZZ 不保存退出
編輯文本:
光標移動:
#{hjkl}: 跳#個字符
單詞間移動:
w: 下一個單詞詞首
e: 當期單詞或下一個單詞詞尾
b: 當前單詞或前一個單詞詞首
行內移動
^: 行首第一個非空白字符
0: 絕對行首
$: 絕對行尾
行間移動
#G: 直接跳至第#行
G: 最後一行
編輯命令:
x: 刪除光標所在處的字符
d: 刪除命令
結合光標跳轉字符使用,刪除光標跳轉範圍內的字符
dd: 刪除光標所在行
D: d$,刪除光標以後的字符
注意: 最後一次刪除的內容會被保存至緩存區
p: paste,粘貼
行級別:
p: 粘貼於當前行上方
P: 粘貼於當前行下方
小於行級別
p: 粘貼於當前光標所在行的後方
P: 粘貼於當前光標所在行的前方
y: yank,複製
結合光標跳轉字符使用,複製光標跳轉範圍內的字符
Y: yy
c: change, 修改
結合光標跳轉字符使用,修改跳轉範圍內的字符
先刪除,再轉換爲輸入模式
cc,C: 刪除光標所在處的整行而後轉換爲輸入
撤銷操作:
u: undo,撤銷
#u: 撤銷最近的#次操作(50)
撤銷此前的撤銷: ctrl+r
重複前一條命令: .
末行模式:
行間跳轉:
#: 指定行數
$: 最後一行
內容定界
startpos,endpos
#: 第#行
.: 當前行
$: 最後一行
%: 全文,相當於1,$
c,d,y等命令可以直接附加在地址範圍後使用
w /path/to/somefile: 將選定範圍內的內容保存至某文件中
r /path/from/sonmefile: 將指定的文件中的內容讀取到指定位置
s/查找模式/要替換成的內容/gi
%s/echo/i/gi
查找模式:可以使用正則表達式
要替換成的內容: 不能使用模式,僅能使用引用
g: global,全行替換
i: 不區分大小寫
引用匹配模式匹配到的所有內容可以用&
練習:
複製/etc/rc.d/init.d/functions至/tmp目錄
替換/tmp/functions文件中的/etc/sysconfig/init爲/var/log
:%s#/etc/sysconfig/init#/var/log#gi
練習:
1. 複製/etc/grub.conf至tmp目錄,刪除/tmp/grub.conf文件中的行首的空白字符
:%s#^[[:space:]]\{1,\}##gi
2. 複製/etc/rc.d/rc.sysinit至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#號
:%s/^\([[:space:]]\+\)/#\1/gi
:%s/^[[:space:]]\+/#&/gi
3. 刪除/tmp/rc.sysinit文件中以#號開頭,且後面跟了至少一個空白字符的行的行首的#號和空白字符
:%s@^#[[:space:]]\{1,\}@@
4. 爲/tmp/grub.conf文件的前三行的行首家#號
:1,3s@^@#@
5. 將/etc/yum.repos.d/CentOS-Media.repo文件中的enable=0和gpgcheck=0兩行最後的0改爲1
%s@\(enable\|gpgcheck\)=0@\1=1@
vim可視化模式
v: 光標走過的字符
V: 光標走過的行
文本查找:
用法同less命令
/pattern
?pattern
翻屏:
ctrl+f: 向文件尾部翻一屏
ctrl+b: 向文件首部翻一屏
ctrl+d: 向文件尾部翻半屏
ctrl+u: 向文件首部翻半屏
j: 向下走一行
k:想上走一行
多文件模式:
:next 下一個文件
:previous 前一個文件
:last 最後一個文件
:first 第一個文件
:wqall 退出保存所有
多窗口模式:
多文件
-o: 水平分割兩個窗口
-O: 垂直分割兩個窗口
ctrl+w,arrow
單文件:
ctrl+w,s: 水平分割
ctrl+w,v: 垂直分割
窗口屬性設定:
:set nu 顯示行號
:set nonu 取消顯示行號
:set ai 自動縮進
:set noai 取消自動縮進
:set ic 忽略字符大小寫
:set sm 顯示自動匹配括號
:syntax off 語法高亮關閉
配置文件:
全局: /etc/vimrc
用戶: ~/.vimrc