32
資資資資 : 鳥鳥鳥 Linux 鳥鳥鳥 資 5 資 資資資資資資 資資 Vi Vim

第 5 章 文字編輯工具

Embed Size (px)

DESCRIPTION

第 5 章 文字編輯工具. 內容: Vi Vim. vi 與 vim 文字編輯器. 在 Linux 的系統中使用文字編輯器來編輯您的 Linux 參數設定檔 在 Linux 底下有哪些文書編輯器呢? 可多了~例如 vi, emacs, xemacs, joe, e3, xedit, kedit, pico .... 多的很~ 各家處理器各有其優缺點 建議使用 vi 較新的 distributions 上,您也可以使用較新較先進的 vim 這個文書處理器 - PowerPoint PPT Presentation

Citation preview

Page 1: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

第 5 章 文字編輯工具

內容: Vi Vim

Page 2: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vi 與 vim 文字編輯器

在 Linux 的系統中使用文字編輯器來編輯您的 Linux 參數設定檔 在 Linux 底下有哪些文書編輯器呢? 可多了

~例如 vi, emacs, xemacs, joe, e3, xedit, kedit, pico .... 多的很~ 各家處理器各有其優缺點

建議使用 vi 較新的 distributions 上,您也可以使用較新較

先進的 vim 這個文書處理器 vim 可以看做是 vi 的進階軟體,他可以具有顏

色顯示,很方便程式開發人員在進行程式的撰寫

2

Page 3: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vi 與 vim 文字編輯器

