Linux 命令行與 shell 腳本編程大全 10 使用編輯器

介紹在 Linux 中常用的文本編輯器

更多精彩

10.6 導(dǎo)覽

  1. Unix 中最流行的 vi 編輯器,被移植到 Linux 中后被叫做 vim 編輯器
  2. vim 編輯器功能強(qiáng)大,評(píng)價(jià)更是兩極分化,因?yàn)樘珡?fù)雜了
  3. nano 編輯器是從 Unix 中的 Pico 編輯器衍生而來(lái),Pico 編輯器沒(méi)有遵循 GPL 協(xié)議,但是 nano 編輯器遵循了 GPL 協(xié)議
  4. emacs 編輯器支持控制臺(tái)和圖形化雙模式
  5. KDE 桌面版 Linux 中內(nèi)置了 Kwrite 基礎(chǔ)編輯器和 Kate 旗艦編輯器
  6. GNOME 桌面版 Linux 內(nèi)置了 gedit 編輯器,支持通過(guò)插件擴(kuò)展功能

10.1 vim 編輯器

  1. vim 編輯器的前身是 vi 編輯器,vi 編輯器是 Unix 最初的編輯器
  2. vi 編輯器的復(fù)雜性導(dǎo)致其成為一款兩極分化非常嚴(yán)重的產(chǎn)品
  3. GNU 項(xiàng)目將 vi 編輯器移植到了 Linux 中,同時(shí)將其改名為 vi improved ,vim

