《Linux基礎知識之vim使用技巧匯總》要點:
本文介紹了Linux基礎知識之vim使用技巧匯總,希望對您有用。如果有疑問,可以聯系我們。
vim是Vi IMproved,是編輯器Vi的一個加強版,一個極其強大并符合IT工程師(程序員、系統運維)習慣的編輯器.如果你是一名職業的系統工程師,那么一定在尋找一款出色的能夠自由定制、滿足靈活編輯功能的編輯器.那么答案,就是vim或者Emacs.這里要介紹的是前者vim.
1. vim配置文件在哪?
Linux操作系統中,配置文件通常是/etc/vimrc或者是/usr/share/vim/vimrc,你可以使用find命令在系統根目錄下搜索下vimrc即可.
2. 在vim中使用空格space代替TAB
修改vim配置文件vimrc文件,增加下面的幾行:
set expandtab # 使用space代替tab.
set tabstop=4 # 四個空格.
set shiftwidth=4 # 自動縮進的寬度
4、三種基本模式
在《大家來學vim》中提到vim有6+5種模式,但除了細分程度不同外,實際上常用的只有3種模式:Normal Mode、Insert Mode和Command-line Mode.
從Normal Mode進入Insert Mode,可以按i、I、a、A、o、O、r、R即可.其中i和I表示插入(Insert),r和R表示替換(replace).
從Insert Mode進入Normal Mode,只需要按ESC鍵即可.
從Normal Mode進入Command-line Mode,可以按“:”、“/”、“?”.其中“:”表示輸入vim命令,“/”表示后面輸入要向下搜索的字符串,“?”表示后面輸入要向上搜索字符串.
從Command-line Mode進入Normal Mode,只需要按ESC鍵即可了.
你可以把Normal Mode理解為常態,進入其他任何一種模式,需要某種特殊方式,而從其他特殊模式回到Normal Mode,就按ESC鍵即可.
5、vim中那些最最常用的配置
當你嘗試去google一 些其他人的vimrc配置時,你一定會找到一篇叫做《The ultimate vim configuration》的文章,不過它的作者,Amix后來在他的博客上提到[參考2],這份在google搜索vimrc會排在前十的vim配置 文件,如今已經過時了,所以他提供了一些更新信息.
(1)顏色設置
syntax?on???????"開啟代碼高亮
syntax?off??????"關閉代碼高亮
syntax?enable???"開啟代碼高亮
(2)搜索設置
set?hlsearch????"開啟搜索高亮
set?nohlsearch??"關閉搜索高亮
set?incsearch???"輸入搜索字符串的同時進行搜索
set?ignorecase??"搜索時忽略大小寫
(3)用戶界面
set?showmode????????"開啟模式顯示
set?ruler???????????"開啟光標位置提示
set?number??????"顯示行號
set?nonu????????????"不顯示行號
set?cursorline??????"強調光標所在行
set?cmdheight=1?"命令部分高度為1
(4)編輯輔助配置
set?autoindent??????"自動縮進
set?noautoindent????"不自動縮進
set?smartindent?????"智能縮進
set?autoread????????"當文件在外部被改變時,vim自動更新載入
set?showmatch???????"顯示匹配的括號
參考:
[1]Run Commands,http://en.wikipedia.org/wiki/Run_commands
[2]The Ultimate vim Configuration(vimRC),http://amix.dk/blog/post/19486
1、Normal Mode -> Insert Mode
i 小寫字母i,在光標位置插入
a 小寫字母a,在光標的下一個位置插入
I 大寫字母I,在光標所在行的第一個非空格處插入
A 大寫字母A,在光標所在行的最后一個字符處插入
o 小寫字母o,在光標所在行的下一行處插入新行
O 大寫字母O,在光標所在行的上一行處插入新航
r 小寫字母r,替換光標所在處的字符一次
R 大寫字母R,持續替換光標所在處的字符,直到按下ESC
2、Normal Mode -> Command-line Mode
:w 保存文件
:w! 強制保存文件(前提是用戶有修改文件訪問權限的權限)
:q 退出緩沖區
:q! 強制退出緩沖區而不保存
:wq 保存文件并退出緩沖區
:wq! 強制保存文件并退出緩沖區(前提是用戶有修改文件訪問權限的權限)
:w <filename> 另存為名為filename文件
:n1,n2 w <filename> 將n1行到n2行的數據另存為名為filename文件
:x 如果文件有更改,則保存后退出.否則直接退出.
3、Insert Mode -> Normal Mode
按下ESC鍵
4、Command-line -> Normal Mode
按下ESC鍵
1、光標字符操作
j 向下
k 向上
h 向左
l 向右
$ 光標移動到行尾(End),注意要按Shift鍵
0 光標移動到行首(Home)
^ 光標移動到行首第一個非空白字符(Home),注意要按Shift鍵
2、光標詞操作
w 光標移動到后一詞的詞首
W 光標移動到后一詞的詞首且忽略標點符號
e 光標移動到后一詞的詞尾
E 光標移動到后一詞的詞尾且忽略標點符號
b 光標移動到前一詞的詞首
B 光標移動到前一詞的詞首且忽略標點符號
3、光標句操作
) 光標移動到后一句的句首
( 光標移動到前一句的句首
% 配合“(”和“)”使用,尋找相匹配的另一半
4、光標行操作
G 光標移動到文檔的最后一行的第一個非空白字符
nG 光標移動到文檔的第n行,相當于”:n”
gg 光標移動到文檔的第1行的第一個非空白字符,相當于”1G”,也相當于”:1″
<N> 光標向下移動N行
5、光標段操作
} 光標移動到下一段的段首
{ 光標移動到上一段的段首
% 配合“(”和“)”使用,尋找相匹配的另一半
6、光標頁操作
Ctrl+f 向下翻頁(Pagedown)
Ctrl+b 向上翻頁(Pageup)
Ctrl+d 向下翻半頁
Ctrl+u 向上翻半頁
H 光標移動到目前顯示頁的第一行
M 光標移動到目前顯示頁的中間行
L 光標移動到目前顯示頁的最后一行
7、光標自由操作
Ctrl+o 回到光標的上一位置
1、刪除操作(delete)
dd 刪除光標所在行
ndd 刪除從光標所在行開始,向下的n行
d1G 刪除從光標所在行開始,到第一行的所有行
dG 刪除從光標所在行開始,到最后一行的所有行
d$ 刪除從光標所在位置,到行尾的所有字符
d0 刪除從光標所在位置,到行首的所有字符
2、復制操作(yank)
yy 復制光標所在行
nyy 復制從光標所在行開始,向下的n行
y1G 復制從光標所在行開始,到第一行的所有行
yG 復制從光標所在行開始,到最后一行的所有行
y$ 復制從光標所在位置,到行尾的所有字符
y0 復制從光標所在位置,到行首的所有字符
3、粘貼操作(paste)
p 小寫字母p,粘貼剪貼板中的數據,從光標所在行的下一行開始
P 大寫字母P,粘貼剪貼板中的數據,從光標所在行的上一行開始
4、撤銷與重做操作(undo,redo)
u (Undo)撤銷上一個操作
Ctrl+r (Redo)重做上一個操作
5、重復操作
. 重復上一操作
6、替換操作(replace)
r 替換光標所在處字符
R 進入替換模式,直至按ESC退出
cc 替換光標所在行
cw 替換光標所在的英文單詞
~ 轉換大小寫
7、排版操作
:le<ft> 光標所在行左對齊
:ri<ght> 光標所在行右對齊
:ce<nter> 光標所在行居中
1、多文件編輯模式
(1)argument list模式,就是在打開vim編輯器時,攜帶多個文件路徑參數.
(2)buffer list模式,就是在進入vim編輯器后,打開多個緩沖區進行編輯.
2、單一緩沖區打開多個文件
:files 顯示目前打開了哪些文件
:n 切換到下一個緩沖區內容
:N 切換到上一個緩沖區內容
:2n 切換到下下個緩沖區內容
:bn 下一個緩沖區內容(buffer next)
:bp 上一個緩沖區內容(buffer previous)
3、多個緩沖區打開多個文件
: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. 搜索字符串
/string?向下搜索字符串“string”
?string?向上搜索字符串“string”
2. 重復上次搜索
n?根據上次搜索條件找到下一個匹配的字符串
N?根據上次搜索條件找到上一個匹配的字符串
3. 搜索單詞
*?向下搜索光標所在處的單詞(完全匹配)
#?向上搜索光標所在處的單詞(完全匹配)
g*?向下搜索光標所在處的單詞(部分匹配)
g#?向上搜索光標所在處的單詞(部分匹配)
4. 標記書簽(mark)
ma?a為小寫字母,為光標所在處設定文檔書簽a
mA?A為大寫字母,為光標所在處設定全局書簽A
5. 使用書簽(mark)
`a?到文檔書簽a處,Tab鍵上方
'a?到文檔書簽a所在行行首處,Enter鍵左邊
`A?到全局書簽A處,Tab鍵上方
'A?到全局書簽A所在行行首處,Enter鍵左邊
`n?如果n=0,緩沖區將打開上一次的文檔,且光標在上次編輯最后的位置,1-9以此類推
'n?如果n=0,緩沖區將打開上一次的文檔,且光標在上次編輯最后的位置所在行的行首,1-9以此類推
6. 查看書簽列表
:marks
?查看當前所有書簽
1、加密你的文本文件
當你用vim打開或新建一個文件時,如果加上-x參數,即:
vim?-x?filename
那么vim會提示你:
Enter?entryption?key:
當你輸入了密碼后,vim會提示你重復輸入以確認:
Enter?same?key?again:
你在設置密碼的時候,是以*來顯示的,非明文.當下次有人(包括你自己)打開該文件的時候,vim就會提示:
Need?encryption?key?for?"main.cpp"
Enter?encryption?key:
這時你只要輸入你之前所設置的密碼就可以了.如果你輸入的密碼是錯誤的,vim并不會提示你密碼錯誤,而是顯示一堆無意義的垃圾代碼.
2、解除加密與重設密碼
打開你已經加密的文件,然后輸入:
:set?key=
這樣,你的密碼就被設置為空了,今后進入就不再需要輸入密碼了.而如果你向重設密碼的話,你可以輸入:
:X
注意是個大寫字母X.這時vim會提示你,只要反復輸入兩次新的密碼就可以了:
Enter?entryption?key:?*****
Enter?sanme?key?again:?*****
3、加密引起的問題
vim的加密功能,可以說是問題一大堆.比如:
(1)如果密碼輸入錯誤,vim不會拒絕訪問者編輯文件.在這種顯示亂碼的情況下編輯文件并保存,整個文件就會變得混亂不堪,無法辨識.今后即使使用正確的密碼打開文件,也看不到正確的文檔了.
(2)如果對一個需要編譯的源代碼文件進行了加密,則無法通過編譯器的語法檢查.
(3)交換文件是無法加密的.這樣引起什么問題?問題就是如果其他用戶想辦法讀取到了你的交換文件,就可以繞過解密環節,你的加密也就無意義了.解決的辦法就是,不使用交換文件.方法有三個,一是修改你的vimrc文件(vim配置文件):
set?noswapfile
二是在用vim打開文件之初就輸入命令:
vim?-x?-n?filename
(注意-x是加密參數,與我們所說的swap沒有關系,不要搞混)
三是在進入vim編輯該文件后,輸入:
:setlocal?noswapfile
不過不使用交換文件的壞處就是,你可能會面臨數據丟失而無法找回的悲劇.所以又想用加密,又想不丟失文件的朋友們,就勤按“:w”吧.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4659.html