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的三種模式:
- 指令模式:主要用于vim非寫入式編輯文本的一種模式,這個模式下可以實作vim文本編輯的絕大多數功能,每個鍵或者組合鍵可能都有其特定的作用.
- 插入模式:主要是進行寫入文本,向目前檔案中寫入内容.
- 末行模式:主要是對文本整體的編輯,相對于指令模式來說,末行模式的重心則在于整個檔案本身.
三種模式下的基本操作:
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的功能介紹僅是九牛一毛,僅僅隻能當做參考.