文字編輯器vim vi用法完全解讀

2021-09-24 18:11:33 字數 3348 閱讀 7785

vi用法

vi是unix/linux系統下最強大的文字編輯器(另乙個是emacs),其命令較多,完全基於鍵盤操作,而當下流行的各種linux版本基本上都內建安裝了vim,vim可以看作是vi的增強型版本,兩者用法大致相同。習慣了使用圖形化文字編輯器的同學學習vi編輯器比較費勁、難以適應,為了方便大家學習,我在這裡著重介紹一下vi的核心用法。

vim [-c] [-rr] [file…]

選項』-c』,將以相容模式啟動,使vim像vi一樣開啟文字檔案;

選項「-r」可以恢復上次儲存失敗的檔案,若後面不跟檔名『file』將顯示所有可用恢復資料的檔案;

選項「-r"以唯讀模式開啟文字檔案;

命令模式

所有鍵入的鍵都被解釋成命令,如x就是刪除乙個字元的命令。

輸入模式

鍵入的任何內容都被寫入編輯緩衝區中,如鍵入」how are you",那麼這11個字元被插入到編輯緩衝區中。

退出前必須在命令模式中輸入一條退出命令,若在輸入械中,則就先切換到命令模式中再輸入退出命令。

+zz按下並保持,再按兩次z鍵,即可退出並儲存當前檔案。

:wq輸入字元「:wq」,然後再按回車鍵,即可退出並儲存當前檔案。

輸入模式下可能輸入一些錯誤的字元,你會想對其中的個別字元進行修正。鍵說明

(回退鍵)或(刪除鍵)

刪除鍵入的最後乙個字元

^w刪除鍵入的最後乙個單詞

^x或^u

刪除整行

注:「^」表示按下ctl+key鍵,如「^u」表示同時按下「ctl」和「u」鍵。

單字元長度的移動

鍵移動說明

h或或游標左移乙個字元長度的位置

l或或游標右移乙個字元長度的位置

j或游標下移乙個位置

k或游標上移乙個位置

單詞長度的移動

鍵移動說明

w游標移動到下乙個單詞的詞首

w以忽略標點的方式,游標移動到下乙個單詞的詞首

e游標移動到下乙個單詞的詞尾

e以忽略標點的方式,游標移動到下乙個單詞的詞尾

b游標移動到上乙個單詞的詞首

b以忽略標點的方式,游標移動到上乙個單詞的詞首

行距離的移動

鍵移動說明

-游標移動到上一行的開頭

+或游標移動到下一行的開頭

0(數字,非字母「o")

游標移動到當前行的開頭

$游標移動到當前行的末尾

^游標移動到當前行的第乙個非空格、非製表符的的字元上

較大範圍的移動

鍵移動說明

)向前移動到下乙個句子

(向後移動到上乙個句子

}向前移動到下乙個段落

或showmode

smdoff

當進入輸入模式時顯示乙個提醒

wrapscan

wsoff

writeany

waoff

允許一需要的過載!就可以寫入任何檔案

lines

——24

文字的行數

shiftwidthsw8

autoindent使用的空格數量

tabstopts8

製表符間距

wrapmarginwm0

自動換行的頁邊距

大多數據的選項都有縮寫,為了方便快捷,可使用縮寫代替全稱。如以下命令是等價的。

:set showmod nonumber tabstop=4

:set smd nonu ts=4

vi命令說明r

在空格處鍵入r,再鍵入回車符,當前行將在此空格處**為兩行

j在當前行鍵入j和回車符,當前行與下一行將合併為一行

ex命令

說明:x,[y]coz

源行x(至y)複製到目標行z下面

:x,[y]mz

源行x(至y)移動到目標行z下面

例:複製第5行,插入到11行下面

:5co11

移動第7至9行,插入到15行下面

:7,9m15

首行到當前行之間的內容移動到編輯緩衝區的末尾

:1,.m$

當前行到末行之間的內容移動到編輯緩衝區的開頭(行0代表緩衝區的開頭)

:.,$m0

命令說明

:! shell-cmd

暫停vi,讓shell執行shell-cmd命令,shell命令 執行結束後,控制將返回給vi

:! !

再次執行上次的shell命令

:! sh

啟動乙個新的預設shell,在使用完這個shell之後,可以按^d鍵或輸入exit來停止這個shell,重新回到vi中

:! shell-name

啟動乙個新的指定shell-name的shell

ex命令

說明nrfile

在第n行後插入檔案file的內容

r file

在當前行後插入檔案file的內容

nr !shell-cmd

在第n行後插入shell-cmd的輸出

r !shell-cmd

在當前行後插入shell-cmd的輸出

ex命令

說明:w

將資料寫入原始檔案

:w file

將資料寫入到新檔案file中

:w! file

覆蓋乙個已有的檔案file中

:w>> file

將資料追加到指定的檔案file中

在編輯乙個檔案時,臨時決定到編輯另乙個檔案,其實不用退出vi就可以編輯其他檔案,可用:e命令 ,後面跟乙個新的檔名即可,語法:

:e file

而在編輯新檔案時,編輯緩衝區的原有內容將丟失,因此此時vi會提醒你儲存對原來檔案修改的儲存,不儲存不能切換到新檔案的編輯,此時可用:w儲存資料。如果要忽略這種保護,可用:e!

ex命令

說明e file

編輯新的檔案file

e!重新編輯當前檔案file,忽略自動檢查(丟棄所有的修改)

e! file

編輯指定的新檔案file,忽略自動檢查(丟棄對原來檔案所有的修改)

為經常使用的單詞或表示式建立縮寫,可以用:ab命令,語法是:

:ab [short long]

刪除乙個縮寫,可以有命令:una,語法是:

:una short

例 ,為暑假的實習工作準備一張履歷表,需要不停地輸入字串「exceptionally gifted",重複輸入會讓人感到很厭煩,此時可建立乙個縮寫,減少大量的文字輸入工作。

:ab eg exceptionally gifted

有時覺得此縮寫無用了,可以刪除它了。

:una eg

文字編輯器Vim Vi

1.簡介 vim vi是乙個功能強大的全螢幕文字編輯器,是linux unix上最常用的文字編輯器,它的作 用是建立 編輯 顯示文字 檔案。vim vi沒有選單,只有命令。2.工作模式 3.插入命令 a 在游標後附加文字 a 在本行行末附加文字 i 在游標前插入文字 i 在本行開始插入文字 o 在游...

Linux 文字編輯器Vim Vi

linux 文字編輯器vim vi 1.vim vi簡介 vim vi是乙個功能強大的全螢幕文字編輯器,是linux unix上最常用的文字編輯器,它的作用是建立 編輯 顯示文字檔案 vim vi沒有選單,只有命令 2.vim vi工作模式 3.插入命令 命令 作用 a 在游標後附加文字 a 在本行...

文字編輯 Vim Vi

2 文字 ascii,unicode 3 vim vi improved 1 vi vim是一種純文字編輯器,它不像word可以排版,可以調整字型大小,可以改變字型等等,vi vim只是乙個文字編輯工具,它只能對文字的內容進行操作,比如新增內容 修改內容 刪除內容等等 1 基本模式 1 命令模式 2...