ch4 vi editor(2013 ncu-nos_nm)
TRANSCRIPT
![Page 1: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/1.jpg)
Editor
CSIE 基爾 @ NCU網路開源社
Updated: 11172013
![Page 2: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/2.jpg)
課程
• 相關學分:編譯器
• 等級:基本
• 背景知識:NO
• 課程目標:• 懂得如何使用vi編輯器
![Page 3: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/3.jpg)
Editor
![Page 4: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/4.jpg)
編輯器的存在
• 是為了要讓我們編輯檔案的。(廢話!)
• 編輯器@圖形化介面
• 編輯器@純指令介面
• http://hackertyper.com/
![Page 5: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/5.jpg)
編輯器種類
emacs
vi / vim
nano
ee
.
.
.
![Page 6: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/6.jpg)
我們可以先嘗試用ee這套編輯器
#使用ee編輯檔案
$ ee <filename>
![Page 7: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/7.jpg)
Vi - Basic
![Page 8: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/8.jpg)
為什麼我挑Vi? (by Vbird)
• 所有的 Unix Like 系統都會內建 vi 文書編輯器
• 很多個別軟體的編輯介面都會主動呼叫 vi
• vim 具有程式編輯的能力
• 編輯速度快
![Page 9: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/9.jpg)
Mode (模式)
• 一般模式:<esc>• 命令模式:<一般模式下輸入特殊關鍵字>
• 視覺模式:<v @ 一般模式>
• 編輯模式:<i>,<insert>
#切換一般模式
$ <esc>
#切換編輯模式
$ <i> 或 <insert>
![Page 10: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/10.jpg)
編輯檔案、開新檔案
@vi
檔案若不存在 > 檔案會暫存
@vim
檔案若不存在 > 存檔時會要求取檔名
非常不建議編輯不存在的檔案
#開新檔案
$ vi <filename>
#開啟舊檔
$ vi <filename>
![Page 11: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/11.jpg)
編輯模式:編輯檔案
#切換回家目錄
$ cd ~
#新增檔案 test.txt
$ touch test.txt
#編輯檔案
$ vi test.txt
#切換模式編輯
$ <insert>
![Page 12: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/12.jpg)
一般模式:刪除行
• dd @ 模式底下 #切換一般模式
$ <esc>
#移動刪除目標行
#輸入命令
$ <d>+<d>
![Page 13: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/13.jpg)
一般模式:上一步、下一步
• 復原:u @一般模式
• 恢復復原: . @一般模式#到一般模式
$ <esc>
#復原
$ <u>
#放棄復原
$ <.>
![Page 14: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/14.jpg)
命令模式:搜尋
• / @ 一般模式
• 一次只能搜尋一個,從頭開始
• 找完會顯示Search wrapped
#到一般模式
$ <esc>
#輸入/進入命令模式
$ </>
#在命令/後尋找t字元
$ / t
![Page 15: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/15.jpg)
命令模式:存檔、離開
• 命令的開始: : @ 一般模式
• 存檔::w
• 離開::q
• 存檔+離開::wq
• 強制存檔::w!
#到一般模式
$ <esc>
#進入命令模式
$ <:>
#存檔後離開
$ :wq
![Page 16: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/16.jpg)
Vim
![Page 17: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/17.jpg)
vim
• 全名:vi improved
• 意旨進化版的vi編輯器
• 在Freebsd裡面並非內建
![Page 18: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/18.jpg)
客製化自己的vim @ .vimrc
• VI編譯器能夠下命令改造
• Example:set nu #加入行號#編輯test.txt
$ vi test.txt
#進入命令模式
$ <:>
#下命令set nu
$ :set nu
![Page 19: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/19.jpg)
.vimrc範例
![Page 20: Ch4 vi editor(2013 ncu-nos_nm)](https://reader036.vdocuments.pub/reader036/viewer/2022081421/559bedf51a28ab2a1b8b45d3/html5/thumbnails/20.jpg)
視覺模式:區塊編輯
• 複製:y @ 視覺模式標記內容
• 貼上:p @ 視覺模式標記內容
• 刪除:d @視覺模式標記內容
• only in vim
• vi只有提供單行編輯
#到一般模式
$ <esc>
#移動到標記首位
#切換視覺模式
$ <v>
#複製
$ <y>
#到一般模式
$ <esc>
#移動到貼上位置
#貼上
$ <p>