Linux系統下vim命令集合,linuxvim命令集合

來源:互聯網
上載者:User

Linux系統下vim命令集合,linuxvim命令集合

Vim命令合集

命令曆史

以:和/開頭的命令都有曆史紀錄,可以首先鍵入:或/然後按上下箭頭來選擇某個曆史命令。

啟動vim

在命令列視窗中輸入以下命令即可

vim直接啟動vim

vim filename開啟vim並建立名為filename的檔案

檔案命令

開啟單個檔案

vim file

同時開啟多個檔案

vim file1 file2 file3 ...

在vim視窗中開啟一個新檔案

:open file

在新視窗中開啟檔案

:split file

切換到下一個檔案

:bn

切換到上一個檔案

:bp

查看當前開啟的檔案清單,當前正在編輯的檔案會用[]括起來。

:args

開啟遠程檔案,比如ftp或者share folder

:eftp://192.168.10.76/abc.txt

:e \\qadrive\test\1.txt

vim的模式

正常模式(按Esc或Ctrl+[進入) 左下角顯示檔案名稱或為空白

插入模式(按i鍵進入) 左下角顯示--INSERT--

可視模式(不知道如何進入)左下角顯示--VISUAL--

導航命令

%括弧匹配

插入命令

i在當前位置生前插入

I在當前行首插入

a在當前位置後插入

A在當前行尾插入

o在當前行之後插入一行

O在當前行之前插入一行

尋找命令

/text  尋找text,按n健尋找下一個,按N健尋找前一個。

?text  尋找text,反向尋找,按n健尋找下一個,按N健尋找前一個。

vim中有一些特殊字元在尋找時需要轉義  .*[]^%/?~$

:set ignorecase  忽略大小寫尋找

:set noignorecase  不忽略大小寫尋找

尋找很長的詞,如果一個詞很長,鍵入麻煩,可以將游標移動到該詞上,按*或#鍵即可以該單詞進行搜尋,相當於/搜尋。而#命令相當於?搜尋。

:set hlsearch  高亮搜尋結果,所有結果都高亮顯示,而不是只顯示一個匹配。

:set nohlsearch  關閉高亮搜尋顯示

:nohlsearch  關閉當前的高亮顯示,如果再次搜尋或者按下n或N鍵,則會再次高亮。

:set incsearch  逐步搜尋模式,對當前鍵入的字元進行搜尋而不必等待鍵入完成。

:set wrapscan  重新搜尋,在搜尋到檔案頭或尾時,返回繼續搜尋,預設開啟。

替換命令

ra將當前字元替換為a,當期字元即游標所在字元。

s/old/new/用old替換new,替換當前行的第一個匹配

s/old/new/g用old替換new,替換當前行的所有匹配

%s/old/new/用old替換new,替換所有行的第一個匹配

%s/old/new/g用old替換new,替換整個檔案的所有匹配

:10,20 s/^/ /g在第10行知第20行每行前面加四個空格,用於縮排。

ddp交換游標所在行和其下緊鄰的一行。

移動命令

h左移一個字元

l右移一個字元,這個命令很少用,一般用w代替。

k上移一個字元

j下移一個字元

以上四個命令可以配合數字使用,比如20j就是向下移動20行,5h就是向左移動5個字元,在Vim中,很多命令都可以配合數字使用,比如刪除10個字元10x,在當前位置後插入3個!,3a!,這裡的Esc是必須的,否則命令不生效。

w向前移動一個單詞(游標停在單詞首部),如果已到行尾,則轉至下一行行首。此命令快,可以代替l命令。

b向後移動一個單詞2b向後移動2個單詞

e,同w,只不過是游標停在單詞尾部

ge,同b,游標停在單詞尾部。

^移動到本行第一個非空白字元上。

0(數字0)移動到本行第一個字元上,

移動到本行第一個字元。同0健。

$移動到行尾3$移動到下面3行的行尾

gg移動到檔案頭。= [[

G(shift + g) 移動到檔案尾。= ]]

f(find)命令也可以用於移動,fx將找到游標後第一個為x的字元,3fd將找到第三個為d的字元。

F同f,反向尋找。

跳到指定行,冒號+行號,斷行符號,比如跳到240行就是:240斷行符號。另一個方法是行號+G,比如230G跳到230行。

Ctrl + e向下滾動一行

Ctrl + y向上滾動一行

Ctrl + d向下滾動半屏

Ctrl + u向上滾動半屏

Ctrl + f向下滾動一屏

Ctrl + b向上滾動一屏

撤銷和重做

u撤銷(Undo)

U撤銷對整行的操作

Ctrl + r重做(Redo),即撤銷的撤銷。

刪除命令

x刪除當前字元

3x刪除當前游標開始向後三個字元

X刪除當前字元的前一個字元。X=dh

dl刪除當前字元,dl=x

dh刪除前一個字元

dd刪除當前行

dj刪除上一行

dk刪除下一行

10d刪除當前行開始的10行。

D刪除當前字元至行尾。D=d$

d$刪除當前字元之後的所有字元(本行)

kdgg刪除當前行之前所有行(不包括當前行)

jdG(jd shift + g)刪除當前行之後所有行(不包括當前行)

:1,10d刪除1-10行

:11,$d刪除11行及以後所有的行

:1,$d刪除所有行

J(shift + j)  刪除兩行之間的空行,實際上是合并兩行。

拷貝和粘貼

yy拷貝當前行

nyy拷貝當前後開始的n行,比如2yy拷貝當前行及其下一行。

p在當前游標後粘貼,如果之前使用了yy命令來複製一行,那麼就在當前行的下一行粘貼。

shift+p在當前行前粘貼

:1,10 co 20將1-10行插入到第20行之後。

:1,$ co $將整個檔案複製一份並添加到檔案尾部。

正常模式下按v(逐字)或V(逐行)進入可視模式,然後用jklh命令移動即可選擇某些行或字元,再按y即可複製

ddp交換當前行和其下一行

xp交換當前字元和其後一個字元

剪下命令

正常模式下按v(逐字)或V(逐行)進入可視模式,然後用jklh命令移動即可選擇某些行或字元,再按d即可剪下

ndd剪下當前行之後的n行。利用p命令可以對剪下的內容進行粘貼

:1,10d將1-10行剪下。利用p命令可將剪下後的內容進行粘貼。

:1, 10 m 20將第1-10行移動到第20行之後。

退出命令

:wq儲存並退出

ZZ儲存並退出

:q!強制退出並忽略所有更改

:e!放棄所有修改,並開啟原來檔案。

視窗命令

:split或new開啟一個新視窗,游標停在頂層的視窗上

:split file或:new file用新視窗開啟檔案

split開啟的視窗都是橫向的,使用vsplit可以縱向開啟視窗。

Ctrl+ww移動到下一個視窗

Ctrl+wj移動到下方的視窗

Ctrl+wk移動到上方的視窗

關閉視窗

:close最後一個視窗不能使用此命令,可以防止意外退出vim。

:q如果是最後一個被關閉的視窗,那麼將退出vim。

ZZ儲存並退出。

關閉所有視窗,只保留當前視窗

:only

錄製宏

按q鍵加任意字母開始錄製,再按q鍵結束錄製(這意味著vim中的宏不可嵌套),使用的時候@加宏名,比如qa。。。q錄製名為a的宏,@a使用這個宏。

執行shell命令

:!command

:!ls列出目前的目錄下檔案

:!perl -c script.pl檢查perl指令碼文法,可以不用退出vim,非常方便。

:!perl script.pl執行perl指令碼,可以不用退出vim,非常方便。

:suspend或Ctrl - Z掛起vim,回到shell,按fg可以返回vim。

注釋命令

perl程式中#開始的行為注釋,所以要注釋某些行,只需在行首加入#

3,5 s/^/#/g注釋第3-5行

3,5 s/^#//g解除3-5行的注釋

1,$ s/^/#/g注釋整個文檔。

:%s/^/#/g注釋整個文檔,此法更快。

協助命令

:help or F1顯示整個協助

:help xxx顯示xxx的協助,比如:help i, :help CTRL-[(即Ctrl+[的協助)。

:help 'number' Vim選項的協助用單引號括起

:help 特殊鍵的協助用<>擴起

:help -t Vim啟動參數的協助用-

:help i_插入模式下Esc的協助,某個模式下的協助用模式_主題的模式

協助檔案中位於||之間的內容是超連結,可以用Ctrl+]進入連結,Ctrl+o(Ctrl + t)返回

其他非編輯命令

.重複前一次命令

:set ruler?  查看是否設定了ruler,在.vimrc中,使用set命令設制的選項都可以通過這個命令查看

:scriptnames  查看vim指令檔的位置,比如.vimrc檔案,文法檔案及plugin等。

:set list顯示非列印字元,如tab,空格,行尾等。如果tab無法顯示,請確定用set lcs=tab:>-命令設定了.vimrc檔案,並確保你的檔案中的確有tab,如果開啟了expendtab,那麼tab將被擴充為空白格。

Vim教程

在Unix系統上

$ vimtutor

在Windows系統上

:help tutor

:syntax列出已經定義的文法項

:syntax clear清除已定義的文法規則

:syntax case match大小寫敏感,int和Int將視為不同的文法元素

:syntax case ignore大小寫無關,int和Int將視為相同的文法元素,並使用同樣的色彩配置

vi使用方法詳細介紹

vi編輯器是所有Unix及Linux系統下標準的編輯器,它的強大不遜色於任何最新的文字編輯器,這裡只是簡單地介紹一下它的用法和一小部分指令。由於對Unix及Linux系統的任何版本,vi編輯器是完全相同的,因此您可以在其他任何介紹vi的地方進一步瞭解它。Vi也是Linux中最基本的文字編輯器,學會它後,您將在Linux的世界裡暢行無阻。

1、vi的基本概念

  基本上vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下:

1) 命令列模式command mode)

  控制螢幕游標的移動,字元、字或行的刪除,移動複製某區段及進入Insert mode下,或者到 last line mode。

