VIM

 

目錄
  • vim
    • 打開
    • 模式轉換
    • 刪除(編輯模式、末行模式)
    • 複製
    • 粘貼
    • 刪除(編輯模式)
    • 可視操做
    • 撤回
    • 精巧
    • 翻屏
    • 地址界定(末行模式)
    • 查找
    • 查找替換
    • 窗口分割
    • 單文件窗口分割
    • 定製特性
    • 技巧

 

vim

vim的是全文編輯器,而sed是屬於行編輯器,vim的活動範圍是全文,sed的活動範圍是行。vim

三種模式:bash

編輯模式(命令模式,命令不外顯),好比複製yy,粘貼papp

輸入模式(插入模式)編輯器

末行模式(命令行模式,命令外顯),好比set bg=darkide

打開vim默認就是處於編輯模式下,就能夠輸出隱式的命令,所謂的隱式的命令就是像dd這樣的命令,咱們在鍵盤上敲了以後不會顯示在界面上,可是會生效。命令行

打開

//打開文件後,直接處在文件的第一行
 vim + /etc/passwd     

//打開文件後,直接讓光標處在第9行的行首
 vim +9 /etc/passwd   

// 打開文件後,直接處在文件的最後一行
 vim +$ /etc/passwd  

//打開文件後直接讓光標處於第一個被模式匹配到的行的行首
vim +/^zhanghe  /etc/passwd 

模式轉換

咱們剛進入vim的時候默認是編輯模式,並不能編輯,必須轉換成爲輸入模式才能夠,從編輯模式轉換到輸入模式的方式有這幾種:文檔

insert:
i :在光標所在處前方輸入
I :在光標所在行首插入

append:
a :在光標所在處後輸入
A :在光標全部行的行尾插入

o(小寫),在當前光標所在行的下方打開一個新行
O(大寫),在當前光標所在行的上方打開一個新行

從輸入模式與編輯模式就一種方式:ESC便可。it

從編輯到末行模式使用冒號就能夠,末行模式(命令行模式)裏面經常使用命令以下:ast

:q退出class

:q!強制退出不保存

:wq保存退出

:wq!強制保存退出

:x保存退出

:w保存不退出

:w /PATH/TO/SOMEWHERE #保存到另外一個文件,至關於另存爲

:set nu顯示行號

1,10d刪除第一行到第10行

從末行模式到編輯模式一下ESC或者兩下ESC便可,按完以後末行模式的冒號就消失了。

編輯模式(隱式命令)裏面的經常使用操做:

字符跳轉

hl字符間的左右跳轉

jk字符間的上下跳轉

按一下數字再按jkhl中任意一下,就能夠指定跳轉多少下,好比3 j向下轉換三次

w跳到下一上單詞的詞首

b當前或上一個單詞的詞首,第一次是本身所在的單詞,第二次是上一個單詞的詞首、

e當前或下一個單詞的詞尾,第一次是本身所在的單詞,第二次是下一個單詞的詞尾

也能夠用用數字加持,好比3 e,跳轉到從當前數據第三個單詞的詞尾。

^行首

$行尾

gg跳轉到第一行

G跳轉到最後一行

ZZ保存並退出

刪除(編輯模式、末行模式)

在編輯模式當中x用來刪除光標右側單個的字符,其實就是刪除光標蓋住的字符。

使用dd命令能夠刪除一行

d^能夠刪除一行當中光標到行首的全部內容

d$能夠刪除一行當中光標到行尾的全部內容

#dd:多行刪除

:1,10d,在末行模式下也能夠刪除,刪除第一行到第十行

複製

y^ 複製光標到行首的內容

y$ 複製光標到行尾的內容

y1G 複製光標到文檔首部的內容

yG 複製光標到文檔尾部的內容

yy複製一整行

#yy複製多行,包括當前所在的行

粘貼

P(小寫):緩衝區存的若是爲整行,則粘貼當前光標所在行的下方,不然,則粘貼至當前光標所在處的後面。

P(大寫):緩衝區存的若是爲整行,則粘貼 當前光標所在行的上方,不然,則粘貼到當前光標所在處的前面。

使用d刪除的內容實際沒有刪除,而保存在緩衝區當中。

刪除(編輯模式)