10.1.1 檢查 vim 軟件包

  1. 使用 which vim 命令可以檢查當(dāng)前系統(tǒng)安裝的 vim 編輯器是不是完整版,如下圖
    • 如果 /usr/bin/vim 沒(méi)有通過(guò)鏈接的形式指向任何目錄,說(shuō)明這個(gè) vim 編輯器就是完整版
  2. 但是這還不夠,使用 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è)別名
  3. 分別使用 vi 和 vim 打開(kāi)文件,如下圖
    • 左側(cè)是使用 vim 打開(kāi)的效果,右側(cè)則是使用 vi 打開(kāi)的效果
    • 可以看到,vim 的效果顯然更強(qiáng)大


  4. 在第 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ǔ)

  1. vim 編輯器在內(nèi)存緩沖區(qū)中處理數(shù)據(jù)
  2. 使用 vim test 命令時(shí),首先會(huì)檢測(cè) test 文件是否存在
    • 如果文件存在,則讀取文件內(nèi)容到緩沖區(qū)中,用于編輯
    • 如果文件不存在,則直接開(kāi)啟一段新的緩沖區(qū)用于編輯
  3. 直接使用 vim 命令時(shí),則默認(rèn)開(kāi)啟一段新的緩沖區(qū)用于編輯,如下圖
    • 下圖是直接使用 vim 命令后進(jìn)入的編輯器界面效果,出現(xiàn)的是一個(gè)歡迎界面
  4. vim 編輯器有兩種操作模式,輸入命令后,默認(rèn)進(jìn)入的是 普通模式 ,如下圖
    • 按下 i 鍵,就可以進(jìn)入 插入模式
    • 按下 ESC 鍵,可以退出 插入模式 ,回到 普通模式
  5. 界面操作方面提供幾個(gè)用于行級(jí)跳轉(zhuǎn)的快捷鍵,只能在普通模式下使用
    • Ctrl+FPageDown 下一頁(yè)
    • Ctrl+EPageUp 上一頁(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 鍵了
  6. 在普通模式中輸入英文冒號(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)容保存到新文件中
  7. 下圖就是修改文件內(nèi)容后,嘗試使用 :q 退出編輯器,編輯器會(huì)提出無(wú)法退出

10.1.3 編輯數(shù)據(jù)

  1. 普通模式 中,還提供一些用于編輯數(shù)據(jù)的快捷鍵,如下圖
  2. 上圖中的刪除、撤銷、替換都支持通過(guò)數(shù)字增加次數(shù),例如:
    • 2x 就是連續(xù)刪除兩個(gè)字符,2dd 就是連續(xù)刪除兩行
    • 2u 就是連續(xù)撤銷兩次
    • 2r c 就是連續(xù)將兩個(gè)字符替換成 c

10.1.4 復(fù)制和粘貼

  1. vim 編輯器中的復(fù)制和粘貼操作也需要在 普通模式 中進(jìn)行

10.1.4.1 復(fù)制

  1. 復(fù)制操作的快捷鍵,如下圖


  2. 通過(guò) v 鍵進(jìn)入的 可視模式 ,可以演示一下,如下圖
    • 可以看到,編輯器左下角顯示可視提示符,光標(biāo)處通過(guò)方向鍵覆蓋了部分字符,這個(gè)時(shí)候按下 y 鍵,就可以復(fù)制這些被覆蓋的內(nèi)容

10.1.4.2 粘貼

  1. 粘貼操作則比較簡(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 剪切

  1. 剪切操作則比較巧妙,是通過(guò)和刪除操作配合使用的
  2. 其實(shí)通過(guò) x 、dd 、dw 、d$ 刪除的數(shù)據(jù)會(huì)被直接存到粘貼板中
  3. 執(zhí)行刪除操作后,在需要粘貼數(shù)據(jù)的位置按下 p 鍵,剛才刪除的數(shù)據(jù)就會(huì)出現(xiàn)在此處

10.1.5 查找和替換

  1. 查找需要在 普通模式 下進(jìn)行
  2. 替換則需要在 普通模式 中再通過(guò)冒號(hào)進(jìn)入 命令行模式 才能進(jìn)行

10.1.5.1 查找

  1. 要在 普通模式 下使用查找功能,需要在英文狀態(tài)中按下 斜線( / ,位于鍵盤(pán)右側(cè) Shift 鍵的左側(cè) ) 按鍵,然后輸入待查找的字符后按下回車(chē)鍵即可,如下圖
  2. 按回車(chē)之后就會(huì)出現(xiàn)下圖


  3. 想要跳轉(zhuǎn)到第二個(gè)匹配結(jié)果,按 n 鍵即可,如下圖
    • 也可以再次輸入斜線之后再回車(chē),當(dāng)然按 n 鍵比較簡(jiǎn)單

10.1.5.2 替換

  1. 替換功能的使用方式如下圖,看上去很復(fù)雜,其實(shí)就是在最基礎(chǔ)的 :s/old/new 的前后加上各種參數(shù),從而實(shí)現(xiàn)更豐富的效果
  2. 演示一個(gè)最豐富的的效果 :%s/old/new/gc ,表示從整個(gè)文件中查找所有的 old 字符串,并全部替換成 new 字符串,同時(shí)替換之前會(huì)彈出確認(rèn)替換的操作提示,如下圖
  3. 按回車(chē)后會(huì)先提示是否替換,而且每次替換之前都會(huì)提示


  4. 最終顯示替換四次,涉及兩行數(shù)據(jù)


10.2 nano 編輯器

  1. nano 編輯器是一款比較簡(jiǎn)易的編輯器,適合新手
  2. nano 編輯器是從 Unix 的 Pico 編輯器衍生過(guò)來(lái)的,相對(duì)于 Pico ,nano 的優(yōu)勢(shì)在于遵循了 GPL 協(xié)議,可以在開(kāi)源項(xiàng)目中使用
  3. 當(dāng)前系統(tǒng)并沒(méi)有內(nèi)置 nano 編輯器,就不實(shí)操了,努力掌握 vim 編輯器才是王道

10.3 emacs 編輯器

  1. emacs 編輯器的誕生比 Unix 還要早
  2. emacs 編輯器目前擁有控制臺(tái)界面和圖形化界面
  3. 當(dāng)前系統(tǒng)并沒(méi)有內(nèi)置 emacs 編輯器,就不實(shí)操了,努力掌握 vim 編輯器才是王道

10.4 KDE 編輯器

  1. 在第 1 章中有介紹,KDE 是 Linux 的一種圖形化界面
  2. 在 KDE 中官方支持以下兩種編輯器 ,如下
    • KWrite ,單屏幕文本編輯程序,是 KDE 的基礎(chǔ)編輯器
    • Kate ,功能全面的多窗口文本編輯程序,是 KDE 的旗艦編輯器
  3. 圖形化編輯器沒(méi)必要實(shí)操

10.5 GNOME 編輯器

  1. 在第 1 章有介紹,GNOME 是 Linux 的一種圖形化界面
  2. gedit 是 GNOME 內(nèi)置的編輯器,原生功能比較基礎(chǔ),但支持插件擴(kuò)展
  3. 同樣沒(méi)必要實(shí)操圖形化編輯器
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容