vim編輯器——Linux基本命令(10)

1.簡介

vi: Visual Interface,文本編輯器vim

vim - Vi Improved vi的升級版,它們是兩條命令。windows

wKiom1mCx5Oih1NAAACA9J_-4Rk733.png

 


2.打開方式

vimapp

  -m 只讀方式打開文件編輯器

  -b 二進制打開文件ide

  -d file1 file2 比較多個文件spa

wKiom1mCx5OQfI8IAABccf5JkKE372.png

 


3.三種主要模式

1)模式功能

 命令(Normal)模式:默認模式,移動光標,剪切/粘貼文本3d

 插入(Insert)或編輯模式:修改文本unix

 擴展命令(extendedcommand )模式:保存,退出等orm

 

Esc鍵退出當前模式blog

Esc Esc鍵老是返回到命令模式

 

2)模式轉換

命令模式--------> 插入模式

       i: insert, 在光標所在處輸入

I:在當前光標所在行的行首輸入

a: append, 在光標所在處後面輸入

A:在當前光標所在行的行尾輸入

o: 在當前光標所在行的下方打開一個新行

O:在當前光標所在行的上方打開一個新行

 

插入模式--------> 命令模式

ESC

 

命令模式--------> 擴展命令模式

:

 

擴展命令模式--------> 命令模式

ESC(2),enter

wKioL1mCx5Pz8GqIAAA3Ntn6S-c412.png

3)關閉文件

命令模式:

ZZ: 保存退出

ZQ:不保存退出

擴展模式:

:q 退出

:q! 強制退出,丟棄作出的修改

:wq 保存退出

:x 保存退出

   當文件對當前用戶權限爲read-only時,可使用wq!x!強制保存並退出(僅限root和當前文件的owner

 


4.命令模式

1)光標跳轉

字符間跳轉

h: l: j: k:

#COMMAND:跳轉由#指定的個數的字符

單詞間跳轉

w:下一個單詞的詞首

e:當前或下一單詞的詞尾

b:當前或前一個單詞的詞首

#COMMAND:由#指定一次跳轉的單詞數

行跳轉

  G:跳到尾行

  gg:跳到首行

當前頁跳轉

H:頁首  M:頁中間行  L:頁底

翻屏

ctrl +f 向下翻一屏

ctrl +b 向上翻一屏

ctrl +d 向下翻半屏

ctrl +u 向上翻半屏

 

2)替換命令

替換命令(r, replace)

r: 替換光標所在處的字符

R: 切換成REPLACE模式

 

3)刪除命令

刪除命令其實至關於剪切,能夠直接繼續粘貼

d 刪除命令,可結合光標跳轉字符,實現範圍刪除

d$:刪除到行尾

d^:刪除到非空行首

d0:刪除到行首

dw:從光標所在處刪除到單詞尾

de:從光標所在處刪除到單詞尾

db:從光標所在處刪除到單詞頭

#COMMAND 加上hjkl方向鍵 向左時不包含當前字符。(#表明數字,COMMAND表明刪除命令d

dd:刪除光標所在的行

#dd:多行刪除

dG 從光標所在處的當前行刪除到尾行

dgg 從光標所在處刪除到首行

dH 從光標所在處刪除到當前頁的首行

dL 從光標所在處刪除到當前頁的尾行

dM 從光標所在處刪除到當前頁的中間行

D:從當前光標位置一直刪除到行尾,留空行,等同於d$

 

4)複製命令

複製命令(y, yank),用法與刪除命令基本一致

y:複製,行爲類似於d命令

y$:複製到行尾

y^:複製到非空行首

y0:複製到行首

yw:從光標所在處複製到單詞尾

ye:從光標所在處複製到單詞尾

yb:從光標所在處複製到單詞頭

#COMMAND

yy:複製行

#yy: 複製多行

Y: 複製整行

(一樣支持與G gg H M L 配合)

 

5)粘貼命令

p:緩衝區存的若是爲整行,則粘貼當前光標所在行的下方;不然,則粘貼至當前光標所在處的後面

P:緩衝區存的若是爲整行,則粘貼當前光標所在行的上方;不然,則粘貼至當前光標所在處的前面

 