2) 插入模式(Insert mode)

  只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令列模式。

3) 底行模式(last line mode)

  將檔案儲存或退出vi,也可以設定編輯環境,如尋找字串、列出行號……等。

不過一般我們在使用時把vi簡化成兩個模式,就是將底行模式(last line mode)也算入命令列模式command mode)。

2、vi的基本操作

a) 進入vi

 在系統提示符號輸入vi及檔案名稱後,就進入vi全螢幕編輯畫面:  

 $ vi myfile

  不過有一點要特別注意,就是您進入vi之後,是處於「命令列模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。初次使用vi的人都會想先用上下左右鍵移動游標,結果電腦一直嗶嗶叫,把自己氣個半死,所以進入vi後,先不要亂動,轉換到「插入模式(Insert mode)」再說吧!

b) 切換至插入模式(Insert mode)編輯檔案

在「命令列模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。

c) Insert 的切換

您目前處於「插入模式(Insert mode)」,您就只能一直輸入文字,如果您發現輸錯了字!想用游標鍵往回移動,將該字刪除,就要先按一下「ESC」鍵轉到「命令列模式(command mode)」再刪除文字。

d) 退出vi及儲存檔案

在「命令列模式(command mode)」下,按一下「:」冒號鍵進入「Last line mode」,例如:

: w filename (輸入 「w filename」將文章以指定的檔案名稱filename儲存)
: wq (輸入「wq」,存檔並退出vi)
: q! (輸入q!, 不存檔強制退出vi)

3、命令列模式(command mode)功能鍵

1). 插入模式

按「i」切換進入插入模式「insert mode」 按"i"進入插入模式後是從游標當前位置開始輸入檔案
按「a」進入插入模式後 是從目前游標所在位置的下一個位置開始輸入文字
按「o」進入插入模式後 是插入新的一行,從行首開始輸入文字

2). 從插入模式切換為命令列模式

按「ESC」鍵。

3). 移動游標

 按「ctrl」+「b」 螢幕往"後"移動一頁 按「ctrl」+「f」 螢幕往"前"移動一頁
按「ctrl」+「u」 螢幕往"後"移動半頁。 按「ctrl」+「d」 螢幕往"前"移動半頁
按數字「0」 移到文章的開頭  按「G」 移動到文章的最後
按「$」 移動到游標所在行的"行尾"  按「^」 移動到游標所在行的"行首"
按「w」 游標跳到下個字的開頭 按「e」 游標跳到下個字的字尾
按「b」 游標回到上個字的開頭 按「#l」 游標移到該行的第#個位置,如:5l,56l。

  vi可以直接用鍵盤上的游標來上下左右移動,但正規的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制游標左、下、上、右移一格。

