Linux目錄和文件——文本編輯器Vim

来源:https://www.cnblogs.com/shamao/archive/2019/07/10/11163993.html
-Advertisement-
Play Games

本文主要學習在Linux系統中使用Vim文本編輯器編輯文本。 ...


Linux文本文件——文本編輯器Vim

摘要:本文主要學習在Linux系統中使用Vim文本編輯器編輯文本。

什麼是Vim

Vim是一個基於文本界面的編輯工具,使用簡單且功能強大。更重要的是,Vim是所有Linux發行版本預設的文本編輯器。

很多人習慣將Vim稱為Vi,其實Vim是Vi的增強版(在Vi的基礎上增加了正則表達式的查找、多視窗的編輯等功能),使用Vim進行程式開發會更加方便。

安裝Vim文本編輯器

眾多Linux發行版系統,通常都已經預設安裝好了Vi或Vim文本編輯器,Centos也不例外,該系統就預設安裝有Vi文本編輯器,但建議大家使用Vim。

查看是否安裝了Vim文本編輯器

在命令行模式下輸入“vim”,輸出結果為“Command not found”,或者是“未找到命令”,則表示此系統中未安裝Vim:

1 [root@localhost ~]# vim
2 -bash: vim: 未找到命令
3 [root@localhost ~]# 

說明沒有安裝Vim。

安裝Vim文本編輯器

CentOS系統中,使用如下命令即可安裝Vim:

1 yum install -y vim

安裝過程如下:

 1 已安裝:
 2   vim-enhanced.x86_64 2:7.4.160-6.el7_6                                                                                                              
 3 
 4 作為依賴被安裝:
 5   gpm-libs.x86_64 0:1.20.7-5.el7                       perl.x86_64 4:5.16.3-294.el7_6                perl-Carp.noarch 0:1.26-244.el7                 
 6   perl-Encode.x86_64 0:2.51-7.el7                      perl-Exporter.noarch 0:5.68-3.el7             perl-File-Path.noarch 0:2.09-2.el7              
 7   perl-File-Temp.noarch 0:0.23.01-3.el7                perl-Filter.x86_64 0:1.49-3.el7               perl-Getopt-Long.noarch 0:2.40-3.el7            
 8   perl-HTTP-Tiny.noarch 0:0.033-3.el7                  perl-PathTools.x86_64 0:3.40-5.el7            perl-Pod-Escapes.noarch 1:1.04-294.el7_6        
 9   perl-Pod-Perldoc.noarch 0:3.20-4.el7                 perl-Pod-Simple.noarch 1:3.28-4.el7           perl-Pod-Usage.noarch 0:1.63-3.el7              
10   perl-Scalar-List-Utils.x86_64 0:1.27-248.el7         perl-Socket.x86_64 0:2.010-4.el7              perl-Storable.x86_64 0:2.45-3.el7               
11   perl-Text-ParseWords.noarch 0:3.29-4.el7             perl-Time-HiRes.x86_64 4:1.9725-3.el7         perl-Time-Local.noarch 0:1.2300-2.el7           
12   perl-constant.noarch 0:1.27-2.el7                    perl-libs.x86_64 4:5.16.3-294.el7_6           perl-macros.x86_64 4:5.16.3-294.el7_6           
13   perl-parent.noarch 1:0.225-244.el7                   perl-podlators.noarch 0:2.5.1-3.el7           perl-threads.x86_64 0:1.87-4.el7                
14   perl-threads-shared.x86_64 0:1.43-6.el7              vim-common.x86_64 2:7.4.160-6.el7_6           vim-filesystem.x86_64 2:7.4.160-6.el7_6         
15 
16 完畢!
17 [root@localhost ~]# 

測試

此時在命令行中輸入vim,出現下麵的結果時,表示安裝成功:

 1 ~                                                                                                                                                   
 2 ~                                                                                                                                                   
 3 ~                                                                                                                                                   
 4 ~                                                                                                                                                   
 5 ~                                                                                                                                                   
 6 ~                                                                                                                                                   
 7 ~                                                                                                                                                   
 8 ~                                                                                                                                                   
 9 ~                                                                                                                                                   
10 ~                                                                                                                                                   
11 ~                                                                VIM - Vi IMproved                                                                  
12 ~                                                                                                                                                   
13 ~                                                                  版本 7.4.1099                                                                    
14 ~                                                             維護人 Bram Moolenaar 等                                                              
15 ~                                                           修改者 <[email protected]>                                                            
16 ~                                                         Vim 是可自由分發的開放源代碼軟體                                                          
17 ~                                                                                                                                                   
18 ~                                                              成為 Vim 的註冊用戶!                                                                
19 ~                                                  輸入  :help register<Enter>   查看說明                                                           
20 ~                                                                                                                                                   
21 ~                                                  輸入  :q<Enter>               退出                                                               
22 ~                                                  輸入  :help<Enter>  或  <F1>  查看線上幫助                                                       
23 ~                                                  輸入  :help version7<Enter>   查看版本信息                                                       
24 ~                                                                                                                                                   
25 ~                                                                                                                                                   
26 ~                                                                                                                                                   
27 ~                                                                                                                                                   
28 ~                                                                                                                                                   
29 ~                                                                                                                                                   
30 ~                                                                                                                                                   
31 ~                                                                                                                                                   
32 ~                                                                                                                                                   
33 ~                                                                                                                                                   
34                                                                                                                                   0,0-1        全部

