您好,登錄后才能下訂單哦!
??Vim是一個高度可配置的文本編輯器,用于創(chuàng)建和更改任何類型的文本非常高效。與大多數(shù)UNIX系統(tǒng)和Apple OS X一起,它被包含為“vi”。Vim是穩(wěn)定的,并且不斷發(fā)展,變得更好。其特點是:持久的多級撤消樹;廣泛的插件系統(tǒng);支持?jǐn)?shù)百種編程語言和文件格式;強大的搜索和替換;與許多工具集成。
?
??Vim是Vi IMproved,是編輯器Vi的一個加強版,一個極其強大并符合IT工程師(程序員、運維)習(xí)慣的編輯器。如果你是一名職業(yè)的SE,那么一定在尋找一款出色的能夠自由定制、滿足靈活編輯功能的編輯器。那么答案,就是vim或者Emacs。vim最大特色是完全使用鍵盤命令進行編輯,脫離了鼠標(biāo)操作雖然使得入門變得困難,但上手之后鍵盤的各種巧妙組合操作卻能帶來極為大幅的效率提升。
?
??在Linux系統(tǒng)中,RHEL和CentOS的配置文件是/etc/vimrc,Debian和Ubuntu的配置文件是/usr/share/vim/vimrc。
?
??那么vimRC中的RC是什么意思?
??一般在運行某個軟件、環(huán)境或工具之初,要初始執(zhí)行的一些命令,稱為Run Commands,即RC。根據(jù)Wikipedia.org的記載,RC縮寫的用法源自MIT的相容分時操作系統(tǒng)(Compatible Time-Sharing System,CTSS)[參考1],有興趣的話請自行了解。
?
基本上vi/vim可以分為三種狀態(tài),分別是普通模式、插入模式和命令模式,各模式的功能區(qū)分如下:
1、普通模式
控制屏幕光標(biāo)的移動,字符、字或行的刪除,移動復(fù)制某區(qū)段。
2、插入模式
只有在插入下,才可以做文字輸入、刪除,按「ESC」鍵可回到普通模式。
可以按i、I、a、A、o、O、r、R即可。其中i和I表示插入(Insert),r和R表示替換(replace)。
3、命令模式
將文件保存或退出vim,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號等……
可以按“:”、“/”、“?”。其中“:”表示輸入vim命令,“/”表示后面輸入要向下搜索的字符串,“?”表示后面輸入要向上搜索字符串。
?
其實,可以把普通模式理解為常態(tài),進入其它任何一種模式,需要某種特殊方式,而從其它特殊模式回到普通模式,就按「ESC」鍵即可。
?
Vim的三種基本模式如下圖:
為了使以下參數(shù)永久有效,那你可以把以下參數(shù)寫進/etc/vimrc配置文件里,當(dāng)然,有一些參數(shù)已經(jīng)存在配置文件中了。?
1、顏色設(shè)置
syntax on???開啟代碼高亮
syntax off???關(guān)閉代碼高亮
syntax enable?開啟代碼高亮
?
2、搜索設(shè)置
set hlsearch???--開啟搜索高亮
set nohlsearch??--關(guān)閉搜索高亮
set incsearch ?? --輸入搜索字符串的同時進行搜索
set ignorecase??--搜索時忽略大小寫
?
3、用戶界面
set ruler ????? --開啟光標(biāo)位置提示
set number??? ?--顯示行號
set nonu????? --不顯示行號
set cmdheight=1??--命令部分高度為1
?
4、編輯輔助配置
set autoindent?? ??--自動縮進
set noautoindent???--不自動縮進
set smartindent?? ? --智能縮進
set autoread ? ? ??--當(dāng)文件在外部被改變時,vim自動更新載入
set showmatch? ? ? --顯示匹配的括號
1、普通模式 → 插入模式
i?? 小寫字母i, ? 在光標(biāo)位置插入
a??小寫字母a, ?在光標(biāo)的下一個位置插入
I ??大寫字母I, ? 在光標(biāo)所在行的第一個非空格處插入
A??大寫字母A,?在光標(biāo)所在行的最后一個字符處插入
o??小寫字母o,? 在光標(biāo)所在行的下一行處插入新行
O??大寫字母O,?在光標(biāo)所在行的上一行處插入新航
r ??小寫字母r, ? 替換光標(biāo)所在處的字符一次
R??大寫字母R,?持續(xù)替換光標(biāo)所在處的字符,直到按下「ESC」鍵
?
2、普通模式 → 命令模式
:w?? 保存文件
:w!??強制保存文件(前提是用戶有修改文件訪問權(quán)限的權(quán)限)
:q?? 退出緩沖區(qū)
:q!??強制退出緩沖區(qū)而不保存
:wq ? 保存文件并退出緩沖區(qū)
:wq!? 強制保存文件并退出緩沖區(qū)(前提是用戶有修改文件訪問權(quán)限的權(quán)限)
:w [filename]??另存為名為filename文件
:r [filename]?? 將另外一個文件讀入到正在編輯的文件
:n1,n2 w [filename]??將n1行到n2行的數(shù)據(jù)另存為名為filename文件
:x ?? ? 保存并退出
ZZ??? 保存并退出
ZQ???不保存退出
?
3、插入模式 → 視圖模式
按下「ESC」鍵
?
4、命令模式 → 視圖模式
按下「ESC」鍵
?
1、光標(biāo)字符操作
h??向左箭頭鍵(←) 光標(biāo)向左移動一個字符
l?? 向右箭頭鍵(→) 光標(biāo)向右移動一個字符
j?? 向下箭頭鍵(↓) 光標(biāo)向下移動一個字符
k??向上箭頭鍵(↑) 光標(biāo)向上移動一個字符
$??光標(biāo)移動到行尾(End),注意要按「Shift」鍵
0??光標(biāo)移動到行首(Home)
^??光標(biāo)移動到行首第一個非空白字符(Home),注意要按「Shift」鍵
?
2、光標(biāo)詞操作
w?? 光標(biāo)移動到后一詞的詞首
W??光標(biāo)移動到后一詞的詞首且忽略標(biāo)點符號
e?? 光標(biāo)移動到后一詞的詞尾
E?? 光標(biāo)移動到后一詞的詞尾且忽略標(biāo)點符號
b?? 光標(biāo)移動到前一詞的詞首
B?? 光標(biāo)移動到前一詞的詞首且忽略標(biāo)點符號
?
3、光標(biāo)行操作
G?? ? 光標(biāo)移動到文件的最后一行的第一個非空白字符
nG/ngg?光標(biāo)移動到文件的第n行,相當(dāng)于”:n”
gg??? 光標(biāo)移動到文件的第1行的第一個非空白字符
?
4、光標(biāo)頁操作
Ctrl + f?? 向下翻頁(Pagedown)
Ctrl + b??向上翻頁(Pageup)
Ctrl + d??向下翻半頁
Ctrl + u??向上翻半頁
「H」??光標(biāo)移動到目前顯示頁的第一行
「M」??光標(biāo)移動到目前顯示頁的中間行
「L」?? 光標(biāo)移動到目前顯示頁的最后一行
?
5、光標(biāo)自由操作
Ctrl + o??回到光標(biāo)的上一位置
1、刪除操作(delete)
dd???刪除光標(biāo)所在行
ndd? ? 刪除從光標(biāo)所在行開始,向下的n行
d1G?? 刪除從光標(biāo)所在行開始,到第一行的所有行
dG???刪除從光標(biāo)所在行開始,到最后一行的所有行
d$??? 刪除從光標(biāo)所在位置,到行尾的所有字符
d0??? 刪除從光標(biāo)所在位置,到行首的所有字符
x????每按一次,刪除光標(biāo)所在位置的“后面”一個字符。
nx?? ? 刪除光標(biāo)所在位置的“后面”n個字符。
X ?? ? 大寫的X,每按一次,刪除光標(biāo)所在位置的“前面”一個字符。
nX??? 刪除光標(biāo)所在位置的“前面”n個字符。
?
2、復(fù)制操作(yank)
yy???復(fù)制光標(biāo)所在行
nyy? ? 復(fù)制從光標(biāo)所在行開始,向下的n行
y1G? ?復(fù)制從光標(biāo)所在行開始,到第一行的所有行
yG ? ? 復(fù)制從光標(biāo)所在行開始,到最后一行的所有行
y$???復(fù)制從光標(biāo)所在位置,到行尾的所有字符
y0???復(fù)制從光標(biāo)所在位置,到行首的所有字符
J ??? 將光標(biāo)所在行與下一行合并成一行
yw ? ? 復(fù)制當(dāng)前光標(biāo)所在的字母到該單詞的最后一個字母
yaw?? 復(fù)制當(dāng)前光標(biāo)所在的單詞
?
3、粘貼操作(paste)
p??小寫字母p,粘貼剪貼板中的數(shù)據(jù),從光標(biāo)所在行的下一行開始
P??大寫字母P,粘貼剪貼板中的數(shù)據(jù),從光標(biāo)所在行的上一行開始~~
?
4、撤銷與重做操作(undo)
u ??撤銷上一個操作
?
5、重復(fù)操作
. ??重復(fù)上一操作
?
6、替換操作(replace)
r??? 替換光標(biāo)所在處字符
R???進入替換模式,直至按ESC退出
cc ? ? 替換光標(biāo)所在行
cw ?? 替換光標(biāo)所在的英文單詞
~ ???轉(zhuǎn)換大小寫
:n1,n2s/old/new/g??從n1到n2行將old替換成new,g表示全部替換
:1,$s/old/new/g???將整個文件的old替換成new
:1,$s/old/new/gc ?? c表示確認(rèn)
???new (y/n/a/q/l/^E/^Y)??表示如下:
????y: ?? 替換當(dāng)前內(nèi)容
????n:?? 不替換
????a: ?? 替換所有
????q:? ? 退出
????l:???替換當(dāng)前內(nèi)容,并退出
????Ctrl + e:向后查找
????Ctrl + y:向前查找
?
7、排版操作
:le??? 光標(biāo)所在行左對齊
:ri?? ? 光標(biāo)所在行右對齊
:ce???光標(biāo)所在行居中
?
8、查看歷史
:history??顯示最近在vim里面輸入的歷史
1、搜索字符串
/string ?? 向下搜索字符串“string”
?string ??向上搜索字符串“string”
?
2、重復(fù)上次搜索
n ??根據(jù)上次搜索條件找到下一個匹配的字符串
N??根據(jù)上次搜索條件找到上一個匹配的字符串
1、單一緩沖區(qū)打開多個文件
:files??顯示目前打開了哪些文件
:n??? 切換到下一個緩沖區(qū)內(nèi)容
:N???切換到上一個緩沖區(qū)內(nèi)容
:2n? ? 切換到下下個緩沖區(qū)內(nèi)容
:bn ?? 下一個緩沖區(qū)內(nèi)容(buffer next)
:bp ?? 上一個緩沖區(qū)內(nèi)容(buffer previous)
?
2、多個緩沖區(qū)打開多個文件
:sp [filename]??打開一個新的緩沖區(qū),如果有filename則內(nèi)容為該文件,否則為當(dāng)前文件
Ctrl+w n??新建一個緩沖區(qū)
Ctrl+w q??退出光標(biāo)所在的緩沖區(qū)
Ctrl+w j ??光標(biāo)移動到下一緩沖區(qū)
Ctrl+w k??光標(biāo)移動到上一緩沖區(qū)
Ctrl+w l??光標(biāo)移動到右一緩沖區(qū)
Ctrl+w h??光標(biāo)移動到左一緩沖區(qū)
Ctrl+w v??左右切割窗口新建緩沖區(qū)
Ctrl+w s??上下切割窗口新建緩沖區(qū)
Ctrl+w o??使光標(biāo)所在緩沖區(qū)最大化,其他緩沖區(qū)隱藏
1、加密文本文件
當(dāng)你用vim打開或新建一個文件時,如果加上-x參數(shù),即:
#
vim -x test.txt??--打開你要加密的文本文件
那么vim會提示你:
Enter entryption key:
當(dāng)你輸入了密碼后,vim會提示你重復(fù)輸入以確認(rèn):
Enter same key again:
當(dāng)你在設(shè)置密碼的時候,是以*
來顯示的,非明文。打開文件之后,:wq保存退出,密碼才生效。
?
當(dāng)下次有人(包括你自己)打開該文件的時候,vim就會提示:
Enter encryption key:
這時你只要輸入你之前所設(shè)置的密碼就可以了。如果你輸入的密碼是錯誤的,vim并不會提示你密碼錯誤,而是顯示一堆無意義的垃圾代碼。
?
2、解除加密與重設(shè)密碼
打開你已經(jīng)加密的文件,然后輸入:
#
vim test.txt???--打開加密文件之后,輸入下面內(nèi)容
:set key=
這樣,你的密碼就被設(shè)置為空了,今后進入就不再需要輸入密碼了。而如果你向重設(shè)密碼的話,你可以輸入:
:X
注意是個大寫字母X。這時vim會提示你,只要反復(fù)輸入兩次新的密碼就可以了:
Enter entryption key:
*****
Enter sanme key again:*****
如果是清除密碼,連續(xù)敲兩次鍵盤就可以了
?
注意:
加密、解除密碼、重設(shè)密碼之后,一定要保存之后才能生效。
如果密碼輸入錯誤,vim不會拒絕訪問者編輯文件。在這種顯示亂碼的情況下編輯文件并保存,整個文件就會變得混亂不堪,無法辨識。今后即使使用正確的密碼打開文件,也看不到正確的文檔了。
?
最后,附一張Vim使用總結(jié)圖
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。