VIM編輯器的使用方法詳解

來源:互聯網
上載者:User

標籤:vim

vim編輯器

文字編輯器,文書處理器

nano、sed

vi:Visual Interface(可視化介面)

vim:VI Improved

模式編輯器、全屏編輯器


一:開啟檔案

# vim /path/to/somefile

  • vim +# /path/to/somefile 開啟/path/to/somefile,並定位於檔案第#行

    • 例如1:開啟檔案/etc/inittab,游標在 18 行

      # vim +18 /etc/inittab

  • vim + /path/to/somefile  開啟/path/to/somefile,並定位於該檔案的底部

    • 例如1:開啟檔案/etc/inittab,游標在 最後一行

      # vim + /etc/inittab

  • vim +/PATTERN:開啟檔案,定位至第一次被PATTERN匹配到的行的行首

    • 如:vim +/:initdefault  /etc/inittab 

編輯模式/命令模式:複製、粘帖、刪除行...

輸入模式:輸入內容到檔案

末行模式:檔案管理命令

開啟vim編輯器,預設處於編輯模式。

模式之間是可以相互轉換的。

編輯 --> 輸入

  • i:在當前游標所在字元的前面,轉換為輸入模式;

  • a:在當前游標所在字元的後面,轉換為輸入模式;

  • o:在當前游標所在行的下面,建立一行,轉換為輸入模式;

大寫字母

  • I:在當前游標所在行的行首,轉換為輸入模式;

  • A:在當前游標所在行的行尾,轉換為輸入模式;

  • O:在當前游標所在行的上面,建立一行,轉換為輸入模式;

輸入 --> 編輯

  • ESC

編輯 --> 末行模式(只能從編輯模式進入)

  • : 輸入冒號即可

末行模式可以執行的命令:

  • 10d:刪除檔案中的第十行

  • 10,20d:刪除檔案中的第十行到第二十行;

  • set nu:顯示行號

  • ! ls /etc/:執行shell命令,不影響當前檔案編輯

末行模式 --> 編輯

  • ESC,ESC

輸入模式到末行模式不能直接轉換;


二:關閉檔案

  • 末行模式關閉檔案

    • :q:退出,不儲存,如果已經編輯了檔案內容,這樣無法退出,會提示你檔案已經發生了改變,讓你確認是否儲存

    • :wq:儲存並退出

    • :q!:不儲存退出

    • :w:儲存,不退出

    • :w!:強行儲存唯讀檔案(唯讀檔案對管理員root是不生效的,管理員可以使用w!強行儲存檔案)

    • :wq -- :x

  • 編輯/命令模式下退出檔案

    • ZZ:儲存退出(不用切換模式,就可以儲存退出)


三:移動游標(編輯/命令模式)

  • 逐字元移動:可以用上下左右鍵,也可以:

    • h:左

    • l:右

    • j:下

    • k:上

    • 數字加上上面的移動鍵,可以向對應方向移動 n 個字元或行

  • 逐單詞移動

    • w:向後移動到下個單詞的詞首

    • e:向後跳到當前或下一個單詞的詞尾

    • b:向前跳至當前或前一個單詞的詞首

    • 上述命令都支援加上數字,如:3w,4b,可以實現移動 n 個單詞

  • 行內跳轉/移動

    • 0:行首,絕對行首

    • ^:行首,行首的第一個非空白字元,相對行首

    • $:行尾,絕對行尾

  • 行間跳轉

    • G:跳至最後一行

    • #G:向下跳至第#行行首

末行模式下跳轉:直接給出行號,斷行符號即可


四、翻屏操作

  • Ctrl+f:向下翻一屏,向檔案尾部翻一屏

  • Ctrl+b:向上翻一屏,向檔案首部翻一屏

  • Ctrl+d:向下翻半屏

  • Ctrl+u:向上翻半屏


五、刪除單個字元

  • x:刪除游標所在處的單個字元

  • #x:刪除游標所在處及向後的共#個字元