4). 刪除文字

「x」 每按一次,刪除游標所在位置的"後面"一個字元
「#x」 例如,「6x」表示刪除游標所在位置的"後面"6個字元
「X」 大寫的X,每按一次,刪除游標所在位置的"前面"一個字元
「#X」 例如,「20X」表示刪除游標所在位置的"前面"20個字元
「dd」 刪除游標所在行
「#dd」 從游標所在行開始刪除#行

5). 複製

「yw」 將游標所在之處到字尾的字元複製到緩衝區中
「#yw」 複製#個字到緩衝區
「yy」 複製游標所在行到緩衝區
「#yy」 例如,「6yy」表示拷貝從游標所在的該行"往下數"6行文字
「p」 將緩衝區內的字元貼到游標所在位置。注意:所有與"y"有關的複製命令都必須與"p"配合才能完成複製與粘貼功能

6). 替換

 「r」 替換游標所在處的字元。
 「R」 替換游標所到之處的字元,直到按下「ESC」鍵為止

7). 回複上一次操作

  「u」:如果您誤執行一個命令,可以馬上按下「u」,回到上一個操作。按多次"u"可以執行多次回複。

8). 更改

「cw」 更改游標所在處的字到字尾處
「c#w」 例如,「c3w」表示更改3個字

9). 跳至指定的行

  「ctrl」+「g」列出游標所在行的行號。

  「#G」:例如,「15G」,表示移動游標至文章的第15行行首。

4、Last line mode下命令簡介

  在使用「last line mode」之前,請記住先按「ESC」鍵確定您已經處於「command mode」下後,再按「:」冒號即可進入「last line mode」。

A) 列出行號

 「set nu」 輸入「set nu」後,會在檔案中的每一行前面列出行號

B) 跳到檔案中的某一行

 「#」:「#」號表示一個數字,在冒號後輸入一個數字,再按斷行符號鍵就會跳到該行了,如輸入數字15,再斷行符號,就會跳到文章的第15行。

C) 尋找字元

 「/關鍵字」:先按「/」鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往後尋找到您要的關鍵字為止。

 「?關鍵字」:先按「?」鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關鍵字為止。

D) 儲存檔案

 「w」 在冒號輸入字母「w」就可以將檔案儲存起來。 「E」 離開vi
「q」 按「q」就是退出,如果無法離開vi,可以在「q」後跟一個「!」強制離開vi 「qw」

一般建議離開時,搭配「w」一起使用,

這樣在退出的時候還可以儲存檔案

5、vi命令列表

1、下表列出命令模式下的一些鍵的功能:

l

右移游標一個字元 k 游標上移一行

h

左移游標一個字元 j 游標下移一行

^

游標移動至行首 0 數字"0",游標移至文章的開頭

G

游標移至文章的最後 $ 游標移動至行尾

Ctrl+f

向前翻屏 Ctrl+b 向後翻屏

Ctrl+d

向前翻半屏 Ctrl+u 向後翻半屏

i

在游標位置前插入字元 a 在游標所在位置的後一個字元開始增加

o

插入新的一行,從行首開始輸入 ESC 從輸入狀態退至命令狀態

x

刪除游標後面的字元 #x 刪除游標後的#個字元

X

(大寫X),刪除游標前面的字元 #X 刪除游標前面的#個字元

dd

刪除游標所在的行 #dd 刪除從游標所在行數的#行

yw

複製游標所在位置的一個字 #yw 複製游標所在位置的#個字

yy

複製游標所在位置的一行 #yy 複製從游標所在行數的#行

p

粘貼 u 取消操作

cw

更改游標所在位置的一個字 #cw 更改游標所在位置的#個字

2、下表列出行命令模式下的一些指令

w filename 儲存正在編輯的檔案為filename
wq filename 儲存正在編輯的檔案為filename,並退出vi
q! 放棄所有修改,退出vi
set nu 顯示行號
/或? 尋找,在/後輸入要尋找的內容
n 與/或?一起使用,如果尋找的內容不是想要找的關鍵字,按n或向後(與/聯用)或向前(與?聯用)繼續尋找,直到找到為止。

