介紹在 Linux 中常用的文本編輯器
更多精彩
- 更多技術(shù)博客,請(qǐng)移步 IT人才終生實(shí)訓(xùn)與職業(yè)進(jìn)階平臺(tái) - 實(shí)訓(xùn)在線
10.6 導(dǎo)覽
- Unix 中最流行的 vi 編輯器,被移植到 Linux 中后被叫做 vim 編輯器
- vim 編輯器功能強(qiáng)大,評(píng)價(jià)更是兩極分化,因?yàn)樘珡?fù)雜了
- nano 編輯器是從 Unix 中的 Pico 編輯器衍生而來(lái),Pico 編輯器沒(méi)有遵循 GPL 協(xié)議,但是 nano 編輯器遵循了 GPL 協(xié)議
- emacs 編輯器支持控制臺(tái)和圖形化雙模式
- KDE 桌面版 Linux 中內(nèi)置了 Kwrite 基礎(chǔ)編輯器和 Kate 旗艦編輯器
- GNOME 桌面版 Linux 內(nèi)置了 gedit 編輯器,支持通過(guò)插件擴(kuò)展功能
10.1 vim 編輯器
- vim 編輯器的前身是 vi 編輯器,vi 編輯器是 Unix 最初的編輯器
- vi 編輯器的復(fù)雜性導(dǎo)致其成為一款兩極分化非常嚴(yán)重的產(chǎn)品
- GNU 項(xiàng)目將 vi 編輯器移植到了 Linux 中,同時(shí)將其改名為 vi improved ,vim
10.1.1 檢查 vim 軟件包
- 使用
which vim命令可以檢查當(dāng)前系統(tǒng)安裝的 vim 編輯器是不是完整版,如下圖- 如果
/usr/bin/vim沒(méi)有通過(guò)鏈接的形式指向任何目錄,說(shuō)明這個(gè) vim 編輯器就是完整版
- 如果
- 但是這還不夠,使用
which vi命令會(huì)發(fā)現(xiàn)當(dāng)前系統(tǒng)還有一個(gè) vi 編輯器,如下圖- 可以看到 vi 和 vim 并不是同一個(gè)編輯器
- 有些系統(tǒng)中會(huì)通過(guò)
alias vi="vim",將 vi 指向 vim ,但使用alias vi命令后發(fā)現(xiàn)當(dāng)前系統(tǒng)沒(méi)有指定這個(gè)別名
- 分別使用 vi 和 vim 打開(kāi)文件,如下圖
- 左側(cè)是使用 vim 打開(kāi)的效果,右側(cè)則是使用 vi 打開(kāi)的效果
-
可以看到,vim 的效果顯然更強(qiáng)大
- 在第 5 章中學(xué)習(xí)了
alias命令,在第 6 章學(xué)習(xí)了 .bashrc 文件可用來(lái)存儲(chǔ)用戶自定義的命令別名,如下圖- 可以看到,通過(guò) vim 打開(kāi)的文件還有語(yǔ)法高亮,酷酷的
- 添加別名后,輸入
:wq保存并退出文件,再輸入source ~/.bashrc命令編譯文件,剛才定義的命令別名才能生效 - 再次使用
vi test命令就可以得到和vim test命令一樣的效果
10.1.2 vim 基礎(chǔ)
- vim 編輯器在內(nèi)存緩沖區(qū)中處理數(shù)據(jù)
- 使用
vim test命令時(shí),首先會(huì)檢測(cè) test 文件是否存在- 如果文件存在,則讀取文件內(nèi)容到緩沖區(qū)中,用于編輯
- 如果文件不存在,則直接開(kāi)啟一段新的緩沖區(qū)用于編輯
- 直接使用
vim命令時(shí),則默認(rèn)開(kāi)啟一段新的緩沖區(qū)用于編輯,如下圖- 下圖是直接使用
vim命令后進(jìn)入的編輯器界面效果,出現(xiàn)的是一個(gè)歡迎界面
- 下圖是直接使用
- vim 編輯器有兩種操作模式,輸入命令后,默認(rèn)進(jìn)入的是 普通模式 ,如下圖
- 按下 i 鍵,就可以進(jìn)入 插入模式
- 按下 ESC 鍵,可以退出 插入模式 ,回到 普通模式
- 界面操作方面提供幾個(gè)用于行級(jí)跳轉(zhuǎn)的快捷鍵,只能在普通模式下使用
- Ctrl+F 或 PageDown 下一頁(yè)
- Ctrl+E 或 PageUp 上一頁(yè)
- G 跳轉(zhuǎn)到第一行,注意必須是大寫(xiě)的 G ,在默認(rèn)沒(méi)有開(kāi)啟大寫(xiě)模式的情況下,可以使用 Shift+G 實(shí)現(xiàn)效果
- n G 跳轉(zhuǎn)到第一行,注意必須是大寫(xiě)的 G ,實(shí)際操作起來(lái)確實(shí)很反人類,如果沒(méi)有開(kāi)啟大寫(xiě)模式,則需要先按數(shù)字,再按 Shift+G 才能達(dá)到效果,如果開(kāi)啟了大寫(xiě)模式,則可以按數(shù)字之后再按 G
- gg 跳轉(zhuǎn)到最后一行,這里就是要使用小寫(xiě)模式的 g 鍵了
- 在普通模式中輸入英文冒號(hào),可以進(jìn)入 命令行模式 ,在該模式下提供幾個(gè)用于保存和退出的快捷鍵
- :q 如果沒(méi)有修改文件內(nèi)容,可以直接退出,否則會(huì)提出無(wú)法退出
- :q! 不管有沒(méi)有修改文件內(nèi)容,都可以強(qiáng)制退出
- :wq 保存修改內(nèi)容后并退出
- w filename 將修改內(nèi)容保存到新文件中
- 下圖就是修改文件內(nèi)容后,嘗試使用 :q 退出編輯器,編輯器會(huì)提出無(wú)法退出
10.1.3 編輯數(shù)據(jù)
- 在 普通模式 中,還提供一些用于編輯數(shù)據(jù)的快捷鍵,如下圖
- 上圖中的刪除、撤銷、替換都支持通過(guò)數(shù)字增加次數(shù),例如:
- 2x 就是連續(xù)刪除兩個(gè)字符,2dd 就是連續(xù)刪除兩行
- 2u 就是連續(xù)撤銷兩次
- 2r c 就是連續(xù)將兩個(gè)字符替換成 c
10.1.4 復(fù)制和粘貼
- vim 編輯器中的復(fù)制和粘貼操作也需要在 普通模式 中進(jìn)行
10.1.4.1 復(fù)制
-
復(fù)制操作的快捷鍵,如下圖
- 通過(guò) v 鍵進(jìn)入的 可視模式 ,可以演示一下,如下圖
- 可以看到,編輯器左下角顯示可視提示符,光標(biāo)處通過(guò)方向鍵覆蓋了部分字符,這個(gè)時(shí)候按下 y 鍵,就可以復(fù)制這些被覆蓋的內(nèi)容
- 可以看到,編輯器左下角顯示可視提示符,光標(biāo)處通過(guò)方向鍵覆蓋了部分字符,這個(gè)時(shí)候按下 y 鍵,就可以復(fù)制這些被覆蓋的內(nèi)容
10.1.4.2 粘貼
- 粘貼操作則比較簡(jiǎn)單,就是在光標(biāo)所在位置按下 p 鍵
- 如果是通過(guò) y 、yw 、y$ 復(fù)制的非整行數(shù)據(jù),粘貼的數(shù)據(jù)會(huì)出現(xiàn)在光標(biāo)所在位置的下一位
- 如果是通過(guò) yy 復(fù)制的整行數(shù)據(jù),粘貼的數(shù)據(jù)則出現(xiàn)在光標(biāo)所在位置的下一行
10.1.4.3 剪切
- 剪切操作則比較巧妙,是通過(guò)和刪除操作配合使用的
- 其實(shí)通過(guò) x 、dd 、dw 、d$ 刪除的數(shù)據(jù)會(huì)被直接存到粘貼板中
- 執(zhí)行刪除操作后,在需要粘貼數(shù)據(jù)的位置按下 p 鍵,剛才刪除的數(shù)據(jù)就會(huì)出現(xiàn)在此處
10.1.5 查找和替換
- 查找需要在 普通模式 下進(jìn)行
- 替換則需要在 普通模式 中再通過(guò)冒號(hào)進(jìn)入 命令行模式 才能進(jìn)行
10.1.5.1 查找
- 要在 普通模式 下使用查找功能,需要在英文狀態(tài)中按下 斜線( / ,位于鍵盤(pán)右側(cè) Shift 鍵的左側(cè) ) 按鍵,然后輸入待查找的字符后按下回車(chē)鍵即可,如下圖
-
按回車(chē)之后就會(huì)出現(xiàn)下圖
- 想要跳轉(zhuǎn)到第二個(gè)匹配結(jié)果,按 n 鍵即可,如下圖
- 也可以再次輸入斜線之后再回車(chē),當(dāng)然按 n 鍵比較簡(jiǎn)單
- 也可以再次輸入斜線之后再回車(chē),當(dāng)然按 n 鍵比較簡(jiǎn)單
10.1.5.2 替換
- 替換功能的使用方式如下圖,看上去很復(fù)雜,其實(shí)就是在最基礎(chǔ)的
:s/old/new的前后加上各種參數(shù),從而實(shí)現(xiàn)更豐富的效果
- 演示一個(gè)最豐富的的效果
:%s/old/new/gc,表示從整個(gè)文件中查找所有的 old 字符串,并全部替換成 new 字符串,同時(shí)替換之前會(huì)彈出確認(rèn)替換的操作提示,如下圖
-
按回車(chē)后會(huì)先提示是否替換,而且每次替換之前都會(huì)提示
-
最終顯示替換四次,涉及兩行數(shù)據(jù)
10.2 nano 編輯器
- nano 編輯器是一款比較簡(jiǎn)易的編輯器,適合新手
- nano 編輯器是從 Unix 的 Pico 編輯器衍生過(guò)來(lái)的,相對(duì)于 Pico ,nano 的優(yōu)勢(shì)在于遵循了 GPL 協(xié)議,可以在開(kāi)源項(xiàng)目中使用
- 當(dāng)前系統(tǒng)并沒(méi)有內(nèi)置 nano 編輯器,就不實(shí)操了,努力掌握 vim 編輯器才是王道
10.3 emacs 編輯器
- emacs 編輯器的誕生比 Unix 還要早
- emacs 編輯器目前擁有控制臺(tái)界面和圖形化界面
- 當(dāng)前系統(tǒng)并沒(méi)有內(nèi)置 emacs 編輯器,就不實(shí)操了,努力掌握 vim 編輯器才是王道
10.4 KDE 編輯器
- 在第 1 章中有介紹,KDE 是 Linux 的一種圖形化界面
- 在 KDE 中官方支持以下兩種編輯器 ,如下
- KWrite ,單屏幕文本編輯程序,是 KDE 的基礎(chǔ)編輯器
- Kate ,功能全面的多窗口文本編輯程序,是 KDE 的旗艦編輯器
- 圖形化編輯器沒(méi)必要實(shí)操
10.5 GNOME 編輯器
- 在第 1 章有介紹,GNOME 是 Linux 的一種圖形化界面
- gedit 是 GNOME 內(nèi)置的編輯器,原生功能比較基礎(chǔ),但支持插件擴(kuò)展
- 同樣沒(méi)必要實(shí)操圖形化編輯器
