輸入 :q 返回命令行界面。

Vim的三種工作模式

使用Vim編輯文件時,存在三種工作模式,分別是普通模式、輸入模式和命令模式,這三種工作模式可隨意切換。

普通模式

在普通模式中,可以使用上下左右移動游標,並且可以對文件內容進行複製、粘貼、替換、刪除等操作,但是不能通過輸入的方式修改文件內容。

使用 vim 文件名 的命令可以進入Vim,這時就處於普通模式。

輸入模式

在輸入模式下,Vim可以對文件執行寫操作,類似於在Windows系統的文檔中輸入內容。

使Vim進行輸入模式的方式是在命令模式狀態下輸入i、I、a、A、o、O等插入命令,當編輯文件完成後按Esc鍵即可返回命令模式。

命令模式

在命令模式下,可以對文件中的指定內容執行保存、查找或替換等操作。

使Vim切換到命令模式的方法是在命令模式狀態下按“:”鍵,此時Vim視窗的左下方出現一個“:”符號,這時就可以輸入相關指令進行操作了。指令執行後Vim會自動返回普通模式,如想直接返回普通模式,按Esc即可。

按鍵說明

進入普通模式

剛打開文件時Vim處於普通模式,在普通模式中,下方會顯示文件的一些信息,包括文件的總行數和字元數,以及當前游標所在的位置等。

可以使用以下方式打開文件:

1 vim filename:打開或新建一個文件,並將游標置於第一行的首部。
2 vim -r filename:恢覆上次Vim打開時崩潰的文件。
3 vim -R filename:把指定的文件以只讀方式放入Vim編輯器中。
4 vim + filename:打開文件,並將游標置於最後一行的首部。
5 vim +n filename:打開文件,並將游標置於第n行的首部。

普通模式

移動游標用到的命令:

 1 h或←:游標向左移動一個字。
 2 j或↓:游標向下移動一個字。
 3 k或↑:游標向上移動一個字。
 4 l或→:游標向右移動一個字。
 5 [Ctrl]f:屏幕向下移動一頁,相當於PageDown按鍵。
 6 [Ctrl]b:屏幕向上移動一頁,相當於PageUp按鍵。
 7 [Ctrl]d:屏幕向下移動半頁。
 8 [Ctrl]u:屏幕向上移動半頁。
 9 +:游標移動到非空白字元的下一列。
10 -:游標移動到非空白字元的上一列。
11 n[Space]:n為數字,向右移動n個字。
12 0或[Home]:移動到這一行的最前面的字。
13 $或[End]:移動到這一行的最後面的字。
14 H:游標移動到最上方一行的第一個字。
15 M:游標移動到中間一行的第一個字。
16 L:游標移動到最下方一行的第一個字。
17 G:移動到最後一行。
18 nG:n為數字,移動到第n行。
19 gg:移動到第一行。
20 n[Enter]:n為數字,游標向下移動n行。

查詢和替換用到的命令:

1 /word:向下尋找word字元串。
2 ?word:向上尋找word字元串。
3 n:n是英文按鍵,表示按上一個搜索方向搜索下一個。
4 N:N是英文按鍵。與n剛好相反,表示按上一個搜索方向的反方向搜索下一個。
5 :n1,n2s/word1/word2/g:n1和n2為數字。在第n1行到第n2行之間查詢word1字元串,並將該字串取代為word2。
6 :1,$s/word1/word2/g:從第一行到最後一行查詢word1字元串,並將該字串取代為word2。
7 :1,$s/word1/word2/gc:從第一行到最後一行查詢word1字元串,並將該字串取代為word2。且在替換前進行詢問。

複製粘貼用到的命令:

 1 x或X:x表示刪除當前游標所在的一個字,相當於[del]按鍵,X表示向前刪除一個字,相當於[backspace]按鍵。
 2 nx:n為數字,連續向後刪除n個字。
 3 dd:刪除游標所在的一行。
 4 ndd:n為數字,刪除游標所在的向下n行。
 5 d1G:刪除游標所在的行到第一行。
 6 dG:刪除游標所在的行到最後一行。
 7 d$:刪除游標所在的位置到該行的最後一個字。
 8 d0:刪除游標所在的位置到該行的第一個字。
 9 yy:複製游標所在的那一行。
