Linux學習之四:vim編輯器

来源:http://www.cnblogs.com/yonghegn/archive/2017/10/06/7632827.html
-Advertisement-
Play Games

在講vim編輯器之前,我們要先明白為什麼要學vim編輯器。系統管理員的重要工作就是要修改與設定某些重要軟體的配置文件,因此至少要學會一種以上的文字介面的文書編輯器。 現在開始正式學習vim編輯器。基本上vim共分為三種模式,分別是一般模式,編輯模式,與指令列模式,這三種模式的作用分別是: 1)一般模 ...


 

在講vim編輯器之前,我們要先明白為什麼要學vim編輯器。系統管理員的重要工作就是要修改與設定某些重要軟體的配置文件,因此至少要學會一種以上的文字介面的文書編輯器。

現在開始正式學習vim編輯器。基本上vim共分為三種模式,分別是一般模式,編輯模式,與指令列模式,這三種模式的作用分別是:

1)一般模式:以vim打開一個檔案就直接進入了一般模式(這是預設模式)。在這個模式中,你可以使用上下左右按鍵來移動游標,你可以使用刪除字元或刪除整行來處理檔案內容,也可以使用複製,貼上來處理你的文件數據。

2)編輯模式:在一般模式中可以進行刪除,複製,貼上等等的動作,但是卻無法編輯文件內容!要等到你按下i,I,o,O,a,A,r,R等任何一個字母之後才會進入編輯模式。註意了!通常在Linux中按下這些按鍵時,在畫面的左下方會出現insert或replace的字樣,此時才可以進行編輯。而如果要回到一般模式時,則必須按下esc這個按鍵即可退出編輯模式。

3)指令列命令模式:在一般模式當中,輸入:/?三個中的任何一個按鈕,就可以將游標移動到最底下那一行,在這個模式當中,可以提供搜尋資料的動作,而讀取,存檔,大量取代字元,離開vim,顯示行號等等的動作則是在此模式中達成的。

簡單的說,我們可以將這三個模式想成底下的圖標來比表示:

接下來說一下,在各個模式中常用的按鍵:

1)一般模式下,常用的按鈕說明,游標移動,複製貼上,搜尋取代等。

2)一般模式切換到編輯模式的可用按鈕說明

3)一般模式切換到指令列模式的可用按鈕說明

我們在使用編輯軟體的時候通常會遇到意外終止的情況,我們沒有及時保存的數據就會丟失,然而現在各種軟體都會有各種回覆未保存數據的功能,vim也不例外。那麼接下來就來說一下vim是如何進行數據的恢復的。

當我們用用vim編輯軟體的時候都會生成一個文件名.swp的文件,這個文件就保存著我們編輯的內容。

當我們的程式意外終止時,在打開這個程式時就會出現以後的提示:

 

此時我們就可以利用.swp這個文件來進行文件的恢復。在上面的圖中出現了6個按鈕,接下來就說一下如何通過這六個按鈕來恢覆文件的使用:

[O]pen Read-Only:打開此檔案成為只讀檔, 可以用在你只是想要查閱該檔案內容並丌想要迚行編輯行為時。一般來說,在上課時,如果你是登入到同學癿電腦去看他癿配置文件, 結果収現其實同學他自己也在編輯時,可以使用這個模式;
(E)dit anyway:還是用正常癿方式打開你要編輯癿那個檔案, 並丌會載入暫存檔癿內容。丌過很容易出現兩個使用者互相改變對方癿檔案等問題!丌好丌好!
(R)ecover:就是載入暫存檔癿內容,用在你要救回乊前未儲存癿工作。 丌過當你救回來並且儲存離開 vim 後,還是要手勱自行刪除那個暫存檔喔!
 (D)elete it:你確定那個暫存檔是無用癿!那麼開吪檔案前會先將這個暫存檔刪除! 這個勱作其實是比較常做癿!因為你可能丌確定這個暫存檔是慫麽來癿,所以就刪除掉他吧!哈哈!