六、刪除命令d

  • d命令可以結合游標跳轉命令一起使用,實現不同的刪除效果。如:

    • d$:刪除當前游標處到行尾的內容

    • d0:刪除當前游標處到行首的內容

    • dw:逐個單詞刪除

    • 3dw:一次刪除三個單詞

    • #de:

    • #db:

    • dd:刪除當前游標所在行

    • #dd:刪除從游標所在行向下刪除#行

    • 刪除第10行到第20行(末模式下:1,8d)

  • 末行模式下刪除指定行

    • :.,+5d:末行模式下刪除從當前行開始到向下的5行,一共刪了6行

    • (.表示當前行,$表示最後一行,+#表示想下的#行);

    • 當前行到倒數第三行:.,$-3

    • .:表示當前行

    • $:表示最後一行

    • +#:表示向下的#行


七、粘貼命令:p

  • 刪除的內容並沒有立即清除,而是儲存在記憶體緩衝區中的。

  • 最後一次刪除的內容,可以被粘貼到任意指定的地方,可以粘貼多次;

  • P:

    • 如果刪除的或複製的為整行內容,則粘貼至游標所在處的下放;

    • 如果複製或刪除的內容為非整行,則粘貼至游標所在字元的後面;

  • p:

    • 如果刪除的或複製的為整行內容,則粘貼至游標所在處的上放;

    • 如果複製或刪除的內容為非整行,則粘貼至游標所在字元的前面;

八、複製命令:y

  • 用法同d命令

  • yy:複製一行

  • 3yy、y0、y$...


九、先刪除內容,再轉換為輸入模式(即:替換或修改)

  • c:用法同d命令


十、替換命令

  • r:替換單個字元

  • R:進入替換模式,類似insert鍵。ESC退出替換模式


十一、撤銷編輯

  • u:undo,撤銷前一次的編輯操作,可以連續使用u,撤銷前n次的編輯操作

  • 注意:vi或vim只在記憶體緩衝區中儲存最近50次的編輯操作,也就是說我們最多隻能撤銷最近50次的編輯操作

  • #u:直接撤銷最近#次的編輯操作。

撤銷撤銷:撤銷/還原上一次的撤銷操作:Ctrl+r


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

  • .:點,功能強大的點


十三、可視化模式

  • v:按字元選取,選取後可以執行上面所有的編輯操作(d刪除,y複製等)

  • V:按矩形塊選取,按行選取


十四、尋找

  • /PATTERN:從檔案首部到尾部尋找

  • ?PATTERN:從當前游標所在行,到檔案首部,倒著尋找

    • n:下一個,往下跳轉下一個

    • N:上一個,往上跳轉下一個


十五、尋找並替換

在末行模式下使用s命令,用法與sed一模一樣。

  • 文法:ADDR1,ADDR2s@PATTERN@STRING@gi

    • @:分隔字元

    • s:尋找

    • g:替換

    • i:忽略字元大小寫

例如:將文檔中從當前行(.)開始到文檔底部的所有小寫he替換為大寫的HE

    :.,$-1s/he/HE/g

全文替換:

    :1,$ 或者 :%

1,$,表示從第一行到最後一行,百分比符號也是指全文。

練習題:

將/etc/yum.repos.d/server.repo檔案中的ftp://instructor.example.com/pub替換為http://172.16.0.1/yum

key

%s/ftp:\/\/instructor\.example\.com\/pub/http:\/\/172.16.0.1\/yum/gi

%s@ftp://instructor\.example\.com\/pub@http://172.16.0.1/yum@gi

十六、如何開啟多個檔案

vim FILE1 FILE2 FILE3

:next:切換至下一個檔案

:prev:切換至前一個檔案

:last:切換至最後一個檔案

:first:切換至第一個檔案

vim rc.local init

預設顯示第一個檔案;

切換到下個檔案:next

切換到上個檔案:prev(注意:切換到上個檔案之前,必須儲存編輯過的這個檔案,否則切換不過去的)

退出:全部退出

:qa

:qall

十七、分屏顯示一個檔案

看著前面的內容來編輯後面的內容

Ctrl+w,s :水平分割視窗

Ctrl+w,v :垂直分割視窗

切換視窗:Ctrl+w,ARROW(上下左右方向箭頭)

退出:

:q 退出一個視窗

:qa 全部退出,關閉所有視窗

--------------------------------------------------------

水平分割視窗:

Ctrl+w,鬆開後,再按 s

Ctrl+w+向下/上的箭頭,切換游標到上/下面的視窗編輯。

垂直分割視窗:

Ctrl+w,鬆開後,再按 v

十八、分視窗顯示多個檔案

視窗1顯示檔案1,視窗2顯示檔案2

水平分割顯示,如:vim -o FILE1 FILE2

垂直分割顯示,如:vim -O FILE1 FILE2

十九、將當期檔案的部分內容另存新檔另外一個檔案

末行模式下使用w命令

:w

:w  /path/to/somewhere

:ADDR1,ADDR2w  /path/to/somewhere

二十、將另外一個檔案內容填充在當前檔案中(合并兩個檔案)

:r /path/to/somefile

二十一、跟shell互動

末行模式下輸入:

:! COMMAND

#COMMAND不支援alias別名命令

二十二、進階話題

1、顯示或取消顯示行號

:set number -- set nu

:set nonu

2、忽略或區分字元大小寫

:set ic

:set ignorecase

:set noic

:set noignorecase

3、設定自動縮排(寫指令碼的時候很有用)

:set autoindent

:set ai

:set noai

4、設定高亮顯示(尋找到的文本高亮顯示)

:set hlsearch

:set nohlsearch

5、文法高亮

:syntax on

:syntax off

二十三、vim設定檔

全域:vim /etc/vimrc

局部(使用者級):vim ~/.vimrc


關於vim的練習題:

系統內建的vimtutor,每天做一遍,每次控制在半小時內搞定,就成了。


本文出自 “冷水泡茶” 部落格,請務必保留此出處http://miaocbin.blog.51cto.com/689091/1665883

VIM編輯器的使用方法詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.