Vim基本使用方法

一、Vim是什麼

  Vim是一個高度可配置的文本編輯器,用於創建和更改任何類型的文本非常高效。與大多數UNIX系統和Apple OS X一起,它被包含爲“vi”。Vim是穩定的,並且不斷髮展,變得更好。其特點是:持久的多級撤消樹;廣泛的插件系統;支持數百種編程語言和文件格式;強大的搜索和替換;與許多工具集成。

  Vim是Vi IMproved,是編輯器Vi的一個加強版,一個極其強大並符合IT工程師(程序員、運維)習慣的編輯器。如果你是一名職業的SE,那麼一定在尋找一款出色的能夠自由定製、滿足靈活編輯功能的編輯器。那麼答案,就是vim或者Emacs。vim最大特色是完全使用鍵盤命令進行編輯,脫離了鼠標操作雖然使得入門變得困難,但上手之後鍵盤的各種巧妙組合操作卻能帶來極爲大幅的效率提升。

  在Linux系統中,RHEL和CentOS的配置文件是/etc/vimrc,Debian和Ubuntu的配置文件是/usr/share/vim/vimrc。

  那麼vimRC中的RC是什麼意思?
  一般在運行某個軟件、環境或工具之初,要初始執行的一些命令,稱爲Run Commands,即RC。根據Wikipedia.org的記載,RC縮寫的用法源自MIT的相容分時操作系統(Compatible Time-Sharing System,CTSS)[參考1],有興趣的話請自行了解。

二、三種基本模式

基本上vi/vim可以分爲三種狀態,分別是普通模式、插入模式和命令模式,各模式的功能區分如下:
1、普通模式
控制屏幕光標的移動,字符、字或行的刪除,移動複製某區段。
2、插入模式
只有在插入下,纔可以做文字輸入、刪除,按「ESC」鍵可回到普通模式。
可以按i、I、a、A、o、O、r、R即可。其中i和I表示插入(Insert),r和R表示替換(replace)。
3、命令模式
將文件保存或退出vim,也可以設置編輯環境,如尋找字符串、列出行號等……
可以按“:”、“/”、“?”。其中“:”表示輸入vim命令,“/”表示後面輸入要向下搜索的字符串,“?”表示後面輸入要向上搜索字符串。

其實,可以把普通模式理解爲常態,進入其它任何一種模式,需要某種特殊方式,而從其它特殊模式回到普通模式,就按「ESC」鍵即可。

Vim的三種基本模式如下圖:
Vim基本使用方法

三、vim最常用的配置

爲了使以下參數永久有效,那你可以把以下參數寫進/etc/vimrc配置文件裏,當然,有一些參數已經存在配置文件中了。 
1、顏色設置

syntax on   開啓代碼高亮
syntax off   關閉代碼高亮
syntax enable 開啓代碼高亮


2、搜索設置

set hlsearch   --開啓搜索高亮
set nohlsearch  --關閉搜索高亮
set incsearch    --輸入搜索字符串的同時進行搜索
set ignorecase  --搜索時忽略大小寫


3、用戶界面

set ruler       --開啓光標位置提示
set number     --顯示行號
set nonu      --不顯示行號
set cmdheight=1  --命令部分高度爲1


4、編輯輔助配置

set autoindent     --自動縮進
set noautoindent   --不自動縮進
set smartindent     --智能縮進
set autoread       --當文件在外部被改變時,vim自動更新載入
set showmatch      --顯示匹配的括號

四、常用的狀態切換按鍵

1、普通模式 → 插入模式

i   小寫字母i,   在光標位置插入
a  小寫字母a,  在光標的下一個位置插入
I   大寫字母I,   在光標所在行的第一個非空格處插入
A  大寫字母A, 在光標所在行的最後一個字符處插入
o  小寫字母o,  在光標所在行的下一行處插入新行
O  大寫字母O, 在光標所在行的上一行處插入新航
r   小寫字母r,   替換光標所在處的字符一次
R  大寫字母R, 持續替換光標所在處的字符,直到按下「ESC」鍵