vim 則可以說是程式開發者很好用的工具 連 vim 的官方網站 (http://www.vim.org)

也說 vim 是一個『程式開發工具』而不是文書處理軟體

3

Page 4: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vi 的使用

共分為三種模式,分別是『一般模式』、 『編輯模式』與『指令列命令模式』三種

一般模式 以 vi 處理一個檔案的時後,一進入該檔案就

是一般模式了。 在這個模式中, 你可以使用『上下左右』按鍵

來移動游標,您可以使用『刪除字元』或『刪除整行』來處理檔案內容, 也可以使用『複製、貼上』來處理您的文件資料

4

Page 5: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vi 的使用

編輯模式 在一般模式中可以處理刪除、複製、貼上等等

的動作,但是卻無法編輯的! 要等到您按下『 i, I, o, O, a, A, r, R 』等字

母之後才會進入編輯模式 通常在 Linux 中,按下上述的字母時,在畫

面的左下方會出現 『 INSERT 或 REPLACE 』的字樣,才可以輸入任何字來輸入到您的檔案中

而如果要回到一般模式時, 則必須要按下『 Esc 』這個按鍵即可退出編輯模式

5

Page 6: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vi 的使用

指令列命令模式 在一般模式當中,輸入 『 : 或 / 或 ? 』就可

以將游標移動到最底下那一行 在這個模式當中, 可以提供您『搜尋資料』的

動作,而讀取、存檔、大量取代字元、離開 vi 、顯示行號 等等的動作則是在此模式中達成的

6

Page 7: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

Vi 三個模式

7

Page 8: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

使用 vi 建立一個檔案

使用 vi 建立一個檔名為 test.txt 的資料 使用 vi 進入一般模式

左下角還會顯示這個檔案目前的狀態! 如果是新建檔案會顯示 [New File] 如果是已存在的檔案,則會顯示目前的檔名、行

數與字元數

8

Page 9: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

使用 vi 建立一個檔案

9

Page 10: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

按 i 進入編輯模式,編輯文字

10

Page 11: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

按 i 進入編輯模式,編輯文字

一般模式之中,只要按下 I, o, a 等字元,就可以進入編輯模式了 發現在左下角會出現 – INSERT- 的畫面,那就

是可以輸入任意字元的提示囉 這個時候,鍵盤上除了 [Esc] 這個按鍵之外,

其他的按鍵都可以視作為一般的輸入按鈕了,所以您可以進行任何的編輯囉

vi 裡面, [tab] 這個按鈕所得到的結果與空白字元所得到的結果是不一樣的

11

Page 12: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

退出編輯模式

按下 [ESC] 按鈕回到一般模式 ( 退出 ) 按下 [Esc] 這個按鈕即可!馬上你就會發現畫

面左下角的 – INSERT – 不見了

12

Page 13: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

離開 vi

一般模式中按下 :wq 儲存後離開 vi 按下 『 : 』該游標就會移動到最底下一行去 存檔並離開的指令很簡單,輸入『 :wq 』即可

存檔離開

13

Page 14: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

離開 vi

如果您的檔案權限不對,例如為 -r--r--r-- 時,那麼可能會無法寫入 那麼就可以使用『強制寫入』的方式! 使用『 :wq! 』 多加一個驚嘆號即可強制寫入

14

Page 15: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

命令列內容說明 所謂的命令列或命令模式

就是在最下面一行沒有顯示 『 --INSERT-- 』或者『 --REPLACE-- 』 字樣的時候

15

Page 16: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜 16

Page 17: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜 17

Page 18: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜 18

Page 19: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜 19

Page 20: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

檔案儲存與離開

20

Page 21: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜 21

Page 22: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vi 中的數字

在 vi 中,『數字』是很有意義的 數字通常代表重複做幾次的意思 也有可能是代表去到第幾個什麼什麼的意思

舉例來說,要刪除 50 行,則是用 『 50dd 』數字加在動作之前

那我要向下移動 20 行,就是『 20j 』或者是『 20↓ 』即可

22

Page 23: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

練習

請建立一個名為 vitest 的目錄 進入 vitest 這個目錄當中,將

/etc/man.config 拷貝到本目錄底下 使用 vi 開啟本目錄下的 man.config 這個檔

案 在 vi 中設定一下行號 (:set nu) 移動到第 58 行,向右移動 40 個字元,請問

您看到的雙引號內是什麼目錄 (58G)(40) 移動到第一行,並且向下搜尋一下 『 bzip2 』

這個字串,請問他在第幾行 (1G)(/bzip2)

23

Page 24: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

練習

將 50 到 100 行之間的 man 改為 MAN,且一個一個挑選是否需要修改,如何下指令

修改完後,反悔要全部復原,有哪些方法 我要複製 51 到 60 行這十行的內容,並且

貼到最後一行之後 刪除 11 到 30 行之間的 20 行 將這個檔案另存成 man.test.config 的檔名 去到第 29 行,並且刪除 15 個字元 儲存後離開吧!

24

Page 25: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

答案

『 cp /etc/man.config . 』 『 vi man.config 』 『 :set nu 』 先按下『 58G 』再按下『 40→ 』會看到

『 /dir/bin/foo 』這個字樣在雙引號內 先執行『 1G 』或『 gg 』後,直接輸入

『 /bzip2 』,則會去到第 116 行才對 直接下達 『 :50,100s/man/MAN/gc 』

即可

25

Page 26: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

答案 (1) 簡單的方法可以一直按 『 u 』回復到原始

狀態, (2) 使用不儲存離開 『 :q! 』之後,再重新讀取一次該檔案

『 51G 』 然後再 『 10yy 』之後按下 『 G 』到最後一行,再給他 『 p 』貼上十行

『 11G 』 後,再下 『 20dd 』即可刪除 20 行了

:w man.test.config 『 29G 』 之後,再給他 『 15x 』即可刪除

15 個字元 『 :wq! 』

26

Page 27: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

檔案的回復與暫存檔 vi 是具有『可回復』功能

當我們編輯一個檔案時,假設名稱為 /tmp/passwd , 那麼在這個 /tmp 底下就會有一個暫存檔案,檔名為 『/tmp/.passwd.swp 』,這是一個隱藏檔

我們所進行的一些修改都會暫時存在這個檔案當中,萬一在檔案修改過程中, 系統掛了,那麼下次你再重新 vi /tmp/passwd 時,系統就會告訴您,是否需要回復『 Recovery 』成修改過程中的模樣

如果您按下 (R) ,就可以將資料回復到修改過程的樣子,而不是原始檔案囉

27

Page 28: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

檔案的回復與暫存檔

若 /tmp 底下,執行 ls -al 時 發現到底下有兩個檔案, 檔名分別為 passwd

與 .passwd.swp 的話 (1) 可能有人在編輯這個檔案 (2) 之前您在編輯這個檔案時,因為某些不知名的因素導致 vi 程式中斷,則該暫存檔就會存在。

您可以將該 .passwd.swp 檔案刪除,或者是,直接 vi /tmp/passwd , 在 vi 出現是否回復時,選擇回復,然後儲存更新 /tmp/passwd ,之後再將這個 /tmp/.passwd.swp 檔案刪除即可

如果不刪除的話,那麼每次編輯這個檔案,都會告知您該檔案有問題

28

Page 29: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vim

目前大部分的 distributions 都以 vim 取代 vi 的功能 如果您使用 vi 後,卻看到畫面的右下角有顯

示目前游標所在的行列號碼, 那麼您的 vi 已經被 vim 所取代囉

為什麼要用 vim 呢?因為 vim 具有顏色顯示的功能,並且還支援許多的程式語法 (syntax)

29

Page 30: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vim

如果您在文字模式下,輸入 alias 時,出現這樣的畫面

表示當您使用 vi 這個指令時,其實就是執行 vim 啦 vim 的一般用法與 vi 完全一模一樣

30

Page 31: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜

vim 編輯 /etc/man.config ,則輸入『 vim

/etc/man.config 』

最底下一行說明這個檔案的特色,包括 138 行,共 4506 字元等等

那個 1,1 代表目前游標在第一行的第一個字元上。您可以看到第一行有個游標的存在

那個 Top 則表示,這個畫面是整個檔案的最上方31

Page 32: 第  5  章 文字編輯工具

資料來源 :鳥哥的 Linux 私房菜 32