1. 程式人生 > >6.21 5.5-5.7

6.21 5.5-5.7

fff nbsp onu 5.6 ack 快捷 上下 IT In

5.5 進入編輯模式

小寫i

在當前光標所在位置進入編輯模式

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:997:User for polkitd:/:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

-- 插入 --

大寫i

在光標所在行行首進入編輯模式

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:997:User for polkitd:/:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

-- 插入 --

小寫o

從光標所在行後面另起一行進入編輯模式

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:997:User for polkitd:/:/sbin/nologin

-- 插入 --

大寫o

從光標所在行上面另起一行進入編輯模式

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:997:User for polkitd:/:/sbin/nologin

-- 插入 --

小寫a

光標向後移動一位並進入編輯模式,向當前位置後面插入內容

大寫a

移動到當前行的行末並進入編輯模式

進入編輯模式後,一般模式下的所有快捷鍵均無法使用

5.6 vim命令模式

搜索字符(串):輸入:進入命令模式,再輸/跟要查找的內容回車即可

使用/查找

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:997:User for polkitd:/:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

已查找到文件結尾,再從開頭繼續查找

所有匹配搜索條件的字符(串)會高亮顯示;

n光標會向下逐一移動到對應的字符(串)上;

shift+n會向上逐一移動到對應字符(串)上;

使用?查找

hyc:x:1000:1000::/home/hyc:/bin/bash

hyc1:x:1001:1001::/home/hyc1:/bin/bash

hyc2:x:1006:1001::/home/hyc2:/bin/bash

hyc3:x:1007:1005::/home/hyc111:/sbin/nologin

hyc4:x:1008:1008::/home/hyc4:/bin/bash

hyc5:x:1014:1001::/home/abc:/sbin/nologin

hyc6:x:1015:1015::/home/hyc6:/bin/bash

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

?hyc

n會逐一向上匹配字符(串);

shift+n會逐一向下匹配字符(串);

替換字符(串)

99 boot1:x:1001:1001::/home/boot1:/bin/bash

100 boot2:x:1006:1001::/home/boot2:/bin/bash

101 hyc3:x:1007:1005::/home/hyc111:/sbin/nologin

102 hyc4:x:1008:1008::/home/hyc4:/bin/bash

103 hyc5:x:1014:1001::/home/abc:/sbin/nologin

104 hyc6:x:1015:1015::/home/hyc6:/bin/bash

105 root:x:0:0:root:/root:/bin/bash

106 bin:x:1:1:bin:/bin:/sbin/nologin

107 daemon:x:2:2:daemon:/sbin:/sbin/nologin

108 adm:x:3:4:adm:/var/adm:/sbin/nologin

:1,100s/hyc/boot/g :替換文檔中1100行中的所有字符串hycboot

g:不加g則僅替換第一次遇見的條件匹配的字符(串),後面匹配條件的字符(串)將不被替換

s:表示替換

1,100:1100

命令行模式下按上下方向鍵可以調出之前用過的命令

當要被替換的字符(串)裏也包含/時:

:1,$s//home/hyc/uuu/g uuu替換/home/hyc

這種情況下系統將第一個/後的內容識別為空,第二個/後識別為home,一般第三個/後應為g或不應再有字符,但此時第三個/後出現其他字符,系統無法識別,此時產生報錯信息多余的尾部字符

解決辦法:

1 脫義

:1,$s/\/home\/hyc/uuu/g

在上面寫法中home左側和hyc左側的/會被識別為命令行命令的一部分而不是普通字符,此處使用脫義符\將兩個/字符識別為純字符命令即可正常執行

2 更換命令使用的符號

:1,$s#uuu#/home/hyc#g

將命令使用的/#代替;

/可以用#@代替;

保存、退出

:q 退出

:w 保存

:wq 保存並退出

:x 保存退出

:w! 強制保存

:q! 強制退出

:x:wq的區別:

當用戶打開文件後未做任何操作時,可以用這兩個命令保存退出;

當執行時,:x不會修改文件的mtime,因為未做任何操作;

執行:wq時,不管是否修改文件內容,文件的mtime都會改變;

其他

:set nonu 不顯示行號

:set nu 顯示行號

:nohl 取消高亮顯示

5.7 vim實踐

1 分別向下、右、左、上移動6個字符

向下:6+j

向右:6+l

向左:6+h

向上:6+k

2 分別向上和下翻兩頁

向上:ctrl+b

向下:ctrl+f

3 移動光標到第49

行號 shift+g

4 把光標移動到行尾,再移動到行首

行尾:shift+$

行首:shift+^

5 移動到文件的最後一行

shift+g

6 移動到文件的首行

gg

7 搜索文件中出現的字符(串),並數出該字符串出現的次數

搜索root

從文件末尾開始:?root;使用n指出有多少root

從文件開頭開始:/root;使用n指出有多少root

8 把從第一行到第十行出現的root替換為fff

:1,10s/root/fff/g

9 還原上一步操作

u

10 把整個文件中的所有fff替換成root

:1,$s/fff/root/g

11 把光標移動到第25行,刪除字符串hyc

25 shift+g

移動光標到相應位置;

使用v選中字符串按x刪除

直接使用x刪除

12 還原上一步操作

u

13 刪除第50

50 shift+g

dd

14 還原上一步操作

u

15 刪除第3742行的所有內容

37 shift+g

5dd

16 還原上一步操作

u

17 復制第48行的內容並粘貼到第52行下面

48 shift+g

yy

52 shift+g

P

18 還原上一步操作

u

19 復制第37-42行的內容並粘貼到44行上面

37 shift+g

6yy

44 shift+g

shift+p

20 還原上一步操作

u

21 37-42行的內容移動到19行下面

37 shift+g

6dd

19 shift+g

P

22 還原上一步操作

u(此時需要按兩次u

23 把光標移動至首行,把第一行內容修改為“#!/bin/bash”

gg

按字母A進入編輯模式

編輯完成後按esc鍵退出編輯

24 在第一行下面插入新的一行,並輸入”hello!”

gg

輸入o進入編輯模式

輸入hello

esc鍵退出編輯

25 保存文檔並退出

:wq


6.21 5.5-5.7