成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

Vim實用技巧使用手冊

2012-08-25 08:55:37來源:Linux Today作者:

vim是Vi IMproved,是編輯器Vi的一個加強版,一個極其強大并符合IT工程師(程序員、運維)習慣的編輯器。如果你是一名職業的SE,那么一定在尋找一款出色的能夠自由定制、滿足靈活編輯功能的編輯器。

(一)初級個性化配置你的vim

1、vim是什么?

vim是Vi IMproved,是編輯器Vi的一個加強版,一個極其強大并符合IT工程師(程序員、運維)習慣的編輯器。如果你是一名職業的SE,那么一定在尋找一款出色的能夠自由定制、滿足靈活編輯功能的編輯器。那么答案,就是vim或者Emacs。而這一套連續的博文,就為您介紹vim編輯器。至于另一款強大的編輯器Emacs,我們會在今后的一個系列博文中看到。

2、配置文件在哪?

Windows系統的配置文件是vim安裝目錄下的vimrc文件。

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

Mac OS X的配置文件是/usr/share/vim/vimrc。

3、vimRC中的RC是什么意思?

為什么把這么個沒有意義的問題也列出來?原因很簡單,就是我在接觸vim之初第二個想問的問題就是這個(第一個就是上面的“1”)。一般在運行某個軟件、環境或工具之初,要初始執行的一些命令,稱為Run Commands,即RC。根據Wikipedia.org的記載,RC縮寫的用法源自MIT的相容分時操作系統(Compatible Time-Sharing System,CTSS)[參考1]。所以以后如果你看到了SystemRC或者ScreenRC,也就知其緣由了。

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為小寫字母,為光標所在處設定文檔書簽amA 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 查看當前所有書簽

(7)關于加密

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”吧。

關鍵詞:Vim

贊助商鏈接:

主站蜘蛛池模板: 江都市| 麻江县| 桂林市| 苏尼特左旗| 合江县| 响水县| 崇文区| 正安县| 芜湖县| 凤阳县| 集安市| 喀喇| 介休市| 湟源县| 海原县| 花垣县| 木兰县| 卢氏县| 五原县| 三穗县| 瑞丽市| 疏附县| 天祝| 大田县| 湖口县| 南召县| 项城市| 灵寿县| 金秀| 稻城县| 汝州市| 台湾省| 桐柏县| 普兰县| 长兴县| 郴州市| 商丘市| 孝昌县| 长顺县| 安宁市| 银川市|