320 likes | 545 Views
10.1 vi 與 vim. 10.1.1 為何要學 vim. 所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在; 很多個別軟體的編輯介面都會主動呼叫 vi ( 例如未來會談到的 crontab , visudo , edquota 等指令 ) ; vim 具有程式編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程式設計; 因為程式簡單,編輯速度相當快速。. 練習一下 visudo, 讓 jj 可以 sudo vim ifcfg-eth0( 唯讀 or writable).
E N D
10.1vi 與 vim • 10.1.1 為何要學 vim • 所有的Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在; • 很多個別軟體的編輯介面都會主動呼叫 vi (例如未來會談到的 crontab, visudo, edquota等指令); • vim 具有程式編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程式設計; • 因為程式簡單,編輯速度相當快速。
練習一下visudo,讓jj可以sudo vim ifcfg-eth0(唯讀 or writable) • sudo後面加指令,表示暫時由一般user變成root 做執行此指令 • visudo之前, 以 jj vim ifcfg-eth0 (唯讀) • 也不可以執行sudo vim ifcfg-eth0 • jj su - visudo找到 (此時不會vi, 你就不用玩了!) • root ALL=(ALL) ALL 新增如下jj ALL=(ALL) ALL 存檔 • 以 jj可以執行sudo vim ifcfg-eth0 • 可以執行,而且不是唯讀,可以修改寫入ESC :!whoami > 自己暫時變成root • crontab, edquota, …也都要用vi,不能用其它editor • 所以你要好好學vi啊~
jj: sudovim ifcfg-eth0 無效 • 改visudo (當然要先su -) • jj: service network restart 也要 sudo • 直接 執行,無錯誤訊息,但無效必須sudo Linux基礎--壓縮指令的應用
10.2vi 的使用 vi 三種模式的相互關係
10.2vi 的使用 • 10.2.1 簡易執行範例 1.使用 vi 進入一般模式 [root@www ~]# vi test.txt 用 vi 開啟一個新檔案 用 vi 開啟一個舊檔案
10.2vi 的使用 2.按下 i 進入編輯模式,開始編輯文字 開始用 vi 來進行編輯
10.2vi 的使用 3.按下 [ESC] 按鈕回到一般模式 假設我已經按照上面的樣式給他編輯完畢了,那麼應該要如何退出呢?是的!沒錯!就是給他按下 [Esc] 這個按鈕即可!馬上你就會發現畫面左下角的 – INSERT – 不見了!
10.2vi 的使用 4.在一般模式中按下 :wq 儲存後離開 vi 儲存並離開 vi 環境
10.2vi 的使用 • 10.2.2 按鍵說明 第一部份:一般模式可用的按鈕說明,游標移動、複製貼上、搜尋取代等
不是只有yy可以p,dd也可以p • yyp是複製 • ddp是搬移 • d其實不只是”刪除”,而是”剪下”
10.2vi 的使用 第二部份:一般模式切換到編輯模式的可用的按鈕說明
10.2vi 的使用 第三部份:一般模式切換到指令列模式的可用的按鈕說明
以 ssh test • 10.2.4vim 的暫存檔、救援回復與開啟時的警告訊息 • [O]pen Read-Only:打開此檔案成為唯讀檔, 可以用在你只是想要查閱該檔案內容並不想要進行編輯行為時。一般來說,在上課時,如果你是登入到同學的電腦去看他的設定檔, 結果發現其實同學他自己也在編輯時,可以使用這個模式; • (E)dit anyway:還是用正常的方式打開你要編輯的那個檔案, 並不會載入暫存檔的內容。不過很容易出現兩個使用者互相改變對方的檔案等問題!不好不好! • (R)ecover:就是載入暫存檔的內容,用在你要救回之前未儲存的工作。 不過當你救回來並且儲存離開 vim 後,還是要手動自行刪除那個暫存檔喔! • (D)elete it:你確定那個暫存檔是無用的!那麼開啟檔案前會先將這個暫存檔刪除!這個動作其實是比較常做的!因為你可能不確定這個暫存檔是怎麼來的,所以就刪除掉它吧!哈哈! • (Q)uit:按下 q 就離開 vim ,不會進行任何動作回到命令提示字元。 • (A)bort:忽略這個編輯行為,感覺上與 quit 非常類似!也會送你回到命令提示字元就是囉!
10.3vim 的額外功能 • 10.3.1 區塊選擇(Visual Block) v (搭配 yp & d) 192.168.1.1 host1.class.net 192.168.1.2 host2.class.net 192.168.1.3 host3.class.net 192.168.1.4 host4.class.net .....中間省略......
10.3vim 的額外功能 進入區塊功能的示意圖 區塊選擇的結果示意圖
10.3vim 的額外功能 將區塊的資料貼上後的結果
vim a b c • 10.3.2 多檔案編輯
多視窗功能 :spCtrl wq > 離開split 視窗分割的示意圖
10.3vim 的額外功能 視窗分割的示意圖
Ctrl-w s 切水平window • Ctrl-w v 切垂直window • Ctrl-w q 關 window Linux基礎--壓縮指令的應用
vim 環境設定與記錄:~/.vimrc, ~/.viminfo • ~/.viminfo >> 會記錄你之前的動作 • 在file中search keyword > :wq在進來之後, search result還在 • ~/.vimrc >> 預設沒有 • cp /etc/vimrc ~/.vimrc • vim ~/.vimrc • 加 比較常用的 set nu 與 set ai • vim 看看 > 有行號 而且寫程式會縮排了 Linux基礎--壓縮指令的應用
10.3vim 的額外功能 • 10.3.4vim 環境設定與記錄: ~/.vimrc, ~/.viminfo
10.3vim 的額外功能 • 10.3.5vim 常用指令示意圖 vim 常用指令示意圖
還是建議不要在vim中編中文啦~裝vmtools即可 copy paste(實機真有打中文需求,可用酷音) • 10.4.1 中文編碼的問題 1.你的 Linux 系統預設支援的語系資料:這與 /etc/sysconfig/i18n 有關; 2.你的終端介面 (bash) 的語系: 這與 LANG 這個變數有關; 3.你的檔案原本的編碼; 4.開啟終端機的軟體,例如在 GNOME 底下的視窗介面。
系統 > 偏好設定 > 輸入法 > 使用 Ibus >設定 > 啟用停用只留 Ctrl+space >logout 再 login orrebootvim 輸入中文 (ctrl+space可用酷音,即注音) Linux基礎--壓縮指令的應用