1. 程式人生 > >LINUX學習—Vim編輯器

LINUX學習—Vim編輯器

Vim編輯器
  • 文字編輯器:編輯純ASCII的文件,沒有多餘的修飾符
  • 字處理器:除了基本的文字之外還儲存其他附加資訊
  • vim是一種全屏編輯器,模式化編輯器
vim模式:
1. 編輯模式(命令模式,執行命令),預設為該模式 
在該模式中,可以輸入命令來執行許多種功能,控制螢幕游標的移動,字元、字或行的刪除,移動複製某區段及進入insert mode下,或者到last line mode。
2. 輸入模式—輸入文字      vi被執行時,通常處在命令模式下,鍵入以下命令可以使vi退出命令模式,進入輸入模式:I(i)、A(a)、O(o)  
3. 末行模式-執行待定命令  
將檔案儲存或退出vi,也可以設定編輯環境,如尋找字串、列出行號...等。

模式轉換:
1. 編輯–>輸入:
- i:在當前游標所在字元的前面,轉為輸入模式;
- a:在當前游標所在字元的後面,轉為輸入模式;
- o:在當前游標所在行的下方,新建一行,並轉為輸入模式;

  • I:在當前游標所在行的行首,轉為輸入模式;
  • A:在當前游標所在行的行尾,轉為輸入模式;
  • O:在當前游標所在行的上方,新建一行,轉為輸入模式;

    1. 輸入–>編輯:
      ESC

    2. 末行模式:

      • 編輯–>末行: 輸入:即可
      • 末行–>編輯(esc)
一、開啟檔案
# vim /path/to/somefile  
    vim +n:表示開啟檔案並使游標定位在第n行的第一個字元上;  
    vim +:開啟檔案並定位在最後一行;  
    vim +/PATTERN:開啟檔案,定位至第一次被PATTERN匹配到的行的行首;  
二:關閉檔案

1:末行模式關閉檔案
- q:退出,不儲存退出;
- wq:儲存並退出;
- q!:不儲存並退出
- w:儲存
- !w:強行儲存(針對只讀檔案,這個命令主要是管理員用)
2、編輯模式下退出
ZZ:儲存並退出

三、 移動游標(編輯模式):

逐字元移動:
- h:左
- l:右
- j:下
- k:上
- #n:移動n個字元;

按單詞為單位移動
- w:移至下一個單詞詞首;
- e:跳至當前單詞或下一個單詞的詞尾;
- b:跳至當前單詞或下一個單詞的詞首;
- #n:支援命令加數字,

行內跳轉
- 0:絕對行首
- ^:行首的第一個非空白字元
- $:絕對行尾

行間跳轉
- nG:跳轉至第n行
- G:最後一行

末行模式下,直接給出行號即可;

四、翻屏
- CTRL+F:向下翻一屏  
- CTRL+b:向上翻一屏  
- CTRL+d:向下翻半屏
- CTRL+u:向上翻半屏  
五、刪除單個字元

x:刪除所在處的單個字元
nx:刪除游標所在處及向後的共n個字元

六、刪除命令:d

d命令和跳轉命令結合使用
如:dw,de,db,d$
dd:刪除游標所在行;

dd:包括游標所在內的#行;

末行模式下:
StartADD, EndADDddb
.:表示當前行
: -1:倒數第二行)
+數字:向下n行

七、貼上命令 p
p(小寫): 如果刪除或複製為整行內容,則貼上至游標所在行下方,如果複製或刪除的內容為非整行,則貼上至游標所在字元的後面;  
P(大寫):如果刪除或複製為整行內容,則貼上至游標所在行上方,如果複製或刪除的內容為非整行,則貼上至游標所在字元的前面;  
八、複製命令 y
用法同d命令  
九、修改:先刪除內容,再轉換為輸入模式(修改)
c:用法同d命令  
cc/c$
十、替換:r
R:替換模式,替換多個字元,ESC退出    
r:替換單個字元; 
十一、撤銷編輯操作u(undo)
u:撤銷前一次的操作  
    連續u命令可撤銷此前的n次操作,最多隻能撤銷50次  
    數字u:直接撤銷最近n次操作  

撤銷最近一次撤銷操作:ctrl+r

十二、重複前一次編輯操作.

.

十三、視覺化模式

v:按字元選取
V:按矩形選取,即選取整行

十四、查詢

/PATTERN:從當前游標向檔案尾部查詢
?PATTERN(支援正則表示式):從當前游標向檔案首部查詢
- N:往前跳轉
- n:往後跳轉

十五、查詢並替換

在末行模式下使用s命令(和sed一樣)
ADDR1起始地址,ADDR2結束地址[email protected]@[email protected]
1, $:表示全文
%:表示全文

十六、使用Vim編輯多個檔案

vim file1 file2 file3
- :next切換下一個檔案
- :prev切換至前一個檔案
- :last切換至最後一個檔案
- :first切換至第一個檔案
退出
- :qa 全部退出

十七、分屏顯示一個檔案

ctrl+w,鬆開後按,s:水平拆分視窗
ctrl+w,鬆開後按,v:垂直拆分視窗
:qa關閉所有視窗

十八、分視窗編輯多個檔案

vim -o:水平分割顯示
vim -O:垂直分割顯示

十九、將當前檔案中部分內容另存為另外一個檔案

末行模式下使用w命令
:w
格式(:ADDR1,ADDR2w /path/to/somewhere)

二十一、跟shell互動

:!COMMAND
ctrl+c結束shell模式

二十二、高階話題
  1. 顯示或取消顯示行號(僅對當前vim程序有效)
    :set number
    :set nu
    :set nonu

  2. 顯示忽略或區分字元大小寫
    :set ignorecase
    :set ic
    :set noic

  3. 設定自動縮排
    :set autoindent
    :set ai
    :set noai
  4. 查詢到的文字高亮顯示或取消
    :set hlsearch
    : set nohlsearch
  5. 語法高亮
    :syntax on
    : syntax off
二十三、配置檔案

/etc/vimrc:對所有使用者都生效
~/.vimrc:該使用者家目錄下隱藏檔案