1 / 22

Linux 基礎學習

Linux 基礎學習. Chapter 8 Use Linux Text Editor VBird 2005/08/04. 課程目標. 認識 vi 與 vim 實際操作 vi 利用 vim 的相關功能 Linux 與 DOS 格式的斷行字元. 內容. 使用 vi 使用 vim 的額外功能 Unix 與 dos 純文字檔之斷行格式. 使用 vi. Linux 上的文書處理軟體: vi emacs xemacs joe e3 xedit kedit pico

lassie
Download Presentation

Linux 基礎學習

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. Linux 基礎學習 Chapter 8 Use Linux Text Editor VBird 2005/08/04 Linux基礎--vi 文書處理器

  2. 課程目標 • 認識 vi 與 vim • 實際操作 vi • 利用 vim 的相關功能 • Linux 與 DOS 格式的斷行字元 Linux基礎--vi 文書處理器

  3. 內容 • 使用 vi • 使用 vim 的額外功能 • Unix 與 dos 純文字檔之斷行格式 Linux基礎--vi 文書處理器

  4. 使用 vi • Linux 上的文書處理軟體: • vi • emacs • xemacs • joe • e3 • xedit • kedit • pico • 所有 Unix like 的機器上都會有的是 vi,但增強版的 vim 可以作為『程式編輯器!』 Linux基礎--vi 文書處理器

  5. 使用 vi(續) • 直接輸入 vi 時: Linux基礎--vi 文書處理器

  6. 使用 vi(續) • vi 後直接加檔案: Linux基礎--vi 文書處理器

  7. 使用 vi(續) • Vi 的三種模式: • 一般模式: command mode • 可進行刪除、複製、搜尋、取代等 • 編輯模式: input mode • 可進行資料的輸入 • 螢幕左下角會出現 –INSERT– 或 –REPLACE– • 指令列模式: command-line mode • 可進行儲存、讀取其他檔案等 Linux基礎--vi 文書處理器

  8. 使用 vi(續) • Vi 的三種模式切換方法(ps: 編輯與指令列不可直接互換) Linux基礎--vi 文書處理器

  9. 使用 vi(續) • 一般模式的游標移動: • 單一字元移動: • 可使用方向鍵移動游標 • 可使用 hjkl 四個按鍵 (左下上右) • 0:移動到該行行首 • $:移動到該行行尾 • 整頁翻動: • [ctrl] + f :向下移動一頁(等於 pagedown) • [ctrl] + b :向上移動一頁(等於 pageup) • 1G:到第一行,相當於 gg • G:到最後一行 • [number]G:到第 number 行 • [Number][Enter]:向下移動 number 行 • 螢幕上游標移動: • H(最上方)、M(中間)、L(最下方一行) 的行首 Linux基礎--vi 文書處理器

  10. 使用 vi(續) • 一般模式的複製與貼上 • 刪除: • x:向右刪除字元 (相當於 delete) • X:向左刪除字元 (相當於 backspace) • [Number]x:向右刪除 number 個字元 • dd:刪除一整列 • [Number]dd:刪除 number 列 • d1G:刪除游標到第一行的所有資料 • dG:刪除游標到最後一行的所有資料 • 複製: • yy:複製一行 • [Number]yy:複製 number 行 • p, P:貼上複製的資料 • J:連結兩行成為一行 Linux基礎--vi 文書處理器

  11. 使用 vi(續) • 一般模式的搜尋與取代: • 搜尋: • /searchword:向下尋找 • ?searchword:向上尋找 • n :重複上一個搜尋動作 • N :重複『反向』上一個搜尋動作 • 取代: • n1,n2s/oldword/newword/gc:取代 n1 到 n2 行之間的 oldword 成為 newword 且允許決定是否要替換 • 1,$s/old/new/g:取代第一到最後一行的 old 成為 new • 其他特殊指令: • 重複上一個動作:『.』 • 復原上一個動作:u • 重作上一個動作: [Ctrl]+r Linux基礎--vi 文書處理器

  12. 使用 vi(續) • 一般模式進入編輯模式: • 新增資料: • a :在游標所在處的下個字元開始插入 • A :在游標所在行的最後一個非空白字元後插入 • i :在游標所在處的字元開始插入 • I :在游標所在行的第一個非空白字元處插入 • o:在游標所在處的下一行新增新的一行; • O :在游標所在處的上一行新增新的一行; • 取代: • r :僅取代『游標所在處的單一字元』 • R:一直取代,直到 [Esc] 按下為止。 • [ESC] (回到一般模式) Linux基礎--vi 文書處理器

  13. 使用 vi(續) • 指令列模式: • 存檔與離開: • :q 離開該檔案 • :w 儲存檔案 • :wq! 『強制』儲存後離開該檔案 • :e! 回到檔案的原始狀態 • ZZ 不儲存離開或儲存後離開 • 讀取其他檔案或另存新檔 • :r file 在此檔案中,讀入 file 檔案的資料 • :w file 將目前的資料寫入 file 這個新檔 • :n1,n2 w file 將目前資料的 n1 到 n2 行寫入 file 中。 • 執行其他動作: • :!command 額外進行其他動作 Linux基礎--vi 文書處理器

  14. 使用 vi(續)-- 練習 • 利用 vi 建立一個檔名為 /root/newman.conf • 將 /etc/man.config 的資料讀進來 • 在第一行輸入 • This file comes from /etc/man.config • 搜尋 MANPATH 取代成為 mywebname • 搜尋 mywebname 字串 • 取消高亮度 • 刪除第 51 到 60 行 • 複製第 1~10 行,並且在第 20 行後貼上(新的行在 21 開始) • 連結第2與第3行 • 復原上個動作 • 強制儲存後離開 Linux基礎--vi 文書處理器

  15. 使用 vi(續)-- 練習二 • 以底下指令捉取檔案: • wget http://linux.vbird.org/linux_basic/0310vi/man.config • 請在 /tmp 這個目錄下建立一個名為 vitest 的目錄; • 進入 vitest 這個目錄當中; • 將 /etc/man.config 拷貝到本目錄底下(或由上述的連結下載 man.config ); • 使用 vi 開啟本目錄下的 man.config 這個檔案; • 移動到第 58 行,向右移動 40 個字元,請問您看到的雙引號內是什麼目錄 • 移動到第一行,並且向下搜尋一下『 bzip2 』這個字串,請問他在第幾行 • 接著下來,我要將 50 到 100 行之間的 man 改為 MAN,並且一個一個挑選是否需要修改,如何下達指令? • 修改完之後,突然反悔了,要全部復原,有哪些方法? • 我要複製 51 到 60 行這十行的內容,並且貼到最後一行之後; • 刪除 11 到 30 行之間的 20 行; • 將這個檔案另存成一個 man.test.config 的檔名; • 去到第 29 行,並且刪除 15 個字元; • 儲存後離開吧! Linux基礎--vi 文書處理器

  16. 使用 vi(續) • 關於檔案的回復與暫存檔案的意義: • 使用 vi 時,會主動的產生 .filename.swp 檔案; • 若使用 vi 時,出現如下畫面: • Swap file "/path/to/.filename.swp" already exists! • [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort: • 表示可能: • 該檔案正在被其他程式所編輯; • 該檔案上次編輯時,發生不明的離線所致。 • 解決方案: • 選擇 R (recover) 將資料救回來; • 將與該檔案同時存在的 .filename.swp 刪除; Linux基礎--vi 文書處理器

  17. 使用 vim 的額外功能 • 一般模式底下, vim 的額外功能 • 區塊選擇: • v 字元選擇,會將游標經過的地方反白選擇! • V 行選擇,會將游標經過的行反白選擇! • [Ctrl]+v 區塊選擇,可以用長方形的方式選擇資料 • y 將反白的地方複製起來 • d 將反白的地方刪除掉 • 可以使用 p 來將資料給他貼在不同的區域! • 多檔案編輯功能: vi file1 file2 file3 file4 .. • :n 編輯下一個檔案 • :N 編輯上一個檔案 • :files 列出目前這個 vim 的開啟的所有檔案 Linux基礎--vi 文書處理器

  18. 使用 vim 的額外功能(續) • 一般模式底下, vim 的額外功能(續) • 視窗分割功能: • :sp [filename] 開啟一個新視窗,可加與不加 filename。 • [ctrl]+wj 游標可移動到下方的視窗。 • [ctrl]+wk 同上,不過游標移動到上面的視窗。 • [ctrl]+wq 其實就是 :q 結束離開啦! • VIM 的操作環境設定: • :set nu 設定行號 • :set hlsearch 設定是否將搜尋的字串反白 • :set autoindent 是否自動縮排? • :set backup 是否自動儲存備份檔?一般是 nobackup 的 • 如果設定 backup 的話,那麼當你更動任何一個檔案時,則原始檔案會被另存成一個檔名為 filename~ 的檔案。 Linux基礎--vi 文書處理器

  19. 使用 vim 的額外功能(續) • VIM 的操作環境設定: • :set ruler 顯示或不顯示狀態列(最下方)! • :set showmode 是否要顯示 --INSERT-- 之類的字眼 • :set backspace=(012) 設定倒退鍵的功能: • 2 在編輯模式中,可以利用倒退鍵 來刪除任意字元 • 0 與 1 僅可刪除剛剛輸入(且尚未離開游標所在行) 的字元。 • :set all 顯示目前所有的環境參數設定值。 • :syntax (off|on) 是否依據程式相關語法顯示不同顏色? • 可以依據檔案的語法來以顏色顯示語法; • 可以進行語法的除錯! • 但某些螢幕可能會造成色差,不容易看清楚字元。 Linux基礎--vi 文書處理器

  20. 使用 vim 的額外功能(續) • VIM 的操作環境設定: • 相關環境設定檔 • 系統設定檔:/etc/vimrc • 個人設定檔:~/.vimrc • vim 使用記錄檔:~/.viminfo • 環境設定範例: vi ~/.vimrc :set hlsearch :set backspace=2 :set autoindent :set rulet :set showmode :syntax on Linux基礎--vi 文書處理器

  21. 使用 vim 的額外功能(續) • 練習: • 我們可以利用 locate 進行檔案的搜尋,可以進行資料庫的更新。資料庫更新設定檔?如何修改成每日進行資料庫更新? Linux基礎--vi 文書處理器

  22. Unix 與 dos 純文字檔之斷行格式 • 不同系統的斷行設定: • Unix 系統:使用 LF 單一符號表示換行 • DOS 系統:使用 CR 與 LF 兩個符號表示換行,即為 CRLF • 如何察看? • cat –A filename • 檔案格式如何轉換 • dos2unix, unix2dos • -k :包留 mtime 不變; • -m :將轉換的資料輸出到新檔。 • 範例: • unix2dos -k -n /etc/man.config /tmp/man.config.dos • Dos 檔案斷行字元的困擾: • 導致 script 無法順利執行 (enter 才開始!) Linux基礎--vi 文書處理器

More Related