對於第一次用vi,有幾點注意要提醒一下:

1、用vi開啟檔案後,是處於「命令列模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。切換方法:在「命令列模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。

2、編輯好後,需從插入模式切換為命令列模式才能對檔案進行儲存,切換方法:按「ESC」鍵。

3、儲存並退出檔案:在命令模式下輸入:wq即可!(別忘了wq前面的)

vi使用手冊

VI是unix上最常用的文本編輯工具,作為unix軟體測試人員,有必要熟練掌握它。

進入vi的命令

vi filename 開啟或建立檔案,並將游標置於第一行首
vi +n filename 開啟檔案,並將游標置於第n行首
vi + filename 開啟檔案,並將游標置於最後一行首
vi +/pattern filename 開啟檔案,並將游標置於第一個與pattern匹配的串處
vi -r filename 在上次正用vi編輯時發生系統崩潰,恢複filename
vi filename....filename 開啟多個檔案,依次編輯

移動游標類命令

h 游標左移一個字元 l 游標右移一個字元
space 游標右移一個字元 Backspace 游標左移一個字元
k或Ctrl+p 游標上移一行 j或Ctrl+n 游標下移一行
Enter 游標下移一行 w或W 游標右移一個字至字首
b或B 游標左移一個字至字首 e或E

游標右移一個字j至字尾

) :游標移至句尾

( :游標移至句首

}:游標移至段落開頭

{:游標移至段落結尾

nG 游標移至第n行首 n+ 游標下移n行
n- 游標上移n行 n$ 游標移至第n行尾
H 游標移至螢幕頂行 M 游標移至螢幕中間行
L 游標移至螢幕最後行 0 (注意是數字零)游標移至當前行首
$ 游標移至當前行尾    

螢幕翻滾類命令

Ctrl+u 向檔案首翻半屏 Ctrl+d 向檔案尾翻半屏
Ctrl+f 向檔案尾翻一屏 Ctrl+b 向檔案首翻一屏
nz 將第n行滾至螢幕頂部,不指定n時將當前行滾至螢幕頂部    

插入文本類命令

i 在游標前 I 在當前行首
a 游標後 A 在當前行尾
o 在當前行之下新開一行 O 在當前行之上新開一行
r 替換當前字元 R 替換當前字元及其後的字元,直至按ESC鍵
s 從當前游標位置處開始,以輸入的文本替代指定數目的字元 S 刪除指定數目的行,並以所輸入文本代替之
ncw或nCW 修改指定數目的字 nCC 修改指定數目的行

刪除命令

ndw或ndW 刪除游標處開始及其後的n-1個字 do 刪至行首
d$ 刪至行尾 ndd 刪除當前行及其後n-1行
x或X 刪除一個字元,x刪除游標後的,而X刪除游標前的 Ctrl+u 刪除輸入方式下所輸入的文本

搜尋及替換命令 :

/pattern 從游標開始處向檔案尾搜尋pattern
?pattern 從游標開始處向檔案首搜尋pattern
n 在同一方向重複上一次搜尋命令
N

:在反方向上重複上一次搜尋命令

:s/p1/p2/g:將當前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:將檔案中所有p1均用p2替換

選項設定

all 列出所有選項設定情況 term 設定終端類型
ignorance 在搜尋中忽略大小寫 list 顯示製表位(Ctrl+I)和行尾標誌($)
number 顯示行號 report 顯示由面向行的命令修改過的數目
terse 顯示簡短的警告資訊 warn 在轉到別的檔案時若沒儲存當前檔案則顯示NO write資訊
nomagic 允許在搜尋模式中,使用前面不帶“\”的特殊字元 nowrapscan 禁止vi在搜尋到達檔案兩端時,又從另一端開始
mesg 允許vi顯示其他使用者用write寫到自己終端上的資訊    

最後行方式命令

:n1,n2 co n3 將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3 將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d 將n1行到n2行之間的內容刪除
:w 儲存當前檔案
:e filename 開啟檔案filename進行編輯
:x 儲存當前檔案並退出
:q 退出vi
:q! 不儲存檔案並退出vi
:!command 執行shell命令command
:n1,n2 w!command 將檔案中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個檔案內容作為command的輸入
:r!command 將命令command的輸出結果放到當前行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.