vim編輯器-Linux從入門到精通第四天

来源:https://www.cnblogs.com/WUXIAOCHANG/archive/2019/05/20/10895308.html
-Advertisement-
Play Games

文章大綱 一、vi介紹二、vim三種模式(重點)三、命令模式四、模式間的切換(重點)五、末行模式六、編輯模式七、實用功能八、擴展九、學習資料下載十、參考文章 一、vi介紹 Vi編輯器是所有Unix及Linux系統下標準的編輯器,類似於windows系統下的notepad(記事本)編輯器,由於在Uni ...


文章大綱

一、vi介紹
二、vim三種模式(重點)
三、命令模式
四、模式間的切換(重點)
五、末行模式
六、編輯模式
七、實用功能
八、擴展
九、學習資料下載
十、參考文章

 

一、vi介紹

Vi編輯器是所有Unix及Linux系統下標準的編輯器,類似於windows系統下的notepad(記事本)編輯器,由於在Unix及Linux系統的任何版本,Vi編輯器是完全相同的,因此可以在其他任何介紹vi的地方都能進一步瞭解它,Vi也是Linux中最基本的文本編輯器,學會它後,我們將在Linux的世界里暢行無阻,尤其是在終端中。

關於vim:
vi和vim都是Linux中的編輯器,不同的是,vim比較高級,可以視為vi的升級版本。vi使用於文本編輯,但是vim更適用於coding(寫代碼的)。

Vim重點是游標的移動,模式切換,刪除,查找,替換,複製,粘貼,撤銷命令的使用。

二、vim三種模式(重點)

1. 存在的三種模式

Vim中存在三種模式(大眾的認知):命令模式、編輯模式(輸入模式)、末行模式(尾行模式)。
(1)命令模式:在該模式下是不能對文件直接編輯,可以輸入快捷鍵進行一些操作(刪除行,複製行,移動游標,粘貼等等)【打開文件之後預設進入的模式】;
(2)編輯模式:在該模式下可以對文件的內容進行編輯;
(3)末行模式:可以在末行輸入命令來對文件進行操作(搜索、替換、保存、退出、撤銷、高亮等等);

2. 打開的三種模式

Vim的打開文件的方式(4種,要求掌握的就前三種):

#vim 文件路徑                   作用:打開指定的文件
#vim  +數字  文件的路徑            作用:打開指定的文件,並且將游標移動到指定行
#vim  +/關鍵詞  文件的路徑      作用:打開指定的文件,並且高亮顯示關鍵詞
#vim 文件路徑1 文件路徑2 文件路徑3   作用:同時打開多個文件

重點:先複製出一個/etc/passwd文件,複製當前家目錄下(千萬不要在etc下直接修改!!!)

 

續一切vim命令都是基於/root/passwd文件進行操作。
退出方式:輸入:q按下回車即可

 

三、命令模式

註意:該模式是打開文件的第一個看到的模式(打開文件即可進入)

1. 游標移動

①游標移動到行首
按鍵:shift + 6 或 ^(T字母上面的6,不要按小鍵盤的6)

②游標移動到行尾
按鍵:shift + 4 或 $(R字母的左上角的4,不是小鍵盤的4)

③游標移動到首行
按鍵:gg

④游標移動到末行
按鍵:G

⑤翻屏
向上翻屏:按鍵ctrl + b (before) 或 PgUp
向下翻屏:按鍵ctrl + f (after) 或 PgDn

2. 複製操作

①複製游標所在行
按鍵:yy
粘貼:在想要粘貼的地方按下p鍵

②以游標所在行為準(包含當前行),向下複製指定的行數
按鍵:數字yy

③可視化複製
按鍵:ctrl + v(可視塊)或V(可視行)或v(可視),然後按下↑↓←→方向鍵來選中需要複製的區塊,按下y鍵進行複製,最後按下p鍵粘貼

3. 剪切/刪除

①剪切/刪除游標所在行
按鍵:dd (刪除之後下一行上移)
註意:dd嚴格意義上說是剪切命令,但是如果剪切了不粘貼就是刪除的效果。

②剪切/刪除游標所在行為準(包含當前行),向下刪除/剪切指定的行
按鍵:數字dd (刪除之後下一行上移)

③剪切/刪除游標所在的當前行之後的內容,但是刪除之後下一行不上移
按鍵:D (刪除之後當前行會變成空白行)

