1. 程式人生 > 實用技巧 >第十章 檔案管理之編輯模式

第十章 檔案管理之編輯模式

編輯模式


Esc鍵 #退出編輯模式,進入到命令模式
i #在當前游標前插入內容
a #在當前游標後插入內容
I #游標快速的移動到行首,並進入編輯模式,在當前游標前插入內容
A #游標快速的移動到行尾,並進入編輯模式,在當前游標後插入內容
ce #刪除當前字串,游標在字串的首個字母,並進入編輯模式
cw #刪除當前字串,游標在字串的首個字母,並進入編輯模式,會把特殊字元當做是字串
C #刪除當前游標所在位置及向後的所有內容,並進入編輯模式,針對行的操作
o #在當前行的下一行另起一行,並進入編輯模式
O #在當前行的上一行另起一行,並進入編輯模式
s #刪除當前游標所在的字元,並進入編輯模式
S #刪除當前行,並進入編輯模式
cc #刪除當前行,並進入編輯模式

1.新建一個檔案,進入編輯模式,貼上如下內容
[root@lxy ~]# cat file.txt
server {
listen 80;
server_name test.oldboy.com;
index index.html;
}
2.在編輯模式下修改 test.oldboy.com為test.ett.com
3gg ctrl+方向鍵 ce ett
3.在index 最後面,新增index.php
4gg A
4.在index行下面插入一行內容為:root html;。
4gg o
5.退出編輯模式。
ESc

末行模式


1.#儲存退出
:q #退出不儲存
:wq #儲存退出
:q! #強制退出
:wq! #強制儲存退
:w #儲存不退出
:x #儲存退出

2.#游標操作
:n #跳轉到指定的行
:nd #刪除指定的行
:n,md #刪除連續的多行, n 數字 m 數字 n < m

3.#搜尋內容
/root #向下搜尋的指定的字串
n #向下查詢
N #向上查詢
/root\c #搜尋的時候忽略大小
?root #向上搜尋

4.#替換
:%s#root#oldboy#g #全域性替換
:%s#root#oldboy# #替換每一行的第一個匹配的字元
:s#root#oldboy# #替換第一個匹配的字串
:1s#root#oldboy#g #替換指定行的匹配的字串
:1,10s#root#oldboy#g #替換第一行到第十行所有匹配的字串
:%s#root#oldboy#gi #替換的時候忽略大小寫
:w /path #將檔案內容儲存到指定的新的檔案中

5.#讀入檔案
:r /path #將一個檔案的所有寫入到當前檔案的當前行下面
:$r /path #將一個檔案的所有寫入到當前檔案的最下面
:0r /path #將一個檔案的所有寫入到當前檔案的最上面
:1 copy 10 #將第一行復制到第十行的後面
:1,3 copy 10 #將第一行到第三行復制到第十行的後面
:1 move 10 #將第一行移動到第十行的後面
:sh #進入命令列進行命令,返回使用Ctrl+d 或者 exit

檢視模式


可視行
先將游標移動到要操作的行
shift+v #進入可視行的模式
游標選中你要操作的所有行
y #複製
d/x #刪除

可視塊
#批量新增
將游標移動到要操作的行,並且是要操作的字元上面
Ctrl+v #進入可視塊模式
使用方向鍵進行選中要操作的行
shift + i #進入編輯模式
編輯內容 按esc退出

#批量刪除
將游標移動到要操作的行,並且是要操作的字元上面
Ctrl+v #進入可視塊模式
使用方向鍵進行選中要操作的行或者字元,塊

d/x #刪除
/target #高亮
:set nu #顯示行號
:set list #給每一行的結尾加上製表符
:set ic #搜尋忽略大小寫
:noh #取消高亮
:set nonu #取消顯示行號
:set nolist #取消顯示製表符
:set noic #取消忽略大小寫

Vim的執行過程​​

1. vim開啟一個檔案 
2. 會生成一個隱藏檔案,以.swp為結尾的檔案,修改檔案其實就是修改了隱藏檔案
3. 開啟檔案進入命令模式
4. 從命令模式進入到末行模式,進行退出
5. 系統會根據你是否改變了檔案內容,如果改變了檔案,隱藏檔案會覆蓋原始檔,刪除隱藏檔案,如果沒有改變,直接刪除隱藏檔案。

Vim的故障

#1.vim非正常退出導致的
#2.別人正在編輯這個檔案

E325: ATTENTION
Found a swap file by the name ".passwd.swp"
owned by: root dated: Wed Dec 11 19:45:20 2019
file name: ~root/passwd
modified: no
user name: root host name: lxy
process ID: 68044 (still running)
While opening file "passwd"
dated: Wed Dec 11 18:32:03 2019

(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
If this is the case, use ":recover" or "vim -r passwd"
to recover the changes (see ":help recovery").
If you did this already, delete the swap file ".passwd.swp"
to avoid this message.

Swap file ".passwd.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

[root@lxy ~]# vim -r passwd #恢復之前沒有儲存的狀態
[root@lxy ~]# vim passwd
[root@lxy ~]# rm -f .passwd.swp #刪除臨時檔案
[root@lxy ~]# ps aux | grep vim #檢視後臺vim程序

root 68044 0.0 0.2 149224 5092 pts/2 S+ 19:45 0:00 vim passwd
root 68148 0.0 0.0 112708 976 pts/1 R+ 19:47 0:00 grep --color=auto vim