1 / 32

10.1 vi 與 vim

10.1 vi 與 vim. 10.1.1  為何要學 vim. 所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在; 很多個別軟體的編輯介面都會主動呼叫 vi ( 例如未來會談到的 crontab , visudo , edquota 等指令 ) ; vim 具有程式編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程式設計; 因為程式簡單,編輯速度相當快速。. 練習一下 visudo, 讓 jj 可以 sudo vim ifcfg-eth0( 唯讀 or writable).

von
Download Presentation

10.1 vi 與 vim

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 10.1vi 與 vim • 10.1.1 為何要學 vim • 所有的Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在; • 很多個別軟體的編輯介面都會主動呼叫 vi (例如未來會談到的 crontab, visudo, edquota等指令); • vim 具有程式編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程式設計; • 因為程式簡單,編輯速度相當快速。

  2. 練習一下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啊~

  3. jj: sudovim ifcfg-eth0  無效 • 改visudo (當然要先su -) • jj: service network restart  也要 sudo • 直接 執行,無錯誤訊息,但無效必須sudo Linux基礎--壓縮指令的應用

  4. 10.2vi 的使用 vi 三種模式的相互關係

  5. 10.2vi 的使用 • 10.2.1 簡易執行範例 1.使用 vi 進入一般模式 [root@www ~]# vi test.txt 用 vi 開啟一個新檔案 用 vi 開啟一個舊檔案

  6. 10.2vi 的使用 2.按下 i 進入編輯模式,開始編輯文字 開始用 vi 來進行編輯

  7. 10.2vi 的使用 3.按下 [ESC] 按鈕回到一般模式 假設我已經按照上面的樣式給他編輯完畢了,那麼應該要如何退出呢?是的!沒錯!就是給他按下 [Esc] 這個按鈕即可!馬上你就會發現畫面左下角的 – INSERT – 不見了!

  8. 10.2vi 的使用 4.在一般模式中按下 :wq 儲存後離開 vi 儲存並離開 vi 環境

  9. 10.2vi 的使用 • 10.2.2 按鍵說明 第一部份:一般模式可用的按鈕說明,游標移動、複製貼上、搜尋取代等

  10. 10.2vi 的使用

  11. 10.2vi 的使用

  12. 注意: 刪除(d)隱含著複製也就是剪下

  13. 不是只有yy可以p,dd也可以p • yyp是複製 • ddp是搬移 • d其實不只是”刪除”,而是”剪下”

  14. 10.2vi 的使用

  15. 10.2vi 的使用 第二部份:一般模式切換到編輯模式的可用的按鈕說明

  16. 10.2vi 的使用 第三部份:一般模式切換到指令列模式的可用的按鈕說明

  17. 以 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 非常類似!也會送你回到命令提示字元就是囉!

  18. 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 .....中間省略......

  19. 10.3vim 的額外功能

  20. 10.3vim 的額外功能 進入區塊功能的示意圖 區塊選擇的結果示意圖

  21. 10.3vim 的額外功能 將區塊的資料貼上後的結果

  22. vim a b c • 10.3.2 多檔案編輯

  23. 多視窗功能 :spCtrl wq > 離開split 視窗分割的示意圖

  24. 10.3vim 的額外功能 視窗分割的示意圖

  25. Ctrl-w s  切水平window • Ctrl-w v  切垂直window • Ctrl-w q  關 window Linux基礎--壓縮指令的應用

  26. 10.3vim 的額外功能

  27. vim 環境設定與記錄:~/.vimrc, ~/.viminfo • ~/.viminfo >> 會記錄你之前的動作 • 在file中search keyword > :wq在進來之後, search result還在 • ~/.vimrc >> 預設沒有 • cp /etc/vimrc ~/.vimrc • vim ~/.vimrc • 加 比較常用的 set nu 與 set ai • vim 看看 > 有行號 而且寫程式會縮排了 Linux基礎--壓縮指令的應用

  28. 10.3vim 的額外功能 • 10.3.4vim 環境設定與記錄: ~/.vimrc, ~/.viminfo

  29. 10.3vim 的額外功能

  30. 10.3vim 的額外功能 • 10.3.5vim 常用指令示意圖 vim 常用指令示意圖

  31. 還是建議不要在vim中編中文啦~裝vmtools即可 copy paste(實機真有打中文需求,可用酷音) • 10.4.1 中文編碼的問題 1.你的 Linux 系統預設支援的語系資料:這與 /etc/sysconfig/i18n 有關; 2.你的終端介面 (bash) 的語系: 這與 LANG 這個變數有關; 3.你的檔案原本的編碼; 4.開啟終端機的軟體,例如在 GNOME 底下的視窗介面。

  32. 系統 > 偏好設定 > 輸入法 > 使用 Ibus >設定 > 啟用停用只留 Ctrl+space >logout 再 login orrebootvim 輸入中文 (ctrl+space可用酷音,即注音) Linux基礎--壓縮指令的應用

More Related