2、普通模式 → 命令模式

:w   保存文件
:w!  強制保存文件(前提是用戶有修改文件訪問權限的權限)
:q   退出緩衝區
:q!  強制退出緩衝區而不保存
:wq   保存文件並退出緩衝區
:wq!  強制保存文件並退出緩衝區(前提是用戶有修改文件訪問權限的權限)
:w [filename]  另存爲名爲filename文件
:r [filename]   將另外一個文件讀入到正在編輯的文件
:n1,n2 w [filename]  將n1行到n2行的數據另存爲名爲filename文件
:x      保存並退出
ZZ    保存並退出
ZQ   不保存退出


3、插入模式 → 視圖模式
按下「ESC」鍵

4、命令模式 → 視圖模式
按下「ESC」鍵

五、常用的光標移動按鍵

1、光標字符操作

h  向左箭頭鍵(←) 光標向左移動一個字符
l   向右箭頭鍵(→) 光標向右移動一個字符
j   向下箭頭鍵(↓) 光標向下移動一個字符
k  向上箭頭鍵(↑) 光標向上移動一個字符
$  光標移動到行尾(End),注意要按「Shift」鍵
0  光標移動到行首(Home)
^  光標移動到行首第一個非空白字符(Home),注意要按「Shift」鍵


2、光標詞操作

w   光標移動到後一詞的詞首
W  光標移動到後一詞的詞首且忽略標點符號
e   光標移動到後一詞的詞尾
E   光標移動到後一詞的詞尾且忽略標點符號
b   光標移動到前一詞的詞首
B   光標移動到前一詞的詞首且忽略標點符號


3、光標行操作

G     光標移動到文件的最後一行的第一個非空白字符
nG/ngg 光標移動到文件的第n行,相當於”:n”
gg    光標移動到文件的第1行的第一個非空白字符


4、光標頁操作

Ctrl + f   向下翻頁(Pagedown)
Ctrl + b  向上翻頁(Pageup)
Ctrl + d  向下翻半頁
Ctrl + u  向上翻半頁
「H」  光標移動到目前顯示頁的第一行
「M」  光標移動到目前顯示頁的中間行
「L」   光標移動到目前顯示頁的最後一行


5、光標自由操作

Ctrl + o  回到光標的上一位置

六、常用編輯操作按鍵

1、刪除操作(delete)

dd   刪除光標所在行
ndd    刪除從光標所在行開始,向下的n行
d1G   刪除從光標所在行開始,到第一行的所有行
dG   刪除從光標所在行開始,到最後一行的所有行
d$    刪除從光標所在位置,到行尾的所有字符
d0    刪除從光標所在位置,到行首的所有字符
x    每按一次,刪除光標所在位置的“後面”一個字符。
nx     刪除光標所在位置的“後面”n個字符。
X      大寫的X,每按一次,刪除光標所在位置的“前面”一個字符。
nX    刪除光標所在位置的“前面”n個字符。


2、複製操作(yank)

yy   複製光標所在行
nyy    複製從光標所在行開始,向下的n行
y1G   複製從光標所在行開始,到第一行的所有行
yG     複製從光標所在行開始,到最後一行的所有行
y$   複製從光標所在位置,到行尾的所有字符
y0   複製從光標所在位置,到行首的所有字符
J     將光標所在行與下一行合併成一行
yw     複製當前光標所在的字母到該單詞的最後一個字母
yaw   複製當前光標所在的單詞


3、粘貼操作(paste)

p  小寫字母p,粘貼剪貼板中的數據,從光標所在行的下一行開始
P  大寫字母P,粘貼剪貼板中的數據,從光標所在行的上一行開始~~


4、撤銷與重做操作(undo)

u   撤銷上一個操作


5、重複操作

.   重複上一操作


