vim編輯器的使用詳解


在Linux江湖,最常用到的編輯器非vim莫屬,vim的功能很強大。

1.   vim簡介

在Linux世界中,最長用到的而且功能比較強大的是Vim編輯器。Vim編輯器是在內存緩沖區中處理數據。

vim 文件名 or vi 文件名

都可以通過vim打開文件

一般vim打開文件功能更多一些,特別是對於shell腳本這種文本,會有不同字符的高亮顯示。

 

如果啟動vim時未指定文件名,或者指定的文件名不存在,vim會開辟一段新的緩沖區域來編輯。

vim /etc/passwd

 

 

vim tt 

 

 

2   vim模式介紹

vim編輯器有兩種模式:

  1. 普通模式
  2. 插入模式

2.1   普通模式

當剛打開要編輯的文件或新建一個文件時,vim首先進入的是普通模式。在普通模式中,vim會將案件解釋程命令。

在普通模式下,可以用方向鍵在文本區域移動光標。vim有用來移動光標的命令:

h:左移一個字符

j:下移一行(文本的下一行)

k:上移一行(文本的上一行)

l:右移一個字符

 

PageDown(或Ctrl+F):下翻一屏

PageUp(或Ctrl+B):上翻一屏

G:移動到緩沖區的最后一行

num G:移動到緩沖區的第num行

gg:移動到緩沖區的第一行

2.2   普通模式的命令行模式

Vim編輯器在普通模式下有個特特別的功能叫命令行模式。命令行模式提供了一個交互式命令行,可以輸入額外的命令來控制vim的行為。要進入命令行模式,在普通模式下按下冒號鍵”:”,光標會移動到消息航,然后出現冒號,等待輸入命令。

在命令行模式下有幾個命令時可以退出緩沖區:

:q  如果未修改緩沖區數據,退出。

:q! 取消所有對緩沖區數據的修改並退出。

:w filename 將文件保存到另一個文件中。

:wq 將緩沖區數據保存到文件中並退出

 

3   編輯數據

在普通模式,輸入i,就會進入到插入模式,然后就可以編輯和數據的插入。如圖:

 

 

在普通模式下,vim提供了一些命令來編輯緩沖區中的數據。

命令

描述

x

刪除當前光標所在位置的字符

dd

刪除光標所在的行

dw

刪除當前光標所在的單詞

d$

刪除當前光標所在位置至行尾的內容

J

刪除當前光標所在行行尾的換行符(拼接符)

u

撤銷前一編輯命令

a

在當前光標后追加數據

A

在當前光標所在行尾追加數據

r char

用char替換當前光標所在位置的單個字符

R text

用text覆蓋當前光標所在位置的數據,知道按下ESC鍵

 

4   復制和粘貼

vim在刪除數據時,實際上會將數據保存在單獨的一個寄存器中。可以用p命令取回數據。而復制操作在vim中是y(代表yank),可以在y后面使用和d命令相同的第二字符(yw代表復制一個單詞,y$代表復制到行尾)。復制文本后,把光標移動到希望放置文本的地方,輸入p命令,復制的文件就會出現在該位置。

復制的過程你無法知道自己到底復制了多少內容,知道粘貼后才明白復制的內容是什么,可視模式可以解決這個問題,可視模式會在你移動光標時就高亮顯示需要復制的文本的內容。要進入可視模式,將光標移動到開始復制的位置,然后按下v鍵,你會注意到光標所在位置的文本已經被高亮顯示。下一步,移動光標來覆蓋希望復制的文本,高亮顯示會覆蓋所有你移動的行文本,然后按下y鍵進行復制,寄存器中已經有了要復制的文本,將光標移動到希望放置文本的位置,使用p鍵來粘貼,這樣就完成了復制粘貼操作。

 

 

 選中后輸入 y復制,然后選擇需要粘貼的地方,輸入p粘貼

如圖:

 

 然后就復制成功粘貼了!

5   查找和替換

5.1   查找

   在vim中可以通過按下斜線(/)鍵。光標會跑到消息航,然后vim會顯示出斜線,然后輸入需要查找的關鍵字符,按下回車鍵,vim會在文本中查找要查找的文本。

通常會出現三種回應:

  1. 如果要查找的文本出現在光標當前位置之后,則光標會跳轉到該文本出現的第一個位置。
  2. 如果要查找的文本未在光標當前位置之后出現,而且在之前出現,則光標會染過文件末尾,出現在該文本所在的第一個位置(並用一條消息指明)
  3. 輸出一條錯誤消息,說明在文件中沒有找到要查找的文本。

如果要繼續查找同一個單詞,按下斜線,然后按回車,揮着使用n鍵,表示下一個(next).

 

 

5.2   替換

替換命令允許你快速的用一個單詞來替換文本中的另一個單詞。必須進入命令模式才能使用替換命令。替換命令的格式:

:s/old/new

Vim會跳到old第一次出現的地方,並用new來替換。

對這個命令進行一些修改可以替換多處文本:

:s/old/new/g    可以替換掉第一行出現的所有old,替換成new.

:n,ms/old/new/g  替換行號n和m之間的所有old

:%s/old/new/g   替換整個文件中的所有old   最常用到

:%s/old/new/gc  替換整個文件中的所有old,但在每次出現時提示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM