天天看點

vim的介紹及基本用法

vim是什麼

Vim是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等友善程式設計的功能特别豐富,
在程式員中被廣泛使用,和Emacs并列成為類Unix系統使用者最喜歡的文本編輯器。

以上是選自vim的官方介紹,首先,從官方介紹中可以看出,vim是基于vi文本編輯器上發展出來的更為
優秀的一款文本編輯器,其次,vim因其豐富的功能和對程式員的高度友好被程式員廣泛使用,最後,
vim主要是用于Unix作業系統及類Unix作業系統中.當然,也支援Mac os和Windows作業系統.

vim更厲害的地方在于它擁有自己的腳本語言(本人對此方面沒有了解,以下是選自百度百科中的一段
描述)
Vim有自己的腳本語言,稱為Vim腳本(也稱為vimscript或VimL),使用者可以通過多種方式使用它
來增強Vim,例如為其他程式設計語言啟用文法高亮,自動化文法檢查或将Vim與其他應用程式和服務。
           

vim的基本使用方法

vim功能衆多,本篇文章所介紹的功能隻是vim中的九牛一毛,本篇文章主要是對自己所學做一下簡單總結,如果有錯誤的地方,希望能得到指出.

vim的三種模式:

  1. 指令模式:主要用于vim非寫入式編輯文本的一種模式,這個模式下可以實作vim文本編輯的絕大多數功能,每個鍵或者組合鍵可能都有其特定的作用.
  2. 插入模式:主要是進行寫入文本,向目前檔案中寫入内容.
  3. 末行模式:主要是對文本整體的編輯,相對于指令模式來說,末行模式的重心則在于整個檔案本身.

三種模式下的基本操作:

1.指令模式

vim打開後預設自動進入指令模式

進入末行模式

“:”: 由指令模式進入末行模式.

進入插入模式

“i”: 從目前光标位置進入插入模式.

“I”: 從目前光标位置的行首進入插入模式.

“O”: 從目前光标位置上一行進入插入模式.(也可以認為是在目前光标位置和上一行中間插入一行)

“o”: 從目前光标位置下一行進入插入模式.

“a”: 在目前光标位置後進入插入模式.

“A”: 在目前光标位置行尾進入插入模式.

光标移動

“hjkl”: 分别為向左,向下,向上,向右移動光标.

複制

“yy”: 複制目前光标所在行.

“nyy”: 複制目前光标行開始至第n行.

“yw”: 複制目前光标所在單詞.

“y$”: 複制目前光标位置至行尾.

“y^”: 複制目前行行首至光标位置.(不複制行首空格縮進等).

“y0”: 複制目前行行首至光标位置.(複制行首空格縮進等).

“y1G”: 複制目前光标至檔案開始位置.

“yG”: 複制目前光标至檔案結束位置.

删除

“dd”: 删除目前行.

“ndd”: 删除目前行至光标下第n行.

“dG”: 删除目前光标位置至檔案結束.

“d1G”: 删除檔案開始位置至目前光标處.

“D”: 删除目前光标位置到行尾.

“d$”: 删除目前光标位置至行尾.

“d0”: 删除行首至目前光标位置.

“x”: 删除目前光标位置字元.

“X”: 删除目前光标位置前一個字元.

“nx”: 從光标目前位置向後删除n個字元.

粘貼

“p”: 将粘貼闆上内容寫到光标所在位置下一行.(若粘貼闆内容不足一行内容,則寫到目前光标後的位置)

“P”: 将粘貼闆上内容寫到光标所在位置上一行.(若粘貼闆内容不足一行内容,則寫到目前光标前的位置)

撤銷重做

“u”: 撤銷前一步操作.

“ctrl + r”: 重做,回到上一步撤銷前的狀态.

替換

(從鍵盤輸入,替換已存在的内容)

“r”: 替換目前字元,替換完成後自動進入指令模式.

“R”: 從目前字元一直替換,直到esc進入指令模式.

塊可視化

“ctrl + v”: 進入塊可視化,hjkl移動光标,選中内容.

2. 插入模式

“esc”: 進入指令模式.

編輯模式下就是普通的寫入操作,大家都比較熟悉,沒什麼說的.

3. 末行模式

進入指令模式

執行完目前指令後自動進入指令模式,不需要進行操作.

儲存退出

(以下指令可以組合使用)

“w”: 儲存目前已寫入的内容.

“q”: 退出vim.

“q!”: 強制退出vim.

查找替換

“/要查找的内容”: 查找出文本中存在要查找的内容,并高亮标出,n:光标移動向下一個查找到的内容.N:上一個内容.

“%s/old/new/”: 将文本中所有old内容替換為new内容.(每行有多個隻替換第一個)

“%s/old/new/g”: 将文本中所有old内容替換為new内容.(每行有多個替換多個)

“開始行号,結束行号s/old/new/g”: 替換範圍内old為new.

在目前檔案讀取其他檔案

“r xxx”: 将xxx檔案的内容讀取到目前位置.

本文隻是對自己所學内容做一筆記,如有錯誤,還望指出,另外,本文對vim的功能介紹僅是九牛一毛,僅僅隻能當做參考.

繼續閱讀