6)改變模式

改變命令(c, change)

c: 刪除並切換成插入模式

命令模式 --> 插入模式

c$  c^  c0  cb  ce  cw (功能均與上面相同)

#COMMAND

cc:刪除當前行並輸入新內容

#cc:

C:刪除當前光標到行尾,並切換成插入模式

 

7)操做文本

wKioL1mCx5XTZs58AADlew01sxM855.png

l字母,w單詞,()一句話,{}段落

 

8)其餘命令

100iwang [ESC] :粘貼「wang100

100表示重複次數,i表示到編輯模式,wang是想要重複的內容,而後按ESC鍵就會顯示出來了)

wKiom1mCx5WADDMaAAAq33Q57PM239.png

通常命令格式:<start position><command><end position>

起始位置    命令     結束位置

Commandy 複製、d 刪除、gU 變大寫、gu 變小寫

例如 0y$ 命令意味着:

0 先到行頭

y 從這裏開始拷貝

$ 拷貝到本行最後一個字符

也能夠不要起始位置,如  ye:從當前位置拷貝到本單詞的最後一個字符

 

9)撤銷更改

u撤銷最近的更改

   #u撤銷以前屢次更改

   U 撤消光標落在這行後全部此行的更改

   Ctrl+r重作最後的「撤消」更改(至關於Word文檔中向右的那個箭頭)

wKioL1mCx5WAl2OyAAAjDHUexcw346.png

. 重複前一個操做

  n. 重複前一個操做n

e撤銷到最開始。也可使用10000u10000就是一個很大的數字,撤銷很大的數的步數,由於通常不會修改那麼多步的,因此能夠回到最初的樣子)




5.擴展命令模式

1)地址定界

:start_pos,end_pos

# 具體第#行,例如2表示第2

#,# 從左側#表示起始行,到右側#表示結尾行

#,+#  從左側#表示的起始行,加上右側#表示的行數

2,+3  表示25

當前行

最後一行

.,$-1 當前行到倒數第二行

全文, 至關於1,$

/pat1/,/pat2/

從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束

#,/pat/

/pat/,$ (也能夠與#$混合使用)

 

2)使用方式

地址定界後,後跟一個編輯命令

d

y

w file: 將範圍內的行另存至指定文件中

r file:在指定位置插入指定文件中的全部內容

 

3)查找

/PATTERN:從當前光標所在處向文件尾部查找PATTERN

?PATTERN:從當前光標所在處向文件首部查找PATTERN

n:與命令同方向

N:與命令反方向

 

4)查找並替換

s: 在擴展模式下完成查找替換操做

格式:s/要查找的內容/替換爲的內容/修飾符

要查找的內容:可以使用模式

替換爲的內容:不能使用模式,但可使用\1,\2, ...等後向引用符號;還可使用「&」引用前面查找時查找到的整個內容

修飾符:

i: 忽略大小寫

wKiom1mCx5bAcCV1AAAl1bcsWTA580.png

 

g:全局替換;默認狀況下,每一行只替換第一次出現

wKioL1mCx5fghkhUAAB44guhwjc206.png

如圖,不加g只能替換每行第一個dog

wKiom1mCx5eis_7jAAB7h8Va_So227.png

加上以後能夠替換全部的dog

 

gc:全局替換,每次替換前詢問

 

查找替換中的分隔符/可替換爲其它字符,例如:

%s@dog@AAA@g 也是把dog換成AAA

%s#dog#AAA#g 也是把dog換成AAA



6.寄存器

26個命名寄存器和1個無命名寄存器,常存放不一樣的剪貼版內容,能夠不一樣會話間共享。

  寄存器名稱ab,…,z,格式:「寄存器 放在數字和命令之間

如:3"tyy 表示複製3行到t寄存器中

"tp  表示將t寄存器內容粘貼

  未指定,將使用無命名寄存器

  有10個數字寄存器,用01,…,9表示,0存放最近複製內容,1存放最近刪除內容。當新的文本變動和刪除時,1轉存到22轉存到3,以此類推。數字寄存器不能在不一樣會話間共享。

 


7.可視化模式

容許選擇的文本塊

