目錄
- 1. vi與vim
- 1.2 vi 的使用
- 1.1.0 簡易執行范例
- 1.1.1 終端查看vim的簡單手冊
- 1.1.2 案例練習
- 1.1.3 vim的快取、恢復與打開時的警告資訊
1. vi與vim
vim是高級版的vi,vim不但可用不同顏色顯示文字內容,還能進行諸如shell腳本、C語言等程式編輯
在Linux系統中使用文本編輯器來編輯Linux引陣列態檔是很重要的事情,絕大多數組態檔都以ASCII的純文本形式(檔案記錄的是0和1)存在
學習 vim 的原因:
- 所有的UNIX-like系統都會內置vi文本編輯器
- 許多軟體的編輯介面都會主動呼叫vi
- vim具有程式編輯能力,可主動地以字體顏色辨別語法地正確性,方便程式設計
- 程式簡單,編輯速度相當快速
vim官網:http://www.vim.org
1.2 vi 的使用
vi 共分為3種模式:
- 一般命令模式(Command mode)
- 編輯模式(Insert mode)
- 命令列模式(Command-line mode)

1.1.0 簡易執行范例
使用 vi 建立一個名為 welcome.txt 的檔案
1.使用【vim filename】進入一般命令模式
(這里在終端界面)
[dmtsai@study ~] vim welcome.txt
(這里在vim環境)


2.按【i】進入編輯模式,開始編輯文字


3.按下【ESC】鍵回到一般命令模式

4.進入命令列模式(按[shift]+ : 或 / 或 ?)檔案保存并退出vim環境
輸入【:wq】即可保存退出【保存(write)并退出(quit)】

保存退出 vim 環境后,回到終端界面
[dmtsai@study ~] ls -l welcome.txt
-rw-r--r-- 1 dmtsai dmtsai 10 Feb 11 11:42 welcome.txt
1.1.1 終端查看vim的簡單手冊
vim學習書籍推薦:http://iccf-holland.org/click5.html
[dmtsai@study ~] vimtutor #查看vim的簡單入門

按【shift】+【:】后輸入 help user-manual會出現VIM USER MANUAL

1.1.2 案例練習
使用 man_db.conf 來做練習
1.請在【/tmp】這個目錄下建立一個名為 vimtest 的目錄
[dmtsai@study ~] mkdir /tmp/vimtest
2.進入 vimtest 目錄中
[dmtsai@study ~] cd /tmp/vimtest
3.將【/etc/man_db.conf】復制到本目錄( . )下
[dmtsai@study /tmp/vimtest] cp /etc/man_db.conf .
4.使用vim打開本目錄下的 man_db.conf 這個檔案
(進入vim環境)
[dmtsai@study /tmp/vimtest] vim man_db.conf
5.在vim中設定行號
按【shift】+【:】后輸入set nu 則會顯示行號

6.移動到第43行,向右移動59個字符
直接按【43G】,再按下【59→】
7.移動到第1行,并向下查找一下 “gzip” 字串
直接按【1G】或【gg】后,直接輸入【/gzip】
8.將第29到第41行之間的【小寫man字符】改為【大寫MAN字符】,并一個一個確定是否需要修改?如果在確定程序中一直按【y】結果會在最后一行出現改變了幾個man?
【shift】+【:】后直接輸入【29,41s/man/MAN/gc】即可,若一直按【y】最侄訓出現【13次替換,共13行】的說明
9.修改完后,需要全部恢復為原內容,有哪些方法?
- 一直按【u】恢復到原始狀態
- 【shift】+【:】后輸入【q!】(q!為強制退出)之后,再重新讀取一次該檔案
10.復制第66行到第71行這6行內容,并且粘貼到最后一行
直接輸入【66G】然后再【6yy】之后,最后一行會出現【復制了6行】的說明字樣,按下【G】到最后一行,再按【p】粘貼6行
11.洗掉第113行到128行之間的資料
因為第113行到128行之間共16行,因此【113G】→【16dd】就能洗掉16行
12.將此檔案man_db.conf 另存為一個 檔案名為 man.test.config 的檔案
【shift】+【:】后直接輸入【w man.test.config】
13.去到第25行,并且洗掉15個字符
直接輸入【25G】后,再輸入【15x】即可洗掉15個字符
14.在第1行新增1行,該內容輸入內容【I’m an idiot】
直接輸入【1G】去到第一行,然后按下大寫【O】新增一行且在插入模式;輸入內容【I’m an idiot】后,按下【ESC】回到一般命令模式
15.保存退出
【shift】+【:】后直接輸入【wq】
1.1.3 vim的快取、恢復與打開時的警告資訊
當你的系統因某些原因而導致類似宕機的情況,可以通過某些機制來恢復未被保存的資料
vim就是通過快取來恢復

以【/tmp/vitest/man_db.conf】這個組態檔為例:
[root@study ~] cd /tmp/vitest
[root@study vitest] vim man_db.conf
#進入vim界面,然后按下【ctrl】+z 使得vim進入后臺運行
[root@study vitest] ls -al #列出目錄vitest中的檔案
...
# 含有檔案man_db.conf和快取檔案man_db.conf.swp
...
[root@study vitest] kill -9 %1 # 殺死行程,模擬vim停止作業 %1表示目前這個界面占整體檔案的1%
[root@study vitest] ls -al .man_db.conf.swp
-rw-r--r-- 1 dmtsai dmtsai 16384 Jul 6 23:54 .man_db.conf.swp #快取檔案依然存在
[root@study vitest] vim man_db.conf
E352: ATTENTION #錯誤代碼
...
...
Swap file ".man_db.conf.swp" already exists!
(O)pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort
- (O)pen Read-Only:打開快取檔案為只讀檔案
- (E)dit anyway:編輯快取檔案,并不會加載快取的內容
- ?ecover:加載快取內容,用于恢復之前未保存的作業,保存退出vim后手動洗掉快取
- (D)elete it:確定快取無用,打開檔案前將其洗掉
- (Q)uit:退出vim
- (A)bort:忽略此次編輯操作
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259429.html
標籤:其他
上一篇:從此以后我所有的榮譽都歸屬于你
