歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux學習筆記:使用Vim編輯器

Linux學習筆記:使用Vim編輯器

日期:2017/2/28 13:47:54   编辑:Linux教程

Vi編輯器是Unix系統上早先的編輯器,在GNU項目將Vi編輯器移植到開源世界時,他們決定對其作一些改進。
於它不再是以前Unix中的那個原始的Vi編輯器了,開發人員也就將它重命名為Vi improved,或Vim。
為了方便使用,幾乎所有Linux發行版都創建了一個名為vi的別名,指向vim程序。

Vim基礎

Vim編輯器在內存緩沖區處理數據。只要鍵入vim命令和你要編輯的文件的名字,即可啟動Vim編輯器。
如在啟動Vim時未指定文件名,或者這個文件不存在,Vim會新開一段緩沖區域來編輯;如果命令指定了一個已有的文件的命令,Vim會將文件的整個內容都讀到一塊緩沖區域來准備編輯。

Vim編輯器有兩種操作模式:

  • 普通模式;
  • 插入模式

當打開要編輯的文件時,Vim編輯器會進入普通模式。在普通模式下,Vim編輯器會將按鍵解釋成命令;
在編輯模式中,按下i鍵,進入插入模式。插入模式下,每個按鍵都將輸入到光標位置的緩沖區。按Esc鍵即可退出插入模式;

在普通模式中,可以用方向鍵來在文本區域移動光標,如果是在一個沒有定義方向鍵的終端上,還可以使用如下按鍵移動:

按鍵光標移動方式(普通模式下) h 左移一個字符 j 下移一行 k 上移一行 l 右移一個字符

在大的文本文件中一行一行的移動會特別麻煩。幸而Vim提供了一些命令來幫助提高速度:

按鍵光標移動方式(普通模式下) PageDown(或Ctrl+F) 下翻一屏數據 PageUp(或Ctrl+B) 上翻一屏數據 G 移動到緩沖區的最後一行 num G 移動到緩沖區的第num行 gg 移動緩沖區的第1行

Vim編輯器在普通模式下有個特別的功能叫命令模式。命令模式提供了一個可供輸入額外命令來控制Vim中行為的交互式命令行。要進入命令模式,在普通模式下按下冒號鍵。光標會移動到消息行,冒號出現,等號輸入命令。
在命令模式下有幾個命令來將緩沖區的數據保存到文件中並退出Vim:

命令描述(命令模式下命令) q 如果未修改緩沖區的數據,退出 q! 取消所有對緩沖區數據的的修改並退出 w filename 將文件保存到另一個文件filename下 wq 將緩沖區數據保存到文件中並退出

編輯數據

在普通模式下,Vim編輯器提供了一些命令來編輯緩沖區中的數據。常用號命令有:

命令描述(普通模式下命令) x 刪除當前光標所在位置的字符 dd 刪除當前光標所在行 dw 刪除當前光標所在位置的單詞 d$ 刪除當前光標所在位置至行尾的內容 J 刪除當前光標所在行行尾的換行符 u 撤銷前一個編輯命令 a 在當前光標後追加數據 A 在當前光標所在行行尾追加數據 r charchar替換當前光標所在位置的單個字符 R texttext覆蓋當前光標所在位置的數據,直到按下ESC鍵

有些編輯命令允許使用數據修飾來指定重復該命令多少次。比如,命令2x會刪除從光標當前位置開始的兩個字符,命令5dd會刪除從光標當前所在行開始的向下5行。

復制和粘貼

現代編輯器的標准功能之一就是剪切或復制數據,Vim中剪切復制相對容易些。

上面已經有了刪除數據的操作,Vim刪除數據時,實際上它會將數據保存在單獨的一個寄存器中。可以同p命令來取回數據。

簡而言之,用dd刪除一行文本,然後把光標移動到某個要放置該行文本的位置,之後用p命令。p命令會將文本插入到當前光標所在行之後。p命令可以和任何刪除文本的命令一起搭配使用。

Vim中復制命令是y(代表yank)。y命令和d命令有相同的第二字符(如yw表示復制單詞,y$表示復制到行尾)。在復制文本後,輸入p命令表示粘貼。

但是這樣復制有個比較煩惱的問題,就是你沒有看見到底復制了什麼,除非粘貼出來才知道。Vim還有個功能解決了這個問題,可視模式會在移動光標時高亮文本,因此可以用可是模式來復制文本,方法如下:

移動光標到要開始復制的位置,按下v鍵,光標所在位置的文本會被高亮顯示,移動光標覆蓋想要復制的文本。覆蓋後按y鍵來激活復制命令。現在寄存器中已經有了要復制的文本,使用p命令到合適的位置粘貼即可。

查找和替換

要查找某個字符串,在命令模式下,鍵入斜槓(/)加查找字符串(比如查找字符串class:/class),按下Enter鍵,光標會跑到消息行。在輸入要查找的文本後,按下Enter鍵,Vim編輯器會有3中回應:

  • 如果光標當前位置之後有你要查找的文本,則光標會跳到該文本出現的第一個位置(按n鍵到達下一個);
  • 如果光標當前位置之後沒有你要查找的文本,則光標會繞過文件末尾,顯示在該文本出現的第一個位置(並用一條消息顯示);
  • 輸入一條錯誤消息,說明在文件中沒有找到要找的文本

替換命令的格式是:

:s/old/new

Vim編輯會跳到old第一次出現的地方並用new來替換,可以對替換命令作一些修改來替換多處要替換的文本:

命令描述 :s/old/new/g 一行命令替換所有old :n.ms/old/new/g 替換行號n和m之間的所有old :%s/old/new/g: 替換整個文件中的old :%s/old/new/gc: 替換整個文件中的old,但在每次出現時提示

最後

Vim包含了不少高級功能,由於每個Linux發行版都會包含它,所以應該至少了解一下Vim編輯器的一些基本用法。

Copyright © Linux教程網 All Rights Reserved