10 nyy:n為數字。複製游標所在的向下n行。
11 y1G:複製游標所在的行到第一行。
12 yG:複製游標所在的行到最後一行。
13 y$:複製游標所在的位置到該行的最後一個字。
14 y0:複製游標所在的位置到該行的第一個字。
15 p或P:p表示從游標的下一行開始粘貼,P表示從游標所在行開始粘貼。
16 J:將游標所在行與下一行合成一行。
17 u:複原前一個動作。
18 [Ctrl]r:重做上一個動作。
19 .:小數點,表示重覆前一個動作。

輸入模式

從普通模式切換到輸入模式:

1 i:在當前游標所在位置插入文本,當前游標所在位置的文本向右移動。
2 I:在游標所在行的行首插入文本,行首是該行的第一個非空白字元,相當於游標移動到行首執行i命令。
3 o:在游標所在行的下麵插入新的一行。游標停在空行的行首,等待輸入文本。
4 O:在游標所在行的上面插入新的一行。游標停在空行的行首,等待輸入文本。
5 a:在當前游標所在位置之後插入文本。
6 A:在游標所在行的行尾插入文本,相當於游標移動到行尾執行a命令。

命令模式

從普通模式切換到命令模式:

1 :w:保存修改。若為:w!則表示強制保存。
2 :q:退出Vim編輯器。若為:q!則表示不保存強制退出Vim編輯器。
3 :wq:保存並退出,若為:wq!則表示強制保存並退出。
4 ZZ:如果沒有改動則退出,如果修改過則保存後退出。
5 :w filename:將文件內容保存到指定文件。
6 :r filename:將指定文件的內容插入到游標所在行後面。
7 :n1,n2 w filename:將n1到n2的內容保存到指定文件。
8 :! command:暫時離開Vim編輯器執行command的顯示結果。

設置

1 :set nu:顯示行號。
2 :set nonu:取消顯示行號。

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

-Advertisement-
Play Games
更多相關文章
  • 這都7月份了,Windows10 都升級的有一個月了,然而我的 的系統一直找不到 的更新。 雖說 會有bug,但還是想體驗一把。周圍同事都更新了,心裡還是癢癢的。 於是每天都在點 ,但仍舊沒有出現 版本的驚喜,腫麽辦呀? /傷心 百度了很多方法,要麼重裝,要麼使用鏡像更新系統,還有什麼易升的工具,要 ...
  • 博客寫的很少,一方面是因為我覺得目前很多博客都是相互抄襲,或者有很多部分都是重覆的內容。而我自己再去寫同樣的內容的畫,有點浪費時間。 所以,如果我要寫,我希望是寫一些與眾不同,或者重覆率比較低的內容,但是做到這點,太難了。 目前來說,對於大部分人使用linux,要麼是使用雲伺服器,要麼是在windo ...
  • 前言: 近期漏洞修複頻繁,各種組件需要升級,經多次碰撞,發現 yum update 來升級組件是最有效最安全的方式(綠盟通過版本比對的掃描結果可以忽略)。 然而,各家的設備各家管,一到升級就發現一堆問題了。吶這就發生了這麼一個報錯: yum update yum -y #隨便寫一個,其實都一樣 Th ...
  • 什麼是Shell? 相對於內核來說,Shell是Linux/Unix的一個外殼,它負責外界與Linux內核的交互,接收用戶或其他應用程式的命令,然後把這些命令轉化成內核能理解的語言,傳給內核,內核是真正幹活的,幹完之後再把結果返回用戶或應用程式。 簡單的說,shell就是那“黑乎乎”的命令行。 Sh ...
  • 首次使用博客園,主要用來記錄我在北大課工場學習的點點滴滴,我學習的雲計算課程,是一個比較火的行業,未來前景不錯。剛來課工場的前幾天,老師要求我們練習打字,很無奈,只能聽之任之。現在打字速度略有提升,相信以後會更上一層樓。 今天,是正式開課的第一天,老師給我們講了一些內容,我做瞭如下的整理: 1、IS ...
  • 關於微軟雅黑 Windows從Vista開始用到現在的”微軟雅黑”十多年以來基本沒什麼大改動,而大家的顯示器從CRT進化到了IPS高分屏,十年前看著還OK的字體現在在絕大多數屏幕上可能就是這個樣子的: 原因是雅黑作為十年前設計的字體,所有的hinting都是手動操作的,就會帶來一堆shi一樣的問題。 ...
  • 1.在選擇系統菜單界面,按 "e" 進入編輯模式 2.在以字元串“Linux16”開頭的行,將游標移動到該行的結尾,然後輸入“init=/bin/bash”,按 "Ctrl+x"進入單用戶模式 3.輸入 "mount -o rw,remount" ,重新掛載目錄,輸入 "passwd root" 修 ...
  • 1:創建一個要提交的文件2 git init 初始化 3 git remote add origin https://github.com/maohongli/cang.git 建立遠程連接4 git status5 git add -A 創建6 git commit -m "是" 7 git pu ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...