④可視化刪除
按鍵:ctrl + v(可視塊)或V(可視行)或v(可視),上下左右移動,按下D表示刪除選中行,d表示刪選中塊

4. 撤銷/恢復

撤銷:輸入:u (不屬於命令模式) 或者 u (undo)
恢復:ctrl + r 恢復(取消)之前的撤銷操作

5. 擴展

①快速將游標移動到指定的行
按鍵:數字G

②以當前游標為準向上/向下移動n行
按鍵:數字↑,數字↓

③以當前游標為準向左/向右移動n字元
按鍵:數字←,數字→

④末行模式下的快速移動方式:移動到指定的行
按鍵:輸入英文“:”,其後輸入行數數字,按下回車

四、模式間的切換(重點)

  image.png

五、末行模式

進入方式:由命令模式進入,按下“:”或者“/(表示查找)”即可進入
退出方式:
a. 按下esc
b. 連按2次esc鍵
c. 刪除末行全部輸入字元

①保存操作(write)
輸入:“:w” 保存文件
輸入:“:w 路徑” 另存為

②退出(quit)
輸入:“:q” 退出文件

③保存並退出
輸入:“:wq” 保存並且退出

④強制 (!)
輸入:“:q!” 表示強制退出,剛纔做的修改操作不做保存

⑤調用外部命令(瞭解)
輸入:“:!外部命令”
例如:

   

⑥搜索/查找

輸入:“/關鍵詞”

例如:我想在passwd文件中搜索“sbin”關鍵詞

[圖片上傳失敗...(image-8f194a-1558343449388)]