6、替換操作(replace)

r    替換光標所在處字符
R   進入替換模式,直至按ESC退出
cc     替換光標所在行
cw    替換光標所在的英文單詞
~    轉換大小寫
:n1,n2s/old/new/g  從n1到n2行將old替換成new,g表示全部替換
:1,$s/old/new/g   將整個文件的old替換成new
:1,$s/old/new/gc    c表示確認
   new (y/n/a/q/l/^E/^Y)? 表示如下:
    y:    替換當前內容
    n:   不替換
    a:    替換所有
    q:    退出
    l:   替換當前內容,並退出
    Ctrl + e:向後查找
    Ctrl + y:向前查找
Vim基本使用方法
Vim基本使用方法


7、排版操作

:le    光標所在行左對齊
:ri     光標所在行右對齊
:ce   光標所在行居中


8、查看歷史

:history  顯示最近在vim裏面輸入的歷史

七、常用的搜索快捷鍵

1、搜索字符串

/string    向下搜索字符串“string”
?string   向上搜索字符串“string”


2、重複上次搜索

n   根據上次搜索條件找到下一個匹配的字符串
N  根據上次搜索條件找到上一個匹配的字符串

八、常用多緩衝區操作按鍵

1、單一緩衝區打開多個文件

:files  顯示目前打開了哪些文件
:n    切換到下一個緩衝區內容
:N   切換到上一個緩衝區內容
:2n    切換到下下個緩衝區內容
:bn    下一個緩衝區內容(buffer next)
:bp    上一個緩衝區內容(buffer previous)


2、多個緩衝區打開多個文件

:sp [filename]  打開一個新的緩衝區,如果有filename則內容爲該文件,否則爲當前文件
Ctrl+w n  新建一個緩衝區
Ctrl+w q  退出光標所在的緩衝區
Ctrl+w j   光標移動到下一緩衝區
Ctrl+w k  光標移動到上一緩衝區
Ctrl+w l  光標移動到右一緩衝區
Ctrl+w h  光標移動到左一緩衝區
Ctrl+w v  左右切割窗口新建緩衝區
Ctrl+w s  上下切割窗口新建緩衝區
Ctrl+w o  使光標所在緩衝區最大化,其他緩衝區隱藏

九、關於加密

1、加密文本文件
當你用vim打開或新建一個文件時,如果加上-x參數,即:

# vim -x test.txt  --打開你要加密的文本文件
那麼vim會提示你:
Enter entryption key:
當你輸入了密碼後,vim會提示你重複輸入以確認:
Enter same key again:
當你在設置密碼的時候,是以*來顯示的,非明文。打開文件之後,:wq保存退出,密碼才生效。

當下次有人(包括你自己)打開該文件的時候,vim就會提示:
Enter encryption key:
這時你只要輸入你之前所設置的密碼就可以了。如果你輸入的密碼是錯誤的,vim並不會提示你密碼錯誤,而是顯示一堆無意義的垃圾代碼。


2、解除加密與重設密碼
打開你已經加密的文件,然後輸入:

# vim test.txt   --打開加密文件之後,輸入下面內容
:set key=

這樣,你的密碼就被設置爲空了,今後進入就不再需要輸入密碼了。而如果你向重設密碼的話,你可以輸入:

:X

注意是個大寫字母X。這時vim會提示你,只要反覆輸入兩次新的密碼就可以了:

Enter entryption key: *****
Enter sanme key again: *****

如果是清除密碼,連續敲兩次鍵盤就可以了

注意:
加密、解除密碼、重設密碼之後,一定要保存之後才能生效。
如果密碼輸入錯誤,vim不會拒絕訪問者編輯文件。在這種顯示亂碼的情況下編輯文件並保存,整個文件就會變得混亂不堪,無法辨識。今後即使使用正確的密碼打開文件,也看不到正確的文檔了。

最後,附一張Vim使用總結圖
Vim基本使用方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章