v 面向字符

V 面向行

ctrl-v 面向塊

可視化鍵可用於與移動鍵結合使用:

w ) } 箭頭等

突出顯示的文字可被刪除,複製,變動,過濾,搜索,替換等

 


8.多文件模式

多文件模式能夠一次打開多個文件,可是不顯示在同一頁面上。

vim FILE1 FILE2 FILE3 ...

:next 下一個

:prev 前一個

:first 第一個

:last 最後一個

:wall 保存全部

:qall 退出全部

:wqall 保存並退出全部

 


9.使用多個「窗口」

多文件分割

vim -o|-O FILE1FILE2 ...

-o: 水平分割

wKioL1mCx5fiV20PAABbabsvfTs289.png

-O: 垂直分割

wKioL1mC2PuhN5OaAABdlku--0g646.png

單文件窗口分割:(Ctrl+w一塊按而後鬆開後按後面的按鍵)

Ctrl+w,s: split, 水平分割

Ctrl+w,v: vertical, 垂直分割

Ctrl+w,方向鍵 在窗口間切換文件

ctrl+w,q:取消相鄰窗口

ctrl+w,o取消所有窗口

wqall退出

 


10.定製vim的工做特性

配置文件:永久有效

全局:/etc/vimrc

我的:~/.vimrc

擴展模式:當前vim進程有效

  (1) 行號

顯示:set number, 簡寫爲set nu

取消顯示:set nonumber, 簡寫爲set nonu

  (2) 括號成對匹配

匹配:set showmatch, 簡寫爲set sm

取消:set nosm

  (3) 自動縮進

啓用:set ai

禁用:set noai

  (4) 高亮搜索

啓用:set hlsearch

禁用:set nohlsearch

  (5) 語法高亮

啓用:syntax on

禁用:syntax off

  (6) 忽略字符的大小寫

啓用:set ic

不忽略:set noic

  (7) 文件格式

啓用windows格式:set fileformat=dos

啓用unix格式:set fileformat=unix

  (8) 設置文本寬度

:set textwidth=65 (vim only)

:set wrapmargin=15

  :help option-list

  :set or :set all

 


11.瞭解更多

vi/vim內置幫助

:help

:help topic

Use :q to exit help

 


12.關於swp文件

有的時候打開一個文件會發現不是正常打開的樣子,如圖。產生的緣由是產生了swp文件wKiom1mC2P2hBMaJAANC8SDWcx4888.png

當咱們在編輯文件時會產生swp文件,wKiom1mC2P6Bn89XAAHVmbm1A40654.png

它是隱藏文件,若是原文件名是data,那麼swp文件名就是.data.swp。若是文件正常退出,則此文件自動刪除。如下兩種狀況不會刪除swp文件:

1、多個程序同時編輯一個文件。

2Vim非正常退出。這種狀況下,除非手動刪除swp文件(也能夠在vim提示時刪除),不然它會一直存在。

修改過以後,保存後的數據就會存到.swp文件中,這個時候強制退出,能夠看到.swp文件仍然存在。wKioL1mC2P7z9lOOAAG0sZlD9gQ456.png

如圖,將man改爲women後強制退出。

使用cat查看文件發現仍然是修改以前的狀態。(說明被修改的數據保存在.swp中。)wKioL1mC2QCgVULvAAJ8BDrDiBY298.png

此時使用vim打開fstab文件

wKiom1mC2QGQhU-BAAKlKhNmyU4330.png

根據下面的提示,能夠知道,使用d能夠刪除swp文件,使用r能夠恢復文件。

咱們來輸入r,而後敲回車鍵,發現變成women的那個文件了。wKiom1mC2QLyZw8uAAGOLUh70nE144.png

此時又新生成了一個swo,至關於又一個swp的功能,就是記錄此次打開以後的數據變化。以此類推。wKioL1mC2QPhUYO0AAMBH7it8_Q218.png

這個.swp文件不會自動消失,若是不想要.swp文件,須要手動刪除。

這樣,fstab這個文件就正式修改好了。(改爲了womenwKiom1mC2QTzEZbzAAGZF-XAFMY759.png

相關文章
相關標籤/搜索