Linux基礎之vim

Linux基礎之vim

1、vim介紹

vim是一個相似vi的文本編輯器,不過在vi的基礎上增長了不少新特性,vim被公認爲類vi編輯器中最好用的一個。java

vim是vi發展出來的一個文本編輯器。編譯及錯誤跳轉等方便編程的功能豐富,在實際工做中被普遍使用。編程

和Emacs並列稱爲類Unix系統用戶最喜好的編輯器。vim

爲何須要學習vim?windows

全部的Linux系統都會內建vi文本編輯器,其餘的文本編輯器則不必定存在。編輯器

不少軟件的編輯接口都會主動調用vi,例如visudo、crontab等學習

vim可視爲vi的高級版本。字體

vim具備程序編輯的能力,能夠主動的以字體顏色辨別語法的正確性,方便程序開發。spa

2、Vim的三種模式

Vim有三種模式,分別是通常模式、編輯模式、命令模式。.net

進入通常模式:命令行

[root@localhost ~]#vim test

進入編輯模式:

按下鍵盤上i鍵,進入編輯模式,編輯模式下除了「Esc鍵」都做爲輸入鍵。輸入hello vim,按Esc回到通常模式。

進入命令模式:

在通常模式下,輸入「:」,進入命令模式,「:wq」保存並退出。

一、通常模式

以vim打開一個文件就直接進入通常模式(默認模式)

可使用上下左右移動光標來移動,也可使用刪除字符或刪除整行來處理文件內容,也可使用複製、粘貼來處理文件數據。但沒法任意編輯文件內容。好比說:我想寫一個123。

1.通常模式下的快捷操做

移動

h或←光標左移一個字符。若是是20h,表示左移20個字符。

j或↓光標下移一個字符   同上

k或↑光標上移一個字符   同上

l或→光標右移一個字符   同上

[Ctrl]+[f]屏幕向下移動一頁   Page Down!!

[Ctrl]+[b]屏幕向上移動一頁  Page Up !!

0或[Home]移動到此行最前面字符處!!

$或[End]移到光標所在行的行尾!!

H:光標移到當前屏幕最上方行的第一個字符!!

M:光標移到當前屏幕中間行的第一個字符!!

L:光標移動到當前屏幕最下方行第一個字符!!

G:移到此文件最後一行!!!

nG:移到第n行

gg:至關於1G,即移到第一行!!!

n[Enter]:光標下移n行

刪除

x:向後刪除一個字符

nx:向後刪除n個字符(n爲數字)

X:向前刪除一個字符

dd:刪除光標所在行的正行(!!!)

ndd:刪除光標所在行如下n行(n爲數字,包含當前行在內)

d1G/dgg:刪除光標所在行到第一行全部數據(包括所在的行)

dG:刪除光標所在行到最後一行(!!)

d$或d end:刪除光標所在處到同行最後一個字符(!!)

d0或d home:刪除光標所在處到同行第一個字符。(!!)

複製

yy:複製光標所在行(!!)

nyy:複製光標所在向下n行(n爲數字)

y1G:複製光標所在行到第一行全部數據

yG:複製光標所在行到最後一行全部數據

y$:複製光標所在處到同行最後一個字符

y0:複製光標所在處到同行第一個字符

p:將已複製的數據粘貼到光標所在下一行

P:將已複製的數據粘貼到光標所在上一行

u:復原前一個操做(相似於windows中的ctrl+z)!!!

替換

r:替換光標所在處字符一次。

R:一直替換光標所在處文字直到按下Esc(!!!)。

2.通常模式進入編輯模式

i:從光標所在處插入(!!!)

I:從所在行第一個非空白字符處插入(!!)

a:從光標所在下一個字符處插入

A:從光標所在行最後一個字符處插入(!!)

o:在光標所在處下一行插入新的一行(!!)

O:在光標所在處上一行插入新的一行(!!)

二、編輯模式

在通常模式中能夠刪除、複製、粘貼等,按下i、I、o、O、a、A、r(快速替換)、R等任何一個字母后進入編輯模式。並在左下方出現INSERT或REPLACE。

該模式下能夠輸入文件內容。按下<Esc>返回通常模式。

三、命令模式

在通常模式當中,輸入:/?三個字符中的任何一個按鈕,就能夠將光標移動到最下面那一行。

在這個模式當中,能夠提供查詢、替換等功能。同時存盤(保存)、離開vi、顯示行號等等命令都是在此模式進行。 

1.查詢

/word:向下查找單詞「word」(!!!)

?word:向上查找單詞「word」(!!!)

n:表示重複前一個查找操做。

N:與n相反(反向查找)。

:set nu 顯示行號

:set nonu 取消顯示行號

2.替換

:s/word1/word2/g:在當前行將word1替換成word2(!!)

:%s/word1/word2/g:在當前文件將word1替換成word2(!!)

:n1,n2s/word1/word2/g:在n1到n2行查找word1替換成word2 (n一、n2爲數字) 

:1,$ s/word1/word2/g:從第一行到最後一行查找word1替換成word2

:%s/word1/word2/gc:同上,在替換前確認是否替換。(!!!)只能單行確認,須要逐步確認。在該模式中,「y」確認更換,「n」否認更換,「a」所有替換,「q」退出,「l」表示單行替

換,並退出更換狀態。Ctrl+e向下換行,Ctrl+y向上換行。

3.保存退出

:w [filename]:另存爲filename。

:r [filename]:讀取filename指定文件中的內容到光標所在的行。

:n1,n2 w [filename]:將n1到n2行另存爲filename。

:! command:臨時切換到命令行模式下執行command命令。

例如「:!find / -name Helllo.java」便可在vim當中查看/home下面以ls輸出的文件信息。

:wq:保存後退出。

:q:不保存退出(未改能夠離開,若是修改了須要q!強制離開)

:q!:強制退出,不保存修改。

:wq!:強制保存退出。

上一篇:Linux基礎之系統資源監控與任務管理

下一篇:Linux基礎之軟件包管理

相關文章
相關標籤/搜索