(Q)uit:按下 q 就離開 vim ,丌會迚行任何勱作回到命令提示字元。
 (A)bort:忽略這個編輯行為,感覺上不 quit 非常類似! 也會送你回到命令提示字元就是啰!

上面我們講到的檔案的操作都是以行為單位進行編輯檔案的,如果我們想要以一個區塊為單位要如何進行操作呢?

 例如我們想在下麵的文件中每行的末尾中都加上中間的目錄,我們就可以這樣操作:

 

區塊選擇的指令如下表:

1.使用vim 檔案名開啟該檔案

2.將游標移動到要選擇的區塊,按下v鍵選擇區塊,選擇的區塊會變白。

3.此時按下y鍵來進行複製,當你按下y以後,反白的區塊就會消失。

4.最後,將游標移動要複製到的地方,按下p鍵進行複製。

 

接下來就來看一下如何進行多檔案的編輯。如何想將一個檔案中的內容複製到另一個檔案中要如何進行操作呢。

多檔案操作的指令:

1.通過vim 打開兩個檔案。

2.先使用:file看一下編輯的檔案數據有啥。

3.在vim環境下輸入:n會來到這二個檔案。

4.這樣就可以進行多檔案之間的複製等操作了。

 

我們有時可能需要打開多個視窗,我們vim有時可以做到的,如下,當我們輸入:sp命令時就會在打開一個視窗,我們可以通過[ctrl]+w+↑來進行兩個視窗的切換。

 下麵這張圖是為了方便大家記憶vim命令的,大家可以看看:

 


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

-Advertisement-
Play Games
更多相關文章
  • 1. Graylog2 簡介 Graylog 是一個簡單易用、功能較全面的日誌管理工具,相比 ELK 組合, 優點: 部署維護簡單,一體化解決方案,不像ELK三個獨立系統集成。 查相比ES json語法,搜索語法更加簡單,如 source:mongo AND reponse_time_ms:>500 ...
  • 教研室新進機器人,組內成員需要對其做一下必要的瞭解。手冊純英文內容多,這裡挑重點介紹幾條: 感測器: 作為輸入設備,Tiago對周圍環境感知完全通過各種感測器實現。配備的感測器有以下幾種: 1,激光測距儀:0.05-10m 15Hz 2,聲吶:0.03-1m 40kHz 3,慣性測量感測器:MPU ...
  • 本文目錄:1.1 錯誤日誌ErrorLog1.2 訪問日誌CustomLog1.3 日誌輪替:rotatelogs工具1.4 日誌輪替:cronolog工具1.5 rotatelogs和cronolog的比較 需要記錄的日誌類型有:錯誤日誌ErrorLog、訪問日誌CustomLog。錯誤日誌一般採 ...
  • 我們將ASP.NET程式從IIS6移植到IIS7,可能運行提示以下錯誤: HTTP 錯誤 500.23 - Internal Server Error 檢測到在集成的托管管道模式下不適用的 ASP.NET 設置。 為什麼會出現以上錯誤? 在IIS7的應用程式池有兩種模式,一種是“集成模式”,一種是“ ...
  • 主要包括Alias指令、AliasMatch、Redirect、RedirectMatch、ScriptAlias和ScriptAliasMatch。它們由mod_alias模塊提供,該模塊用於提供簡單的路徑映射和重定向需求,更複雜的內容見URL重寫。 其中ScriptAlias用法和Alias完全 ...
  • 本文目錄:1.1 htpasswd命令1.2 身份認證類基本指令1.3 Require指令1.4 web身份認證示例 httpd對web身份認證的支持很豐富,提供的控制也非常細緻。無疑,功能豐富意味著模塊多。關於完整的模塊,見http://httpd.apache.org/docs/2.4/mod/ ...
  • [1]顯示 [2]文件 [3]關機 [4]登錄 [5]shell [6]VIM ...
  • Tomcat 概述: Tomcat是Apache 軟體基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參與和支持,最新的Servlet 和JSP 規範總是能在Tomcat ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...