CentOS下VIM實(shí)用基本操作技巧詳解

文本編輯器有很多,圖形模式下有g(shù)edit、kwrite等編輯器,文本模式下的編輯器有vi、vim(vi的增強(qiáng)版本)和nano。vi和vim是Linux系統(tǒng)中最常用的編輯器。有人曾這樣的說過在世界上有三種人:一種是使用Vi的,另一種是使用是Emacs的,剩下的是第三種人。
(一)初級(jí)個(gè)性化配置你的vim
1、vim是什么?
vim是Vi IMproved,是編輯器Vi的一個(gè)加強(qiáng)版,一個(gè)極其強(qiáng)大并符合IT工程師(程序員、運(yùn)維)習(xí)慣的編輯器。如果你是一名職業(yè)的SE,那么一定在尋找一款出色的能夠自由定制、滿足靈活編輯功能的編輯器。那么答案,就是vim或者Emacs。
2、配置文件在哪?
Windows系統(tǒng)的配置文件是vim安裝目錄下的vimrc文件。
Linux系統(tǒng),RHEL和CentOS的配置文件是/etc/vimrc,Debian和Ubuntu的配置文件是/usr/share/vim/vimrc。
Mac OS X的配置文件是/usr/share/vim/vimrc。
3、vimRC中的RC是什么意思?
為什么把這么個(gè)沒有意義的問題也列出來?原因很簡(jiǎn)單,就是我在接觸vim之初第二個(gè)想問的問題就是這個(gè)(第一個(gè)就是上面的“1”)。一般在運(yùn)行某個(gè)軟件、環(huán)境或工具之初,要初始執(zhí)行的一些命令,稱為Run Commands,即RC。根據(jù)Wikipedia.org的記載,RC縮寫的用法源自MIT的相容分時(shí)操作系統(tǒng)(Compatible Time-Sharing System,CTSS)[參考1]。所以以后如果你看到了SystemRC或者ScreenRC,也就知其緣由了。
4、三種基本模式
在《大家來學(xué)vim》中提到vim有6+5種模式,但除了細(xì)分程度不同外,實(shí)際上常用的只有3種模式:Normal Mode、Insert Mode和Command-line Mode。
從Normal Mode進(jìn)入Insert Mode,可以按i、I、a、A、o、O、r、R即可。其中i和I表示插入(Insert),r和R表示替換(replace)。
從Insert Mode進(jìn)入Normal Mode,只需要按ESC鍵即可。
從Normal Mode進(jìn)入Command-line Mode,可以按“:”、“/”、“?”。其中“:”表示輸入vim命令,“/”表示后面輸入要向下搜索的字符串,“?”表示后面輸入要向上搜索字符串。
從Command-line Mode進(jìn)入Normal Mode,只需要按ESC鍵即可了。
你可以把Normal Mode理解為常態(tài),進(jìn)入其他任何一種模式,需要某種特殊方式,而從其他特殊模式回到Normal Mode,就按ESC鍵即可。
5、vim中那些最最常用的配置
當(dāng)你嘗試去google一些其他人的vimrc配置時(shí),你一定會(huì)找到一篇叫做《The ultimate vim configuration》的文章,不過它的作者,Amix后來在他的博客上提到[參考2],這份在google搜索vimrc會(huì)排在前十的vim配置文件,如今已經(jīng)過時(shí)了,所以他提供了一些更新信息。
(1)顏色設(shè)置
syntax on “開啟代碼高亮
syntax off “關(guān)閉代碼高亮
syntax enable “開啟代碼高亮
(2)搜索設(shè)置
set hlsearch “開啟搜索高亮
set nohlsearch “關(guān)閉搜索高亮
set incsearch “輸入搜索字符串的同時(shí)進(jìn)行搜索
set ignorecase “搜索時(shí)忽略大小寫
(3)用戶界面
set showmode “開啟模式顯示
set ruler “開啟光標(biāo)位置提示
set number “顯示行號(hào)
set nonu “不顯示行號(hào)
set cursorline “強(qiáng)調(diào)光標(biāo)所在行
set cmdheight=1 “命令部分高度為1
(4)編輯輔助配置
set autoindent “自動(dòng)縮進(jìn)
set noautoindent “不自動(dòng)縮進(jìn)
set smartindent “智能縮進(jìn)
set autoread “當(dāng)文件在外部被改變時(shí),vim自動(dòng)更新載入
set showmatch “顯示匹配的括號(hào)
參考:
[1]Run Commands,http://en.wikipedia.org/wiki/Run_commands
[2]The Ultimate vim Configuration(vimRC),http://amix.dk/blog/post/19486
(二)常用的狀態(tài)切換按鍵
1、Normal Mode -> Insert Mode
i 小寫字母i,在光標(biāo)位置插入
a 小寫字母a,在光標(biāo)的下一個(gè)位置插入
I 大寫字母I,在光標(biāo)所在行的第一個(gè)非空格處插入
A 大寫字母A,在光標(biāo)所在行的最后一個(gè)字符處插入
o 小寫字母o,在光標(biāo)所在行的下一行處插入新行
O 大寫字母O,在光標(biāo)所在行的上一行處插入新航
r 小寫字母r,替換光標(biāo)所在處的字符一次
R 大寫字母R,持續(xù)替換光標(biāo)所在處的字符,直到按下ESC
2、Normal Mode -> Command-line Mode
:w 保存文件
:w! 強(qiáng)制保存文件(前提是用戶有修改文件訪問權(quán)限的權(quán)限)
:q 退出緩沖區(qū)
:q! 強(qiáng)制退出緩沖區(qū)而不保存
:wq 保存文件并退出緩沖區(qū)
:ZZ 保存文件并且退出
:wq! 強(qiáng)制保存文件并退出緩沖區(qū)(前提是用戶有修改文件訪問權(quán)限的權(quán)限)
:w <filename> 另存為名為filename文件
:n1,n2 w <filename> 將n1行到n2行的數(shù)據(jù)另存為名為filename文件
: x 如果文件有更改,則保存后退出。否則直接退出。
3、Insert Mode -> Normal Mode
按下ESC鍵
4、Command-line -> Normal Mode
按下ESC鍵
(三)常用光標(biāo)移動(dòng)按鍵
1、光標(biāo)字符操作
j 向下
k 向上
h 向左
l 向右
$ 光標(biāo)移動(dòng)到行尾(End),注意要按Shift鍵
0 光標(biāo)移動(dòng)到行首(Home)
^ 光標(biāo)移動(dòng)到行首第一個(gè)非空白字符(Home),注意要按Shift鍵
2、光標(biāo)詞操作
w 光標(biāo)移動(dòng)到后一詞的詞首
W 光標(biāo)移動(dòng)到后一詞的詞首且忽略標(biāo)點(diǎn)符號(hào)
e 光標(biāo)移動(dòng)到后一詞的詞尾
E 光標(biāo)移動(dòng)到后一詞的詞尾且忽略標(biāo)點(diǎn)符號(hào)
b 光標(biāo)移動(dòng)到前一詞的詞首
B 光標(biāo)移動(dòng)到前一詞的詞首且忽略標(biāo)點(diǎn)符號(hào)
3、光標(biāo)句操作
) 光標(biāo)移動(dòng)到后一句的句首
( 光標(biāo)移動(dòng)到前一句的句首
% 配合“(”和“)”使用,尋找相匹配的另一半
4、光標(biāo)行操作
G 光標(biāo)移動(dòng)到文檔的最后一行的第一個(gè)非空白字符
nG 光標(biāo)移動(dòng)到文檔的第n行,相當(dāng)于”:n”
gg 光標(biāo)移動(dòng)到文檔的第1行的第一個(gè)非空白字符,相當(dāng)于”1G”,也相當(dāng)于”:1″
<N> 光標(biāo)向下移動(dòng)N行
5、光標(biāo)段操作
} 光標(biāo)移動(dòng)到下一段的段首
{ 光標(biāo)移動(dòng)到上一段的段首
% 配合“(”和“)”使用,尋找相匹配的另一半
6、光標(biāo)頁操作
Ctrl+f 向下翻頁(Pagedown)
Ctrl+b 向上翻頁(Pageup)
Ctrl+d 向下翻半頁
Ctrl+u 向上翻半頁
H 光標(biāo)移動(dòng)到目前顯示頁的第一行
M 光標(biāo)移動(dòng)到目前顯示頁的中間行
L 光標(biāo)移動(dòng)到目前顯示頁的最后一行
7、光標(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)所在位置,到行首的所有字符
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)所在位置,到行首的所有字符
3、粘貼操作(paste)
p 小寫字母p,粘貼剪貼板中的數(shù)據(jù),從光標(biāo)所在行的下一行開始
P 大寫字母P,粘貼剪貼板中的數(shù)據(jù),從光標(biāo)所在行的上一行開始
4、撤銷與重做操作(undo,redo)
u (Undo)撤銷上一個(gè)操作
Ctrl+r (Redo)重做上一個(gè)操作
5、重復(fù)操作
. 重復(fù)上一操作
6、替換操作(replace)
r 替換光標(biāo)所在處字符
R 進(jìn)入替換模式,直至按ESC退出
cc 替換光標(biāo)所在行
cw 替換光標(biāo)所在的英文單詞
~ 轉(zhuǎn)換大小寫
7、排版操作
:le<ft> 光標(biāo)所在行左對(duì)齊
:ri<ght> 光標(biāo)所在行右對(duì)齊
:ce<nter> 光標(biāo)所在行居中
(五)常用多緩沖區(qū)操作按鍵
1、多文件編輯模式
(1)argument list模式,就是在打開vim編輯器時(shí),攜帶多個(gè)文件路徑參數(shù)。
(2)buffer list模式,就是在進(jìn)入vim編輯器后,打開多個(gè)緩沖區(qū)進(jìn)行編輯。
2、單一緩沖區(qū)打開多個(gè)文件
:files 顯示目前打開了哪些文件
:n 切換到下一個(gè)緩沖區(qū)內(nèi)容
:N 切換到上一個(gè)緩沖區(qū)內(nèi)容
:2n 切換到下下個(gè)緩沖區(qū)內(nèi)容
:bn 下一個(gè)緩沖區(qū)內(nèi)容(buffer next)
:bp 上一個(gè)緩沖區(qū)內(nèi)容(buffer previous)
3、多個(gè)緩沖區(qū)打開多個(gè)文件
:sp [filename] 打開一個(gè)新的緩沖區(qū),如果有filename則內(nèi)容為該文件,否則為當(dāng)前文件
Ctrl+w n 新建一個(gè)緩沖區(qū)
Ctrl+w q 退出光標(biāo)所在的緩沖區(qū)
Ctrl+w j 光標(biāo)移動(dòng)到下一緩沖區(qū)
Ctrl+w k 光標(biāo)移動(dòng)到上一緩沖區(qū)
Ctrl+w l 光標(biāo)移動(dòng)到右一緩沖區(qū)
Ctrl+w h 光標(biāo)移動(dòng)到左一緩沖區(qū)
Ctrl+w v 左右切割窗口新建緩沖區(qū)
Ctrl+w s 上下切割窗口新建緩沖區(qū)
Ctrl+w o 使光標(biāo)所在緩沖區(qū)最大化,其他緩沖區(qū)隱藏
(六)常用搜索與書簽操作快捷鍵
1. 搜索字符串
/string 向下搜索字符串“string”
?string 向上搜索字符串“string”
2. 重復(fù)上次搜索
n 根據(jù)上次搜索條件找到下一個(gè)匹配的字符串
N 根據(jù)上次搜索條件找到上一個(gè)匹配的字符串
3. 搜索單詞
* 向下搜索光標(biāo)所在處的單詞(完全匹配)
# 向上搜索光標(biāo)所在處的單詞(完全匹配)
g* 向下搜索光標(biāo)所在處的單詞(部分匹配)
g# 向上搜索光標(biāo)所在處的單詞(部分匹配)
4. 標(biāo)記書簽(mark)
ma a為小寫字母,為光標(biāo)所在處設(shè)定文檔書簽a
mA A為大寫字母,為光標(biāo)所在處設(shè)定全局書簽A
5. 使用書簽(mark)
`a 到文檔書簽a處,Tab鍵上方
‘a 到文檔書簽a所在行行首處,Enter鍵左邊
`A 到全局書簽A處,Tab鍵上方
‘A 到全局書簽A所在行行首處,Enter鍵左邊
`n 如果n=0,緩沖區(qū)將打開上一次的文檔,且光標(biāo)在上次編輯最后的位置,1-9以此類推
‘n 如果n=0,緩沖區(qū)將打開上一次的文檔,且光標(biāo)在上次編輯最后的位置所在行的行首,1-9以此類推
6. 查看書簽列表
:marks 查看當(dāng)前所有書簽
(七)關(guān)于加密
1、加密你的文本文件
當(dāng)你用vim打開或新建一個(gè)文件時(shí),如果加上-x參數(shù),即:
vim -x filename
那么vim會(huì)提示你:
Enter entryption key:
當(dāng)你輸入了密碼后,vim會(huì)提示你重復(fù)輸入以確認(rèn):
Enter same key again:
你在設(shè)置密碼的時(shí)候,是以*來顯示的,非明文。當(dāng)下次有人(包括你自己)打開該文件的時(shí)候,vim就會(huì)提示:
Need encryption key for “main.cpp”
Enter encryption key:
這時(shí)你只要輸入你之前所設(shè)置的密碼就可以了。如果你輸入的密碼是錯(cuò)誤的,vim并不會(huì)提示你密碼錯(cuò)誤,而是顯示一堆無意義的垃圾代碼。
2、解除加密與重設(shè)密碼
打開你已經(jīng)加密的文件,然后輸入:
:set key=
這樣,你的密碼就被設(shè)置為空了,今后進(jìn)入就不再需要輸入密碼了。而如果你向重設(shè)密碼的話,你可以輸入:
:X
注意是個(gè)大寫字母X。這時(shí)vim會(huì)提示你,只要反復(fù)輸入兩次新的密碼就可以了:
Enter entryption key: *****
Enter sanme key again: *****
3、加密引起的問題
vim的加密功能,可以說是問題一大堆。比如:
(1)如果密碼輸入錯(cuò)誤,vim不會(huì)拒絕訪問者編輯文件。在這種顯示亂碼的情況下編輯文件并保存,整個(gè)文件就會(huì)變得混亂不堪,無法辨識(shí)。今后即使使用正確的密碼打開文件,也看不到正確的文檔了。
(2)如果對(duì)一個(gè)需要編譯的源代碼文件進(jìn)行了加密,則無法通過編譯器的語法檢查。
(3)交換文件是無法加密的。這樣引起什么問題?問題就是如果其他用戶想辦法讀取到了你的交換文件,就可以繞過解密環(huán)節(jié),你的加密也就無意義了。解決的辦法就是,不使用交換文件。方法有三個(gè),一是修改你的vimrc文件(vim配置文件):
set noswapfile
二是在用vim打開文件之初就輸入命令:
vim -x -n filename
(注意-x是加密參數(shù),與我們所說的swap沒有關(guān)系,不要搞混)
三是在進(jìn)入vim編輯該文件后,輸入:
:setlocal noswapfile
不過不使用交換文件的壞處就是,你可能會(huì)面臨數(shù)據(jù)丟失而無法找回的悲劇。所以又想用加密,又想不丟失文件的朋友們,就勤按“:w”吧。
相關(guān)文章
linux系統(tǒng)下Centos中"vim配置"到底有多強(qiáng)大
當(dāng)我們?cè)趌inux系統(tǒng)中使用vim編輯器時(shí),總感覺vim編輯器的界面不是太美觀,不能讓用戶使用的舒服,不僅僅頁面設(shè)置不習(xí)慣,沒有顯示的行號(hào),也沒有自動(dòng)的縮進(jìn),頁面的背景也2016-11-22在CentOS上如何使用vim設(shè)置網(wǎng)絡(luò)以便CentOS能夠聯(lián)網(wǎng)
對(duì)CentOS系統(tǒng)進(jìn)行網(wǎng)絡(luò)相關(guān)設(shè)置以便CentOS能夠聯(lián)網(wǎng),下面小編給大家介紹下CentOS使用vim手動(dòng)配置網(wǎng)絡(luò)相關(guān)的方法,感興趣的朋友可以看看2015-03-23- 這篇文章主要介紹了CentOS系統(tǒng)中安裝高亮vim編輯工具的方法,需要的朋友可以參考下2014-05-01
- 今天小編為大家?guī)淼氖荂entOS虛擬機(jī)下的相關(guān)操作詳解。希望可以幫助到大家,有需要的朋友一起去看看吧2017-01-05
- 今天小編為大家?guī)淼氖荂entOS系統(tǒng)基本操作常用命令詳解;希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧2017-01-05
CentOS系統(tǒng)如何添加用戶操作日志?CentOS系統(tǒng)添加用戶操作日志的方法
一些朋友不知道CentOS系統(tǒng)如何添加用戶操作日志?下面小編就為大家?guī)鞢entOS系統(tǒng)添加用戶操作日志的方法;有需要的朋友一起去看看吧2016-12-15- 今天小編為大家?guī)淼氖荂entOS中文件夾基本操作命令的講解;希望對(duì)大家會(huì)有幫助;有需要的朋友可以過來看看2016-12-12
- 這篇文章主要介紹了centos 安裝與操作方法,需要的朋友可以參考下2016-11-21
給VMware虛擬機(jī)中的CentOS分區(qū)擴(kuò)容的操作筆記
這篇文章主要介紹了給VMware虛擬機(jī)中的CentOS分區(qū)擴(kuò)容的操作筆記,先在VMware軟件中給虛擬機(jī)添加容量然后在虛擬的CentOS中操作,基于LVM,需要的朋友可以參考下2016-02-28CentOS 6.5 Linux服務(wù)器操作系統(tǒng)
CentOS 是一個(gè)企業(yè)級(jí)的 Linux 發(fā)行版本,它源于上游操作系統(tǒng)提供者(UOP)1免費(fèi)公開的源代碼2014-04-09