請詳細總結vim編輯器的使用
vim 模式化的編輯器
vim的三種模式:1.編輯模式(命令模式)
2.輸入模式
3.末行模式 內置的命令行接口
編輯模式 –> 輸入模式
i:insert 在光標所在處插入
I:在光標所在行的行首插入
a: append 在光標所在處之后輸入
A: 在光標所在行的行尾插入
o:在光標所在處下方打開的一個新行
O:在光標所在處上方打開的一個新行
編輯模式 –> 末行模式:
輸入 `:`
末行模式 –> 編輯模式
直接按 `ESC` 鍵即可
<h3>文件操作</h3>
接著是如何打開文件和關閉文件。
打開文件的語法是 `vim [options][file…]`。在打開文件時,利用某些選項,還可以讓光標處于特定的位置,例如:
+# 打開文件后,直接將光標處于第 # 行行首
+/PATTERN 打開文件后,直接將光標處于第一個被 PATTERN 匹配到的行的行首
+ 打開文件后,直接將光標處于行尾
關閉文件的相關命令有:
ZZ :保存并退出
:q 退出
:q! 強制退出,不保存此前的編輯操作
:wq 保存并退出
:w /PATH/TO/SOMEFILE 另存到文件
vim 支持在某個命令的前面添加數字來達到多次執行的目的。
字符間跳轉:
h 左 j 下 k 上 l 右
單詞間跳轉
w 跳到下一個單詞的詞首
b 當前或前一個單詞的詞首
e 當前或后一個單詞的詞尾
行首行尾跳轉
^ 跳轉至行首的第一個非空白字符
0 跳轉至行首
$ 跳轉至行尾
行間跳轉
#G 跳轉至由數字 # 指定的行
1G,gg 跳轉至第一行
G 跳轉至最后一行
句間跳轉
) 跳到后一句
( 跳到前一句
段間跳轉
} 跳到前一段
{ 跳到后一段
翻屏:
Ctrl+f 向文件尾部翻一屏
Ctrl+b 向文件首部翻一屏
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
Enter 按行向后翻
<h3>編輯命令</h3>
接下來是與編輯命令相關的介紹。
字符編輯:
x 刪除光標所在處的字符
#x 刪除光標所在處起始的 # 個字符
xp 交換光標所在處的字符及其后面的字符的位置
替換命令 replace
r 替換光標所在處的字符 rCHAR
刪除命令
d 刪除命令,可結合光標跳轉字符,實現范圍刪除
d$
d^
dw
de
db
dd 刪除光標所在處的行
#dd
粘貼命令
p 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則粘貼至當前光標所在處的后面
P 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則粘貼至當前光標所在處的前面
復制命令 yank
y 復制,工作方式與 d 命令類似
改變命令 change
編輯模式 –> 輸入模式,實現刪除操作
可視化模式
v 按字符選定
V 按行選定
結合編輯命令使用:d,c,y,p
撤銷操作 undo
u 撤銷此前的操作
#u 撤銷此前的 # 次操作
撤銷此前的撤銷
Ctrl+r
重復執行前一個編輯操作
.
<h3>查找和替換操作</h3>
(1) 地址定界 :start_pos[,end_pos]
# 特定的第 # 行
. 當前行
$ 最后一行
#,# 指定行范圍
#,+# 指定行范圍,相對初始位置
% 表示全文
/pattern/ 從光標所在處開始向后尋找,第一次被模式所匹配到的行
/parrern1/,/pattern2/
可同編輯命令一同使用,實現編輯操作
d,y,c
w /PATH/TO/SOMEFILE 將范圍內的文本保存至指定的文件中
r /PATH/OF/SOMEFILE 將指定文件中的文本讀取并插入至指定位置
(2) 查找
/PATTERN 從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串
?PATTERN 從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串
n 下一個,與命令方向相同
N 上一個,與命令方向相反
(3) 查找替換
s 末行模式的命令;使用格式
s/查找內容/替換內容/修飾符
查找內容:可使用正則表達式
替換內容:不能使用正則表達式,可引用
如果 查找內容 部分在模式中使用分組符號,在 替換內容中使用后向引用
直接引用查找模式匹配到的全部文本,使用 & 符號
修飾符:
i 忽略大小寫
g 全局替換,意味著一行中如果匹配到多次,則均替換;
## 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;
命令:
cp /etc/rc.d/rc.sysinit /tmp
vim /tmp/rc.sysinit
:%s@^[[:space:]]\+@#\1@g
## 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;
命令:
cp /boot/grub/grub.conf /tmp
vim /tmp/grub.conf
:%s@^[[:space:]]\+@@g
## 3、刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符
命令:
vim /tmp/rc.sysinit
:%s@^#[[:space:]]@@g
## 4、為/tmp/grub.conf文件中前三行的行首加#號;
命令:
vim /tmp/grub.conf
:1,3s@^@#\1@g
## 5、將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1;
命令:
vim /etc/yum.repos.d/CentOS-Media.repo
:%s@\(enabled\|gpgcheck\)=0@\1=1@g
## 6、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202
命令:
crontab -e
0 */4 * * * cp -a /etc /backup/etc-$(date +%Y%m%d%H%M
)
## 7、每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402
命令:
crontab -e
0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)
## 8、每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中
命令:
crontab -e
0 */2 * * * grep -E “^S” /proc/meninfo >> /stats/memory.txt
## 9、工作日的工作時間內,每兩小時執行一次echo “howdy”
命令:
crontab -e
0 9-18/2 * * 1-5 echo “howdy”
腳本編程練習
## 10、創建目錄/tmp/testdir-當前日期時間;
## 11、在此目錄創建100個空文件:file1-file100
## 12、顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;
vim testdir.sh
#! /bin/bash
DIR=/tmp/testdir-$(date +%Y%m%d)
mkdir $DIR
touch $DIR/file{1..100}
sed -n ‘n;p’ /etc/passwd | cut -d: -f1
編輯模式 –> 輸入模式
1. 輸入 i:insert 在光標所在處插入
2. 輸入 I:在光標所在行的行首插入
3. 輸入 a: append 在光標所在處之后輸入
4. 輸入 A: 在光標所在行的行尾插入
5. 輸入 o:在光標所在處下方打開的一個新行
6. 輸入 O:在光標所在處上方打開的一個新行
輸入模式 –> 編輯模式
直接按 `ESC` 鍵即可
編輯模式 –> 末行模式:
輸入 `:`
末行模式 –> 編輯模式
直接按 `ESC` 鍵即可
<h3>文件操作</h3>
接著是如何打開文件和關閉文件。
打開文件的語法是 `vim [options][file…]`。在打開文件時,利用某些選項,還可以讓光標處于特定的位置,例如:
+# 打開文件后,直接將光標處于第 # 行行首
+/PATTERN 打開文件后,直接將光標處于第一個被 PATTERN 匹配到的行的行首
+ 打開文件后,直接將光標處于行尾
關閉文件的相關命令有:
ZZ :保存并退出
:q 退出
:q! 強制退出,不保存此前的編輯操作
:wq = :w,:q 保存并退出
保存并退出
:w /PATH/TO/SOMEFILE 另存到文件
<h3>光標的跳轉</h3>
vim 支持在某個命令的前面添加數字來達到多次執行的目的。
字符間跳轉:
h 左 j 下 k 上 l 右
單詞間跳轉
w 跳到下一個單詞的詞首
b 當前或前一個單詞的詞首
e 當前或后一個單詞的詞尾
行首行尾跳轉
^ 跳轉至行首的第一個非空白字符
0 跳轉至行首
$ 跳轉至行尾
行間跳轉
#G 跳轉至由數字 # 指定的行
1G,gg 跳轉至第一行
G 跳轉至最后一行
句間跳轉
) 跳到后一句
( 跳到前一句
段間跳轉
} 跳到前一段
{ 跳到后一段
翻屏:
Ctrl+f 向文件尾部翻一屏
Ctrl+b 向文件首部翻一屏
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
Enter 按行向后翻
<h3>編輯命令</h3>
接下來是與編輯命令相關的介紹。
字符編輯:
x 刪除光標所在處的字符
#x 刪除光標所在處起始的 # 個字符
xp 交換光標所在處的字符及其后面的字符的位置
替換命令 replace
r 替換光標所在處的字符 rCHAR
刪除命令
d 刪除命令,可結合光標跳轉字符,實現范圍刪除
d$
d^
dw
de
db
dd 刪除光標所在處的行
#dd
粘貼命令
p 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則粘貼至當前光標所在處的后面
P 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則粘貼至當前光標所在處的前面
復制命令 yank
y 復制,工作方式與 d 命令類似
改變命令 change
編輯模式 –> 輸入模式,實現刪除操作
可視化模式
v 按字符選定
V 按行選定
結合編輯命令使用:d,c,y,p
撤銷操作 undo
u 撤銷此前的操作
#u 撤銷此前的 # 次操作
撤銷此前的撤銷
Ctrl+r
重復執行前一個編輯操作
.
<h3>查找和替換操作</h3>
(1) 地址定界 :start_pos[,end_pos]
# 特定的第 # 行
. 當前行
$ 最后一行
#,# 指定行范圍
#,+# 指定行范圍,相對初始位置
% 表示全文
/pattern/ 從光標所在處開始向后尋找,第一次被模式所匹配到的行
/parrern1/,/pattern2/
可同編輯命令一同使用,實現編輯操作
d,y,c
w /PATH/TO/SOMEFILE 將范圍內的文本保存至指定的文件中
r /PATH/OF/SOMEFILE 將指定文件中的文本讀取并插入至指定位置
(2) 查找
/PATTERN 從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串
?PATTERN 從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串
n 下一個,與命令方向相同
N 上一個,與命令方向相反
(3) 查找替換
s 末行模式的命令;使用格式
s/查找內容/替換內容/修飾符
查找內容:可使用正則表達式
替換內容:不能使用正則表達式,可引用
如果 查找內容 部分在模式中使用分組符號,在 替換內容中使用后向引用
直接引用查找模式匹配到的全部文本,使用 & 符號
修飾符:
i 忽略大小寫
g 全局替換,意味著一行中如果匹配到多次,則均替換;
## 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;
命令:
cp /etc/rc.d/rc.sysinit /tmp
vim /tmp/rc.sysinit
:%s@^[[:space:]]\+@#\1@g
## 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;
命令:
cp /boot/grub/grub.conf /tmp
vim /tmp/grub.conf
:%s@^[[:space:]]\+@@g
## 3、刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符
命令:
vim /tmp/rc.sysinit
:%s@^#[[:space:]]@@g
## 4、為/tmp/grub.conf文件中前三行的行首加#號;
命令:
vim /tmp/grub.conf
:1,3s@^@#\1@g
## 5、將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1;
命令:
vim /etc/yum.repos.d/CentOS-Media.repo
:%s@\(enabled\|gpgcheck\)=0@\1=1@g
## 6、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202
命令:
crontab -e
0 */4 * * * cp -a /etc /backup/etc-$(date +%Y%m%d%H%M
)
## 7、每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402
命令:
crontab -e
0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)
## 8、每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中
命令:
crontab -e
0 */2 * * * grep -E “^S” /proc/meninfo >> /stats/memory.txt
## 9、工作日的工作時間內,每兩小時執行一次echo “howdy”
命令:
crontab -e
0 9-18/2 * * 1-5 echo “howdy”
腳本編程練習
## 10、創建目錄/tmp/testdir-當前日期時間;
## 11、在此目錄創建100個空文件:file1-file100
## 12、顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;
原創文章,作者:geshubo,如若轉載,請注明出處:http://www.www58058.com/71062
VIM是一款非常棒的文件編輯器,本文總結的非常到位,掌握扎實,今后將會事半功倍。