在搜索結果中切換上/下一個結果:N****/****n****(next)

如果需要取消高亮,則需要輸入:“:nohl”【no highlight】

⑦替換

:s/搜索的關鍵詞/新的內容 替換游標所在行的第一處符合條件的內容

:s/搜索的關鍵詞/新的內容/g 替換游標所在行的全部符合條件的內容

:%s/搜索的關鍵詞/新的內容 替換整個文檔中每行第一個符合條件的內容

:%s/搜索的關鍵詞/新的內容/g 替換整個文檔的符合條件的內容

%表示整個文件

g表示全局(global)

⑧顯示行號(臨時)

輸入:“:set nu”[number]

如果想取消顯示,則輸入:“:set nonu”

⑨擴展2:使用vim同時打開多個文件,在末行模式下進行切換文件

查看當前已經打開的文件名稱:“:files”

 
在%a的位置有2種顯示可能
%a:a=active,表示當前正在打開的文件;
#:表示上一個打開的文件

切換文件的方式:
a. 如果需要指定切換文件的名稱,則可以輸入:“:open 已經打開的文件名”

 

b. 可以通過其他命令來切換上一個文件/下一個文件
輸入:“:bn”切換到下一個文件(back next)
輸入:“:bp”切換到上一個文件(back prev)

六、編輯模式

 

七、實用功能

1. 代碼著色

 

案例:首先創建簡單的c語言程式

 

如何控制著色顯示與否?
顯示:“:syntax on” syn
tax:語法
關閉顯示:“:syntax off”

2. vim中計算器的使用

當在編輯文件的時候突然需要使用計算器去計算一些公式,則此時需要用計算器,但是需要退出,vim自身集成了一個簡易的計算器。

a. 進入編輯模式
b. 按下按鍵“ctrl + R”,然後輸入“=”,此時游標會變到最後一行
c. 輸入需要計算的內容,按下回車

 

八、擴展

1. vim的配置(重點)

Vim是一款編輯器,編輯器也是有配置文件的。

Vim配置有三種情況:

a. 在文件打開的時候在末行模式下輸入的配置(臨時的)

b. 個人配置文件(~/.vimrc,如果沒有可以自行新建)

c. 全局配置文件(vim自帶,/etc/vimrc)

①新建好個人配置文件之後進入編輯

②在配置文件中進行配置

比如顯示行號:set nu

 

配置好之後vim打開文件就會永遠顯示行號

問題:如果某個配置項,在個人配置文件與全局配置文件產生衝突的時候應該以誰為準?

測試步驟:在兩個配置文件中針對同一個配置項設置不同的值

①先在全局的配置中設置不顯示行號,在個人的配置文件中設置顯示行號,觀察結果

最後顯示行號:說明以個人為準

②先在全局中配置顯示行號,在個人中設置不顯示行號,觀察結果

最後的顯示是不顯示行號,說明以個人為準

結論:如果針對同一個配置項,個人配置文件中存在,則以個人配置文件為準,如果個人配置文件中不存在這一項,則以全局配置文件為準。

2. 異常退出

什麼是異常退出:在編輯文件之後並沒有正常的去wq(保存退出),而是遇到突然關閉終端或者斷電的情況,則會顯示下麵的效果,這個情況稱之為異常退出:

 

解決辦法:將交換文件(在編程過程中產生的臨時文件)刪除掉即可

#rm  -f .passwd.swp
  image.png

3. 別名機制(實用)

作用:相當於創建一些屬於自己的自定義命令

例如:在windows下有cls命令,在Linux下可能因為沒有這個命令而不習慣清屏。現在可以通過別名機制來解決這個問題,可以自己創造出cls命令

別名機制依靠一個別名映射文件:~/.bashrc

#vim  ~/.bashrc
 

註意:如果想新創造的命令生效,必須要重新登錄當前用戶。

4. 退出方式

回顧:之前vim中退出編輯的文件可以使用“:q”或者“:wq”。

除了上面的這個語法之外,vim還支持另外一個保存退出方法“:x”。

說明:
①“:x”在文件沒有修改的情況下,表示直接退出,在文件修改的情況下表示保存並退出;
②如果文件沒有被修改,但是使用wq進行退出的話,則文件的修改時間會被更新;但是如果文件沒有被修改,使用x進行退出的話,則文件修改時間不會被更新的;主要是會混淆用戶對文件的修改時間的認定。

因此建議以後使用“:x”來進行對文件的保存退出。
但是:不要使用X,不要使用X,不要使用X,X表示對文件進行加密操作。

九、學習資料下載

鏈接:https://pan.baidu.com/s/13LXQTZl_rMPzaNw6ltsWyQ
提取碼:67k5

十、參考文章

https://blog.csdn.net/w1416520110/article/details/79987578


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言: 回顧之前的微信公眾號配置和消息處理的內容,我們已經掌握瞭如何配置伺服器與微信公眾號建立連接,也掌握了通過消息管理的方式,對用戶的信息進行處理,完成公眾號消息回覆功能,實現公眾號與用戶之間的完整對話。而在本文將針對自定義菜單做簡單的開發應用,微信公眾平臺具有自定義菜單的功能。開發者可利用該功能 ...
  • 文件型配置基本內容 上一篇文章討論了Configuration的幾個核心對象,本文繼續討論Configuration中關於文件型配置的相關內容。相比較而言,文件型配置的使用場景更加廣泛,用戶自定義配置擴展也可以基於文件型配置進行擴展。如果需要查看上一篇文章,可以點擊移步。 .NET Core文件型配 ...
  • 微軟近日開源了一個新平臺——Try .NET,該平臺可以讓開發者線上上編寫並運行 .NET 代碼。微軟介紹,Try .NET 是一個可嵌入的代碼運行器,不僅可以直接線上上對自己或者他人的代碼進行編輯、測試與運行,還可以將代碼以片段的形式嵌入到博客或者文檔中,以支持線上和離線的互動式文檔。官網鏈接:h... ...
  • 針對於很多公司來說,申請軟體著作權非常有利於公司增強公司的資質,例如有些地方申請高新技術企業評定的時候會要求有相應的軟體著作權證書。其實申請軟體著作權有2個方式,一個方式是找專門負責軟體著作權申請的公司代為申請,第二種方式則是自己到中國版權保護中心的官網註冊賬號認證後自行申請,並且自行申請的不收取任 ...
  • 一、安裝Aconda3 伺服器安裝anaconda和主機上直接安裝anaconda沒有多大區別 Linux安裝Anaconda下載安裝腳本:https://repo.continuum.io/archive/,選擇要安裝的Python版本和系統架構:# Python 3.5$ wget https: ...
  • zabbix zabbix-server: 監聽的埠10051zabbix-agent: 10050Zabbix: Item, Key(鍵)ethercard.traffic[eth0]action: item: 數據項() --> data store --> Web GUI key: serv ...
  • ubuntu安裝vbox虛擬機一、安裝準備1、查看主機配置 二、下載安裝包 (建議將安裝包下載並保存)a、下載virtualbox安裝包下載鏈接https://www.virtualbox.org/wiki/Linux_Downloads b、增強功能安裝包1) http://download.vi ...
  • 文章大綱 一、運行模式二、用戶與用戶組管理(重點)三、網路設置四、ssh服務(重點)五、學習資料下載六、參考文章 自有服務,即不需要用戶獨立去安裝的軟體的服務,而是當系統安裝好之後就可以直接使用的服務(內置)。 一、運行模式 運行模式也可以稱之為運行級別。在linux中存在一個進程:init (in ...
一周排行
    -Advertisement-
    Play Games
  • 問題 有很多應用程式在驗證JSON數據的時候用到了JSON Schema。 在微服務架構下,有時候各個微服務由於各種歷史原因,它們所生成的數據對JSON Object屬性名的大小寫規則可能並不統一,它們需要消費的JSON數據的屬性名可能需要大小寫無關。 遺憾的是,目前的JSON Schema沒有這方 ...
  • 首先下載centos07鏡像,建議使用阿裡雲推薦的地址: https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spm=a2c6h.25603864.0.0.59b5f5ad5Nfr0X 其實這裡就已經出現第一個坑了 centos 07 /u ...
  • 相信很多.NETer看了標題,都會忍不住好奇,點進來看看,並且順便準備要噴作者! 這裡,首先要申明一下,作者本人也非常喜歡Linq,也在各個項目中常用Linq。 我愛Linq,Linq優雅萬歲!!!(PS:順便吐槽一下,隔壁Java從8.0版本推出的Streams API,抄了個四不像,一點都不優雅 ...
  • 在人生的重要時刻,我站在了畢業的門檻上,望著前方的道路,心中涌動著對未來的無限憧憬與些許忐忑。面前,兩條道路蜿蜒伸展:一是繼續在職場中尋求穩定,一是勇敢地走出一條屬於自己的創新之路。儘管面臨年齡和現實的挑戰,我仍舊選擇勇往直前,用技術這把鑰匙,開啟新的人生篇章。 迴首過去,我深知時間寶貴,精力有限。 ...
  • 單元測試 前言 時隔多個月,終於抽空學習了點新知識,那麼這次來記錄一下C#怎麼進行單元測試,單元測試是做什麼的。 我相信大部分剛畢業的都很疑惑單元測試是乾什麼的?在小廠實習了6個月後,我發現每天除了寫CRUD就是寫CRUD,幾乎用不到單元測試。寫完一個功能直接上手去測,當然這隻是我個人感受,僅供參考 ...
  • 一:背景 1. 講故事 最近在分析dump時,發現有程式的卡死和WeakReference有關,在以前只知道怎麼用,但不清楚底層邏輯走向是什麼樣的,藉著這個dump的契機來簡單研究下。 二:弱引用的玩法 1. 一些基礎概念 用過WeakReference的朋友都知道這裡面又可以分為弱短和弱長兩個概念 ...
  • 最近想把ET打表工具的報錯提示直接調用win系統彈窗,好讓策劃明顯的知道表格哪裡填錯數據,彈窗需要調用System.Windows.Forms庫。操作如下: 需要在 .csproj 文件中添加: <UseWindowsForms>true</UseWindowsForms> 須將目標平臺設置為 Wi ...
  • 從C#3開始,拓展方法這一特性就得到了廣泛的應用。 此功能允許你能夠使用實例方法的語法調用某個靜態方法,以下是一個獲取/創建文件的靜態方法: public static async Task<StorageFile> GetOrCreateFileAsync(this StorageFolder f ...
  • 在Windows 11下,使用WinUI2.6以上版本的ListView長這樣: 然而到了Win10上,儘管其他控制項的樣式沒有改變,但ListViewItem變成了預設樣式(初代Fluent) 最重大的問題是,Win10上的HorizontalAlignment未被設置成Stretch,可能造成嚴重 ...
  • 前言 周六在公司加班,幹完活後越顯無聊,想著下載RabbiitMQ做個小項目玩玩。然而這一下就下載了2個小時,真讓人頭痛。 簡單的講一下如何安裝吧,網上教程和踩坑文章還是很多的,我講我感覺有用的文章放在本文末尾。 安裝地址 erlang 下載 - Erlang/OTP https://www.erl ...