vim可以分為三種狀態,分別是 命令行模式(command mode) 、 輸入模式(Insert mode) 和 底行模式(last line mode) ,這 3 種工作模式可隨意切換,如下圖所示。
使用vim編輯文件時,默認處於命令行模式。此模式下,可使用方向鍵(上、下、左、右鍵)或 k、j、h、i 移動游標的位置,還可以對文件內容進行復制、粘貼、替換、刪除等操作。
下圖所示是vim處於命令行模式的狀態示意圖。
在輸入模式下,vim可以對文件執行寫操作,類似於在Windows系統的文檔中輸入內容。
使vim進行輸入模式的方式是在命令模式狀態下輸入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具體功能下表所示),當編輯文件完成後按 esc 鍵即可返回命令模式。
下圖所示為vim處於輸入模式模式下的示意圖。
底行模式用於對文件中的指定內容執行保存、查找或替換等操作。
使vim切換到底行模式的方法是在 命令行模式 狀態下按 : 鍵(注意是英文符號),此時vim窗口的左下方出現一個 : 符號,這是就可以輸入相關指令進行操作了。
指令執行後vim會自動返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下圖所示為vim進入底行模式後的狀態。
對於新手來說,經常不知道自己處於什麼模式。不論是自己忘了,還是不小心切換了模式,都可以按一次 esc 鍵返回命令行模式。如果你多按幾次 esc 鍵後聽到"嘀————"的聲音,則代表你已經處於命令行模式了。
打開文件
打開文件時游標處於文件尾部
打開文件時,游標定位到第幾行
字元移動
這些移動鍵都可以加上數字(5h:向左移動5個字元格)
單詞移動
行內跳轉
行間移動
在底行模式下,直接給出行號,實現跳轉
用法:起始地址,結束地址 s @要替換內容@替換後內容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a換替換成A,全局替換
顯示取消行號
設定自動縮進(寫腳本時)
查找到的文本高亮顯示
語法高亮
/etc/vimrc :全局配置文件,永久有效
~/.vimrc :個人配置文件,每個用戶的家目錄中,若不存在,手動創建
對於第一次用vim的童鞋,有幾點需要提醒一下:
② vim模式與模式切換vim命令模式
vim有三種模式,本文介紹VIM模式與vim模式切換的方法。
vim命令 模式, 編輯模式 , 尾行模式 和文本編輯命令。
Vim編輯模式插入字元,行尾、行首插入,刪除一個字元和刪除整行命令,Vim復制和粘貼命令,vim替換輸入以及撤銷和反撤銷命令,Vim保存和另存為文件,顯示vim當前編輯文件名。
我們使用vim編輯器的常用文件操作主要是:插入、刪除、復制、粘貼、替換、撤銷、保存、另存為。
在介紹Vim中的上述基本文件操作命令前,需要先介紹下vim的操作模式。因為vim的各種對文件操作命令需要在不同操作模式下使用。
一、Vim三種操作模式
Vim編輯器一共有3種模式,分別為 命令模式 (默認)、編輯模式、尾行模式。這3種模式的轉換關系如下圖所示。
vim三種模式
1 命令模式(command mode)
命令模式是Vim的默認操作模式,當使用vim命令打開一個文件時,默認進入的就是命令模式。不管用戶處於何種模式,只要按下Esc鍵就可使進入命令行模式
2 編輯模式(input mode)
只有在vim編輯模式下,才能將鍵盤鍵入的內容輸入到當前打開的文件中
在命令模式下輸入插入命令i(insert)、附加命令a (append)、打開命令o(open)、修改命令c(change)、取代命令r或替換命令s都可以進入文本編輯模式
3 尾行模式(last line mode)
尾行模式主要用於保存文件或退出Vim,同時也可以設置編輯環境和一些編譯工作,如列出行號(set nu)、尋找字元串(/target)等
在命令模式下,用戶按冒號鍵(:)即可進入末行模式下,此時Vi會在顯示窗口的最後一行顯示一個」:「作為末行模式的提示符,等待用戶輸入命令
二、Vim文本編輯命令
約定:在沒有特殊說明的情況下,以下Vim編輯命令部分提到的命令均是在命令模式下使用。
1 vim插入命令
在命令模式下按以下按鍵可進入編輯模式,執行插入操作,具體包括:
從游標當前所在行的【行首】處開始插入:I
從游標當前所在行的【行尾】處開始插入:A
從游標當前所在行的【下一行】處開始插入:o
從游標當前所在行的【上一行】處開始插入:O
從游標當前所在位置的【前】一個字元處開始插入:i
從游標當前所在位置的【後】一個字元處開始插入:a
tips:i (insert)是在當前位置插入,a (append)表示是在後面追加
2 vim刪除命令
在命令模式下按以下按鍵可執行刪除操作,具體包括:
刪除從游標所在位置到當前【單詞結束】部分的內容並進入插入模式:cw、cW
刪除從游標所在位置到當前【單詞開始】部分的內容並進入插入模式:cb、cB
刪除從游標所在位置到當前【單詞結束】部分的內容但不進入插入模式:dw、dW
刪除從游標所在位置到當前【單詞開始】部分的內容但不進入插入模式:db、dB
刪除游標位置的【一個】字元:x
刪除當前游標所在【行】:dd
刪除從游標所在位置到當前【行首】的內容:d0
刪除從游標所在位置到當前【行尾】的內容:d$
tips:
(1) Vim的命令中,0 表示行首,$ 表示行尾,更多內容可參考卡拉圖Vim操作范圍、文件范圍介紹
(2) w(word)、b(back)命令用於游標移動,具體可參考卡拉圖:vim游標移動命令匯總
(3) cW、cB、dW、dB 命令操作的單詞是以空白字元(空格、Tab)分隔的字元串
刪除當前【段落】從游標位置開始到【段末】的內容:d}
刪除當前【段落】從游標位置開始到【段首】的內容:d{
刪除當前【句子】從游標位置開始到【句末】的內容:d)
刪除當前【句子】從游標位置開始到【句首】的內容:d(
tips:Vim命令中用 ( 和 ) 表示句子,{ 和 } 表示段落
3 vim復制命令、vim粘貼命令
在命令模式下按以下按鍵可執行復制、粘貼操作,具體包括:
將最後一次刪除或復制操作的文本內容粘貼到游標所在字元之【後】:p
將最後一個刪除或復制操作的文本內容粘貼到游標當前字元之【前】:P
復制從游標所在位置到當前【單詞結束】部分的內容:yw
復制游標所在【行】的所有字元 (包含換行符):yy
tips:yyp 操作可以實現復制一整行內容到當前所在行的下一行
4 vim替換命令
在命令模式下按以下按鍵後,再輸入字元可替換原始文件中的內容
一直替換游標所在字元,直到按下[ESC]鍵為止:R
刪除、復制操作的操作單位可以加操作次數,操作對象的范圍為:操作次數 * 操作單位
替換游標當前所在字元一次:r
例如:d3w命令表示刪除三個單詞,10dd命令表示從游標所在行開始刪除後面的十行,更多內容可以參考Vim中的操作符和動作命令。
5 vim撤銷命令、vim回退反撤銷命令
在命令模式下可執行撤銷操作
撤銷最近的一次操作:u
恢復最近的一次操作(取消撤銷):<Ctrl> + r
tips:多次執行u 命令可以連續撤銷最近的操作
6 vim保存命令
在尾行模式下執行以下命令可保存當前編輯的文件內容
保存當前編輯的文件::w
保存當前編輯的文件並退出vim::wq
強制將當前編輯的文件保存::w!
tips:上述操作是在尾行模式下執行的,所以命令都是以:開頭
7 vim另存為命令
在尾行模式下執行命令 :w a.txt 可將vim當前打開的文件另存為新文件a.txt.
tips:w(write) 表示將文件存檔,: 表示尾行模式命令。
8 vim顯示當前文件名的方法
命令 <Ctrl> + g 可顯示當前編輯文件名及行數,可以在不退出 Vim 的情況下了解當前編輯文件的信息,更多內容,可參考30個vim常用命令和使用 vim技巧 。
Vim入門級文件編輯命令匯總就先介紹到這里了,更多Vim文件編輯命令和Vim相關操作可閱讀本站其它文章內容。
③ Linux中vi、vim命令大全
一、一般模式:刪除、復制與粘貼類命令
x,X
x為向後刪除一個字元,X為先前刪除一個字元
nx(n代表數字)
向後刪除n個字元
dd
刪除當前行
D
刪除當前行所有字元,試成為空行
ndd(n代表數字)
刪除游標所在行的向下n列
d1G
刪除游標所在行到第一行的所有數據
dG
刪除游標所在行到最後一行的所有數據
yy
復制游標所在行
y1G
復制游標所在行到第一行的所有數據
yG
復制游標所在行到最後一行的所有數據
ynj(n代表數字)
復制游標所在行向下n+1行
dnj(n代表數字)
刪除游標所在行向下n+1行
p,P
p為復制的數據粘貼在游標的下一行,P為復制的數據粘貼在游標的上一行
J
將游標所在行與下一行的數據結合成一行
u
恢復前一個動作(undo)
二、編輯模式命令
i,I
i為在當前游標所在處插入輸入的文字,I為在游標所在行第一個非空字元插入輸入的文字
a,A
a為在當前游標所在處下一個字元插入輸入的文字,A為在游標所在行最後一個字元的下一個字元處插入輸入的文字
o,O
o為在游標所在行的下一行行首開始插入字元,O為在游標所在行的上一行行首開始插入字元
r,R
r為替換游標所在那一個字元,R為一直替換游標所指的文字,直到退出
Esc
退出,回到一般模式
三、命令模式
h
游標向左移一個字元
j
游標向下移一個字元
k
游標向上移一個字元
l
游標向右移一個字元
Ctrl+f
屏幕向下翻一頁
Ctrl+b
屏幕向上翻一頁
Ctrl+d
屏幕向下翻半頁
Ctrl+u
屏幕向上翻半頁
+
游標移動到下一行的第一個非空字元
-
游標移動到當前行的第一個非空字元
n空格(n代表數字)
游標向當前行向右移動n個字元
0(數字0)
游標移動到當前行的第一個字元(可以為空字元,注意與-區分)
$
游標移動到當前行的最後一個字元(可以為空字元,注意與-區分)
H
游標移動到當前屏幕最上方的那一行的第一個非空字元
M
游標移動到當前屏幕最中間那一行的第一個非空字元
L
游標移動到當前屏幕最下方的那一行的第一個非空字元
G
游標移動到該文章最後一行的第一個非空字元
nG(n代表數字)
游標移動到該文章第n行的第一個非空字元
n
游標從當前行向下移動n行的第一個非空字元
/word
在游標之後查找word字元串
?word
在游標之前查找word字元串
:s/word1/word2/g
在游標當前行查找word1,並替換成word2
:n1,n2s/word1/word2/g
在第n1行與第n2行之間查找word1,並替換成word2
:%s/word1/word2/g
整個文章查找word1,並替換成word2
:w
將編輯的數據保存到硬碟文件中
:w
[filename]
將編輯後的數據保存到硬碟的另一個文件中
:r
[filename]
在編輯數據時,讀入另一個文件中的數據,即將filename文件中的內容加到游標所在行下一行
:wq或:x
保存並退出
:q
退出,適用於未修改的文件
:q!
強制退出,適用於修改文件後不保存退出
:set
nu
顯示行號
:set
nonu
取消行號
:n1,n2
w
[filename]
將n1到n2行的內容保存到名為filename的文件中
④ vim的使用方法
命令模式:控制游標移動,可對文本進行復制、粘貼、刪除和查找等工作。
輸入模式:正常的文本錄入。
末行模式:保存或退出文檔,以及設置編輯環境。
在每次運行Vim編輯器時,默認進入命令模式,此時需要先切換到輸入模式後再進行文檔編寫工作,而每次在編寫完文檔後需要先返回命令模式,然後再進入末行模式,執行文檔的保存或退出操作。在Vim中,無法直接從輸入模式切換到末行模式。Vim編輯器中內置的命令有成百上千種用法,為了能夠幫助讀者更快地掌握Vim編輯器,表4-1總結了在命令模式中最常用的一些命令。
表4-1 Vim中常用的命令
編輯
命令 作用
dd 刪除(剪切)游標所在整行
5dd 刪除(剪切)從游標處開始的5行
yy 復制游標所在整行
5yy 復制從游標處開始的5行
n 顯示搜索命令定位到的下一個字元串
N 顯示搜索命令定位到的上一個字元串
u 撤銷上一步的操作
p 將之前刪除(dd)或復制(yy)過的數據粘貼到游標後面
末行模式主要用於保存或退出文件,以及設置Vim編輯器的工作環境,還可以讓用戶執行外部的Linux命令或跳轉到所編寫文檔的特定行數。要想切換到末行模式,在命令模式中輸入一個冒號就可以了。Vim文本編輯器
命令 作用
:w 保存
:q 退出
:q! 強制退出(放棄對文檔的修改內容)
:wq! 強制保存退出
:set nu 顯示行號
:set nonu 不顯示行號
:命令 執行該命令
:整數 跳轉到該行
:s/one/two 將當前游標所在行的第一個one替換成two
:s/one/two/g 將當前游標所在行的所有one替換成two
:%s/one/two/g 將全文中的所有one替換成two
?字元串 在文本中從下至上搜索該字元串
/字元串
⑤ vim編輯器命令
如果想獲得游標所在行的行號,用 line('.')。如果是想獲得列號是 col('.')。
map 的時候也許 execute 這個命令會比較有用。詳見 :h 的說明。
如果樓主可以舉個比較具體的例子,我們可以給你寫一個參照。相信樓主看了會知道大概這些東西怎麼使。
⑥ 如何讓vim編輯器永久顯示行號和命令大全
在Linux環境下的編輯器有vi、vim、gedit等等。進入這些編輯器之後,為了方便我們需要編輯器顯示出當前的行號,可偏偏編輯器默認是不會顯示行號的。我們有二種辦法可以解決:
第一種是,手動顯示:在vim命令行模式下輸入 :set nu
取消顯示:在vim命令行模式下輸入: set nonu
第二種是,永久自動顯示:我們修改一個配置文件。
我們輸入命令:vim ~/.vimrc
打開後是一個空文件,我們添加 set nu,保存退出,再次進入vim編輯器,就會自動顯示出行號了。如此簡單
⑦ vim編輯器的常用命令,全部
這是個vim教程,可以直接修改操作。由於字數限制,給個郵箱,發給你。
vim 是一個具有很多命令的功能非常強大的編輯器。限於篇幅,在本教程當中
就不詳細介紹了。本教程的設計目標是講述一些必要的基本命令,而掌握好這
些命令,您就能夠很容易將vim當作一個通用的萬能編輯器來使用了。
完成本教程的內容大約需要25-30分鍾,取決於您訓練的時間。
每一節的命令操作將會更改本文。推薦您復制本文的一個副本,然後在副本上
進行訓練(如果您是通過vimtutor來啟動教程的,那麼本文就已經是副本了)。
切記一點∶本教程的設計思路是在使用中進行學習的。也就是說,您需要通過
執行命令來學習它們本身的正確用法。如果您只是閱讀而不操作,那麼您可能
會很快遺忘這些命令的!
好了,現在請確定您的Shift-Lock(大小寫鎖定鍵)還沒有按下,然後按鍵盤上
的字母鍵 j 足夠多的次數來移動游標,直到第一節的內容能夠完全充滿屏幕。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一講第一節∶移動游標
※※ 要移動游標,請依照說明分別按下 h、j、k、l 鍵。 ※※
^
k 提示∶ h 的鍵位於左邊,每次按下就會向左移動。
h l l 的鍵位於右邊,每次按下就會向右移動。
j j 鍵看起來很象一支尖端方向朝下的箭頭。
v
1. 請隨意在屏幕內移動游標,直至您覺得舒服為止。
2. 按下下行鍵(j),直到出現游標重復下行。
--- 現在您應該已經學會如何移動到下一講吧。
3. 現在請使用下行鍵,將游標移動到第二講。
提示∶如果您不敢確定您所按下的字母,請按下ESC鍵回到正常(Normal)模式。
然後再次從鍵盤輸入您想要的命令。
提示∶游標鍵應當也能正常工作的。但是使用hjkl鍵,在習慣之後您就能夠快速
地在屏幕內四處移動游標了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一講第二節∶VIM的進入和退出
!! 特別提示∶敬請閱讀完整本一節的內容,然後才能執行以下所講解的命令。
1. 請按ESC鍵(這是為了確保您處在正常模式)。
2. 然後輸入∶ q! 回車
--- 這種方式的退出編輯器絕不會保存您進入編輯器以來所做的改動。
如果您想保存更改再退出,請輸入∶
wq 回車
3. 如果您看到了命令行提示符,請輸入能夠帶您回到本教程的命令,那就是∶
vimtutor 回車
通常情況下您也可以用這種方式∶
vim tutor 回車
--- 這里的 'vim' 表示進入vim編輯器,而 'tutor'則是您准備要編輯的文件。
4. 如果您自信已經牢牢記住了這些步驟的話,請從步驟1執行到步驟3退出,然
後再次進入編輯器。接著將游標移動到第一講第三節來繼續我們的教程講解。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一講第三節∶文本編輯之刪除
在正常(Normal)模式下,可以按下 x 鍵來刪除游標所在位置的字元。
1. 請將游標移動到本節中下面標記有 --- 的那一行。
2. 為了修正輸入錯誤,請將游標移至准備刪除的字元的位置處。
3. 然後按下 x 鍵將錯誤字元刪除掉。
4. 重復步驟2到步驟4,直到句子修正為止。
--- The ccow jumpedd ovverr thhe mooon.
5. 好了,該行已經修正了,下一節內容是第一講第四節。
特別提示∶在您瀏覽本教程時,不要強行記憶。記住一點∶在使用中學習。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一講第四節∶文本編輯之插入
在正常模式下,可以按下 i 鍵來插入文本。
1. 請將游標移動到本節中下面標記有 --- 的第一行。
2. 為了使得第一行內容雷同於第二行,請將游標移至文本第一個字元准備插入
的位置。
3. 然後按下 i 鍵,接著輸入必要的文本字元。
4. 所有文本都修正完畢,請按下 ESC 鍵返回正常模式。
重復步驟2至步驟4以便修正句子。
--- There is text misng this .
--- There is some text missing from this line.
5. 如果您對文本插入操作已經很滿意,請接著閱讀下面的小結。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一講小結
1. 游標在屏幕文本中的移動既可以用箭頭鍵,也可以使用 hjkl 字母鍵。
h (左移) j (下行) k (上行) l (右移)
2. 欲進入vim編輯器(從命令行提示符),請輸入∶vim 文件名 回車
3. 欲退出vim編輯器,請輸入以下命令放棄所有修改∶
ESC q! 回車
或者輸入以下命令保存所有修改∶
ESC wq 回車
4. 在正常模式下刪除游標所在位置的字元,請按∶ x
5. 在正常模式下要在游標所在位置開始插入文本,請按∶
i 輸入必要文本 ESC
特別提示∶按下 ESC 鍵會帶您回到正常模式或者取消一個不期望或者部分完成
的命令。
好了,第一講到此結束。下面接下來繼續第二講的內容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二講第一節∶刪除類命令
輸入 dw 可以從游標處刪除至一個單字單詞的末尾。
1. 請按下 ESC 鍵確保您處於正常模式。
2. 請將游標移動到本節中下面標記有 --- 的那一行。
3. 請將游標移至准備要刪除的單詞的開始。
4. 接著輸入 dw 刪除掉該單詞。
特別提示∶您所輸入的 dw 會在您輸入的同時出現在屏幕的最後一行。如果您輸
入有誤,請按下 ESC 鍵取消,然後重新再來。
--- There are a some words fun that don't belong paper in this sentence.
5. 重復步驟3至步驟4,直至句子修正完畢。接著繼續第二講第二節內容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二講第二節∶其他刪除類命令
輸入 d$ 從當前游標刪除到行末。
1. 請按下 ESC 鍵確保您處於正常模式。
2. 請將游標移動到本節中下面標記有 --- 的那一行。
3. 請將游標移動到該行的尾部(也就是在第一個點號『.』後面)。
4. 然後輸入 d$ 從游標處刪至當前行尾部。
--- Somebody typed the end of this line twice. end of this line twice.
5. 請繼續學習第二講第三節就知道是怎麼回事了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二講第三節∶關於命令和對象
刪除命令 d 的格式如下∶
[number] d object 或者 d [number] object
其意如下∶
number - 代表執行命令的次數(可選項,預設設置為 1 )。
d - 代表刪除。
object - 代表命令所要操作的對象(下面有相關介紹)。
一個簡短的對象列表∶
w - 從當前游標當前位置直到單字單詞末尾,包括空格。
e - 從當前游標當前位置直到單字單詞末尾,但是 不 包括空格。
$ - 從當前游標當前位置直到當前行末。
特別提示∶
對於勇於探索者,請在正常模式下面僅按代表相應對象的鍵而不使用命令,則
將看到游標的移動正如上面的對象列表所代表的一樣。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二講第四節∶對象命令的特殊情況
輸入 dd 可以刪除整一個當前行。
鑒於整行刪除的高頻度,VIM 的設計者決定要簡化整行刪除,僅需要在同一行上
擊打兩次 d 就可以刪除掉游標所在的整行了。
1. 請將游標移動到本節中下面的短句段落中的第二行。
2. 輸入 dd 刪除該行。
3. 然後移動到第四行。
4. 接著輸入 2dd (還記得前面講過的 number-command-object 嗎?) 刪除兩行。
1) Roses are red,
2) Mud is fun,
3) Violets are blue,
4) I have a car,
5) Clocks tell time,
6) Sugar is sweet
7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二講第五節∶撤消類命令
輸入 u 來撤消最後執行的命令,輸入 U 來修正整行。
1. 請將游標移動到本節中下面標記有 --- 的那一行,並將其置於第一個錯誤
處。
2. 輸入 x 刪除第一個不想保留的字母。
3. 然後輸入 u 撤消最後執行的(一次)命令。
4. 這次要使用 x 修正本行的所有錯誤。
5. 現在輸入一個大寫的 U ,恢復到該行的原始狀態。
6. 接著多次輸入 u 以撤消 U 以及更前的命令。
7. 然後多次輸入 CTRL-R (先按下 CTRL 鍵不放開,接著輸入 R 鍵) ,這樣就
可以執行恢復命令,也就是撤消掉撤消命令。
--- Fiix the errors oon thhis line and reeplace them witth undo.
8. 這些都是非常有用的命令。下面是第二講的小結了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二講小結
1. 欲從當前游標刪除至單字單詞末尾,請輸入∶dw
2. 欲從當前游標刪除至當前行末尾,請輸入∶d$
3. 欲刪除整行,請輸入∶dd
4. 在正常模式下一個命令的格式是∶
[number] command object 或者 command [number] object
其意是∶
number - 代表的是命令執行的次數
command - 代表要做的事情,比如 d 代表刪除
object - 代表要操作的對象,比如 w 代表單字單詞,$ 代表到行末等等。
$ (to the end of line), etc.
5. 欲撤消以前的操作,請輸入∶u (小寫的u)
欲撤消在一行中所做的改動,請輸入∶U (大寫的U)
欲撤消以前的撤消命令,恢復以前的操作結果,請輸入∶CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
⑧ VI和VIM命令的操作
vi編輯器是分為三種狀態的
h 或 向左箭頭鍵(←) 游標向左移動一個字元
j 或 向下箭頭鍵(↓) 游標向下移動一個字元
k 或 向上箭頭鍵(↑) 游標向上移動一個字元
l 或 向右箭頭鍵(→) 游標向右移動一個字元
[Ctrl] + [d] 屏幕『向下』移動半頁
[Ctrl] + [u] 屏幕『向上』移動半頁
0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字元處 (常用)
$ 或功能鍵[End] 移動到這一行的最後面字元處(常用)
gg 移動到這個檔案的第一行 (常用)
n<Enter> n 為數字。游標向下移動 n 行(常用)
n<space> 那個 n 表示『數字』,游標會向右移動這一行的 n 個字元。
n<Enter> n 為數字。游標向下移動 n 行(常用)
/word 向下尋找某個單詞
?word 向下尋找某個單詞
n 向下重復執行搜索命令
N 向上重復執行搜索命令
dd 刪除游標所在的整列
yy 復制游標所在那行
. 重復上一個動作
主要為一般模式到編輯模式的切換
i,I a,A o,O r,R 都可以實現到編輯模式的切換
其中r,R實現的是取代模式
Esc 為推出編輯模式回到常用模式
:w 編輯的數據寫入硬碟
:w! 如果未見為只讀的時候強制寫入
;q 離開
:q! 不儲存強制離開
:wq 儲存後離開
:wq! 儲存後強制離開
ZZ 若檔案沒有動過則直接離開,若檔案已動過則保存離開
:set nu 設置行號
:set nonu 取消行號
⑨ linux下vi編輯器命令大全
高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的:
:qx 開始記錄宏,並將結果存入寄存器x
q 退出記錄模式
@x 播放記錄在x寄存器中的宏命令
稍微解釋一下,當在normal模式下輸入:qx後,你對文本的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模
式,然後輸入@x對剛才記錄下來的命令進行重復,此命令後可跟數字,表示要重復多少次,比如@x20,可以重復20次。這個在文本的批處理中是非常有用的。
同時編輯多個文件
在vim眾多的插件中,有一個叫minibuffer的插件,就是下面所說的標簽頁功能了,可以支持同時編輯多個文件。
標簽命令
:tabe fn 在一個新的標簽頁中編輯文件fn
gt 切換到下一個標簽頁
gT 切換到上一個標簽頁
:tabr 切換到第一個標簽頁
:tabl 切換到最後一個標簽頁
:tabm [N] 把當前tab移動到第N個tab之後
對,正如你所想像的那樣,跟eclipse, ue等的標簽頁是一個意思!
窗口命令
ctrl+w s 水平分割窗口
ctrl+w w 切換窗口
ctrl+w q 退出當前窗口(由於同時有多個文件,此命令不會影響其他窗口)
ctrl+w v 垂直分割窗口
其他
vim在保存之前不會對文件做實際的修改,只是載入到緩沖區中,對文件的編輯其實是對緩沖區的編輯,直到:w時才會存入物理文件。
:e file 把file載入到新的緩沖區中
:bn 跳轉到下一個緩沖區
:bd 刪除緩沖區(關閉文件)
:sp fn 分割窗口,並將fn載入到新的窗口中
退出編輯器
:w 將緩沖區寫入文件,即保存修改
:wq 保存修改並退出
:x 保存修改並退出
:q 退出,如果對緩沖區進行過修改,則會提示
:q! 強制退出,放棄修改
查找替換
/pattern 向後搜索字元串pattern
?pattern 向前搜索字元串pattern
n 下一個匹配(如果是/搜索,則是向下的下一個,?搜索則是向上的下一個)
N 上一個匹配(同上)
:%s/old/new/g 搜索整個文件,將所有的old替換為new
:%s/old/new/gc 搜索整個文件,將所有的old替換為new,每次都要你確認是否替換
復制粘貼
dd 刪除游標所在行
dw 刪除一個字(word)
x 刪除當前字元
X 刪除前一個字元
D 刪除到行末
yy 復制一行,此命令前可跟數字,標識復制多行,如6yy,表示從當前行開始復制6行
yw 復制一個字
y$ 復制到行末
p 粘貼粘貼板的內容到當前行的下面
P 粘貼粘貼板的內容到當前行的上面
]p 有縮進的粘貼,vim會自動調節代碼的縮進
"a 將內容放入/存入a寄存器,可以支持多粘貼板
附:比如常用的一個寄存器就是系統寄存器,名稱為+,所以從系統粘貼板粘貼到vim中的命令為"+p,注意此處的+不表示操作符,二十一個寄存器。
移動游標
在vim中移動游標跟其他的編輯器中有很大的區別,不過一旦學會了,就會飛速的在文本中移動了。
h,j,k,l 上,下,左,右
ctrl-f 上翻一頁
ctrl-b 下翻一頁
% 跳到與當前括弧匹配的括弧處,如當前在{,則跳轉到與之匹配的}處
w 跳到下一個字首,按標點或單詞分割
W 跳到下一個字首,長跳,如end-of-line被認為是一個字
e 跳到下一個字尾
E 跳到下一個字尾,長跳
b 跳到上一個字
B 跳到上一個字,長跳
0 跳至行首,不管有無縮進,就是跳到第0個字元
^ 跳至行首的第一個字元
$ 跳至行尾
gg 跳至文件的第一行
gd 跳至當前游標所在的變數的聲明處
[N]G 跳到第N行,如0G,就等價於gg,100G就是第100行
fx 在當前行中找x字元,找到了就跳轉至
; 重復上一個f命令,而不用重復的輸入fx
tx 與fx類似,但是只是跳轉到x的前一個字元處
Fx 跟fx的方向相反
),( 跳轉到上/下一個語句
* 查找游標所在處的單詞,向下查找
# 查找游標所在處的單詞,向上查找
`. 跳轉至上次編輯位置
在屏幕上移動
H 移動游標到當前屏幕上最上邊的一行
M 移動游標到當前屏幕上中間的一行
L 移動游標到當前屏幕上最下邊的一行
書簽
ma 把當前位置存成標簽a
`a 跳轉到標簽a處
編輯
r 替換一個字元
J 將下一行和當前行連接為一行
cc 刪除當前行並進入編輯模式
cw 刪除當前字,並進入編輯模式
c$ 擦除從當前位置至行末的內容,並進入編輯模式
s 刪除當前字元並進入編輯模式
S 刪除游標所在行並進入編輯模式
xp 交換當前字元和下一個字元
u 撤銷
ctrl+r 重做
. 重復上一個編輯命令
~ 切換大小寫,當前字元
g~iw 切換當前字的大小寫
gUiw 將當前字變成大寫
guiw 將當前字變成小寫
>> 將當前行右移一個單位
<< 將當前行左移一個單位(一個tab符)
== 自動縮進當前行
插入模式
i 從當前游標處進入插入模式
I 進入插入模式,並置游標於行首
a 追加模式,置游標於當前游標之後
A 追加模式,置游標於行末
o 在當前行之下新加一行,並進入插入模式
O 在當前行之上新加一行,並進入插入模式
Esc 退出插入模式
可視模式
標記文本
v 進入可視模式,單字元模式
V 進入可視模式,行模式
ctrl+v 進入可視模式,列模式,類似於UE的列模式
o 跳轉游標到選中塊的另一個端點
U 將選中塊中的內容轉成大寫
O 跳轉游標到塊的另一個端點
aw 選中一個字
ab 選中括弧中的所有內容,包括括弧本身
aB 選中{}括弧中的所有內容
ib 選中括弧中的內容,不含括弧
iB 選中{}中的內容,不含{}
對標記進行動作
> 塊右移
< 塊左移
y 復制塊
d 刪除塊
~ 切換塊中內容的大小寫