2019獨角獸企業重金招聘Python工程師標準>>>
9月29日任務
5.5 進入編輯模式
5.6 vim命令模式
5.7 vim實踐
?
Vim編輯模式
進入編輯模式
操作 | 說明 |
i | 在光標所在字符前插入內容 |
I | 在光標所在行行首插入內容 |
a | 在光標所在字符后插入內容 |
A | 在光標所在行行尾插入內容 |
o | 在光標所在行及下一行之間插入一個新行,并在該行行首處進行編輯 |
O | 在光標所在行及上一行之間插入一個新行,并在該行行首處進行編輯 |
退出編輯模式
按ESC鍵即可
?
vim命令模式
位置定位
一般模式下,輸入**:n**(n為行號),然后按回車鍵,光標自動定位到n行行首。
內容搜索(高亮顯示)
在一般模式下輸入/或?進行內容的搜索
-
/搜索內容
n向下搜索,N向上搜索
-
?搜索內容
n向上搜索,N向上搜索
內容替換
在一般模式下輸入“:”加 s可以進行替換操作
格式 “ :范圍 s/替換前/替換后/g ”
(s替換,g全部,不加g只替換一行中最先出現的那個)
例:替換/etc/passwd的拷貝文件中1-10行內所有的/sbin為/test
初始數據如下:
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
operator:x:11:0:operator:/root:/sbin/nologin
-
加g的效果
:1,10 s#/sbin#/test#g
-
不加g的效果
:1,10 s#/sbin#/test#
只替換了當行的第一個匹配項
當替換的內容里包含/,有兩種方法解決:
-
在內容的/前加\進行轉義
-
使用其他字符(#%*)進行分割如s#/root#/home#g
其他命令
-
:wq | :wq! 保存退出
-
:set nu 顯示行號
-
:set nonu 不顯示行號
-
:nohl 取消高亮
-
:x
-
文件被修改了 跟:wq效果一致
-
==文件未被修改== :wq會修改mtime,:x不會
-
?
vim擴展知識
常用快捷鍵
快速注釋文本內所有的行
-
ctrl+v (進入可視塊編輯模式)
-
j/k (向下移動選擇每行行首)
-
shift+i + # (在第一行插入#)
-
按esc (每行自動插入第一行插入的#)
查看光標所在位置單詞(命令)的man手冊
shift+k
刪除光標所在字符到某個字符之間的所有字符
# 刪除前
sync:x:5:0:sync:/sbin:/bin/syncd + f + /
刪除了中間的“sync:/”# 刪除后
sync:x:5:0:sbin:/bin/sync
刪除光標后的所有字符
D 或 shfit+d
刪除當前光標所在位置的單詞
d + i + w
選中當前光標上的單詞
v + i + w
自動代碼縮進導致黏貼代碼縮進混亂的2種解決
-
:set noai nosi (黏貼前執行)
-
:set paste
?
文件加密、解密
加密
-
vim/vi file
-
:X 回車,輸入密碼并確認
-
保存退出
-
再次使用vim/vi編輯,不輸入密碼回車會顯示為亂碼
解密
-
vim/vi file
-
:set key= 設置密碼為空
-
保存退出
?
更多使用操作,可以查看《Vim實用技巧》一書。?
?