C:刪除光標後面的字符,前進入插入模式

c c;刪除一整行的內容

#cc:刪除多行而後進入插入模式

c^:插入光標前面的內容進入插入模式

c$:插入光標後面的內容進入插入模式

c1G :插入光標到文檔首部的全部內容進入插入模式

cG:插入光標到文檔結尾的全部內容進入插入模式

刪除到文檔首部的時候並非以字符,而是以行爲單位,也就是說當使用c1G或者cG的時候是刪除當前整行到文檔首部和尾部的內容

可視操做

可視化模式(使用可視化操做的時候最好使用上下光標來配合)

v:按字符選定

V:按行選定

常常與刪除,刪除並插入、複製、連用

可視操做在寫腳本的時候常常用到,選中多行以後,經過shift+>進行tab進行總體縮進。

若是想要刪除連續多行當中開頭的空格或TAB的話,不管經過大V仍是小v都不太使,在編輯模式使用ctrl+v就能夠按字符選中,這個在後面寫腳本的時候用的比較多。

撤回

在編輯模式使用u便可撤消上一步的操做

ctr+r把撤消給撤消了

精巧

r替換光標所在處的字符

重複上一步的操做使用點便可

翻屏

ctrl+u:向文件首部翻半屏

ctrl+d:向文件尾部翻半屏

地址界定(末行模式)

:start_pos,end_pos

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

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

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

. 當前行

$:最後一行

.,$-1:表示當前行到倒數第二行。

%:全文,至關於1,$

/pat1/,/pat2/

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

#,/pat/

/pat/,$

常常與編輯命令連用:

d

y

w /PATH/TO/SOMEWERE,將範圍內的行另存到指定文件中

r /PATH/FROM/SOMEWERE,在指定位置插入文件中的全部內容

例:把1——24行選中後刪除:「:1,24d」

把開頭是zhanghe的一直到開頭是zhangjia之間全部刪除:「:/zhanghe/,/zhangjia/d」

查找

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

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

n:與命令同方向

N:與命令反方向

查找替換

格式 :<界定> s@/須要搜索的模式/@/替換的內容/@g

s:末行模式下完成查找替換操做

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

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

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

修飾符:

i忽略大小寫

g:全局替換,全部的都替換,若是不加g 話,第行只替換第一次出現

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

//將從第一行到第10行的bash替換爲BASH
:1,10s@bash@BASH@g    

//將第一行的r..t模式下查找到的內容替換爲ROOT
:1s@r..t@R00T@   

//將第一行到第五行中的:號全都替換成兩個冒號
:1,5s@\(:\)@\1:@g

//將和一行到第3行當中的bin全都替換成BIN,不區分大小寫
:1,3s@bin@BIN@i

7.14 多文件操做

vim後面跟多個文件可打開多個文件,如:

[root@China ~]# cp /etc/{fstab,passwd,shadow} /tmp
[root@China ~]# vim /tmp/{fstab,passwd,shadow}

在末行模式輸入:

:n跳轉到下一個文件
:N跳轉到上一個文件
:first跳轉到第一個文件
:last跳轉到最後一個文件
:wall保存全部
:qall退出全部
:wqall退出並保存全部

窗口分割

vim –o FILE……水平分割

vim –O FILE ……垂直分割

在窗口之間切換使用ctrl+w命令,或者再加上箭頭

單文件窗口分割

ctrl+w,s:split水平分割

ctrl+w,v:vertical垂直

定製特性

全局:/etc/vimrc

我的:~/.vimrc 默認沒有,需自行建立

set ruler設置標尺

set number—set nonumber 顯示行號

set autoindent—set noautoindent自動縮進

set hlsearch-----set nohlsearch hl=high light搜索高亮

set bg=dark,這個色調最好用

set bg=light,默認是這個色調

NOTE:VIM能夠經過可視模式選中以後使用x所有刪除

技巧

1.刪除全部內容

命令爲:ggdG

其中,gg爲跳轉到文件首行;dG爲刪除光標所在行以及其下全部行的內容;

再細講,d爲刪除,G爲跳轉到文件末尾行;

  1. 定位到第一行: 1 + shift + G

  2. 定位到最後一行:shift + G

  3. 定位到第x行: x + shift + G

相關文章
相關標籤/搜索