2019年4月13日 星期六

Vi與Vim

基本操作:
Insert模式與Normal模式切換,Insert為輸入模式,Normal為命令模式
-至輸入模式。

ESC鍵 -至命令模式。
:w -存檔。
:q -離開。
:q! -強制離開。
:wq -存檔並離開。
:e! -消除所有的編輯結果,並回到原來的文件。

dd -刪除一列。
d2d -刪除兩列,數字"2"可視需刪除的列數變更。
u -復原上一步。

複製並貼上:
a. 按"ESC"鍵,至命令模式。
b. "Ctrl" + "V" or "v",指令訊息顯示"-- VISUAL BLOCK --"。
c. 按"方向鍵"即可反白所要複製的文字。
d. 按"y"複製文字。
e. 至需要複製之目的地按"p"貼上。

複製一行並貼上:
a. 按"yy"複製一行文字。
b. 至需要複製之目的地按"p"貼上。

剪下並貼上:
a. 按"ESC"鍵,至命令模式。
b. 按"cc"為剪下一行,"c2c"為剪下兩行。
c. 至需要複製之目的地按"p"貼上。

搜尋:
a. 按"ESC"鍵,至命令模式。
b. 輸入"/欲尋找之文字"之後按"ENTER"鍵。
c. 繼續向下搜尋按"n",向上搜尋按"N"。

搜尋並取代:
a. 按"ESC"鍵,至命令模式。
b.格式為 :n,ms/string1/string2/optionn表示起始列,m表示結束列,string1表示被取代字串,string2預去取代字串;option表示選項,g表示全部取代,c表示確認後再取代。
輸入":1,$s/string1/string2/g",表示從頭至尾用string2取代string1,
或是輸入":1,10s/string1/string2/g",表示從第1列至第10列用string2取代string1

範例:
A
B
C
A
B
C

:1,$s/C/D/g

結果:
A
B
D
A
B
D

直行編輯:
台灣使用習慣為直行(Column)橫列(Row),Vim編輯時常需要直行插入文字。

(1). 修改方法
a. 按"ESC"鍵,至命令模式。
b. "Ctrl" + "V" or "v",指令訊息顯示"-- VISUAL BLOCK --"。
c. 按"方向鍵"即可反白所要增加的行數。
d. 按"r"後。游標會跳至當初反白的起始點。
e. 鍵入需插入的文字。
f. 按"ESC"鍵,結束編輯,之後就會在原來反白的直行前端插入文字。

範例:
A
A
A
A
A

結果:
B
B
B
B
B

(2). 前插入方法
a. 按"ESC"鍵,至命令模式。
b. "Ctrl" + "V",指令訊息顯示"-- VISUAL BLOCK --"。
c. 按"方向鍵"即可反白所要增加的行數。
d. 按"I"後。游標會跳至當初反白的起始點。
e. 鍵入需插入的文字。
f. 按"ESC"鍵,結束編輯,之後就會在原來反白的直行前端插入文字。

範例:
A
A
A
A
A

結果:
BA
BA
BA
BA
BA

查詢Vim版本與插件:
:version


vimrc設定:
在Terminal下輸入"vim ~/.vimrc"即可編輯vimrc設定。

:syntax on -Highlight程式語言關鍵字。
:set number -顯示行數。
:set nonumber -關閉顯示行數。
:set tabstop -Tab鍵間格數。
:set shiftwidth -自動所排的格數。
:set background -背景顏色。
:colorscheme -顏色配置。

範例:
set number
set tabstop=4
set shiftwidth=4

" Set color configuration
set background=dark
colorscheme evening
hi LineNr cterm=bold ctermfg=DarkGrey ctermbg=NONE
hi CursorLineNr cterm=bold ctermfg=Green ctermbg=NONE


colorscheme參數:
evening
murphy
peachpuff


語法文件:
vim支援許多程式語言的Highlight,其script路徑為

/usr/share/vim/vim?/syntax

其中?表示會因版本別變更編號。

沒有留言:

張貼留言