首頁 > 軟體

Vim入門教學

2020-06-16 17:46:54

剛工作時搞過一段時間的VIM和EMACS,不過作為一個Java程式猿,用VIM來寫JAVA程式碼還是不大現實(現在用IDEA),後面也就不了了之。最近在寫前端程式碼和寫部落格時感覺VIM還是不錯的,於是決定再把VIM拾起來。

裸的VIM並不是太好用,需要安裝需要的外掛,之前的玩法是下載對應的壓縮包並修改設定,這個過程極其考驗耐心和人品!

使用vundle管理外掛

vundle讓你不需要在糾結到哪裡去找外掛和設定,所有的外掛都以相似的方式進行管理,很大程度上降低了使用成本!

外掛存放的路徑為~/.vim/bundle/,目錄建好後下載vundle:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

以後設定都可以在~/.vimrc裡面完成:

set nocompatible                       " 關閉相容模式
filetype off                           "關閉對檔案型別的自動檢測set rtp+=~/.vim/bundle/Vundle.vim      " 加入執行時路徑
call vundle#begin()                    "初始化" 外掛列表開始
Plugin 'VundleVim/Vundle.vim'          
"外掛列表結束
call vundle#end()                      " 完成
filetype plugin indent on              " 開啟檔案型別檢測

常用的外掛來源設定有:

來源說明
github.com github上託管的外掛(Plugin ‘tpope/vim-fugitive’)
vim-scripts.org/vim/scripts.html 在該站維護的外掛(Plugin ‘L9’)

設定完成後開啟VIM就可以開始使用了,用到下面命令:

  1. :PluginList:開啟外掛列表
  2. :PluginInstall:安裝外掛
  3. :PluginSearch foo:搜尋外掛,找到之後可以選擇安裝
  4. :PluginClean:清理不用的外掛(這個不是太懂)

最後舉個例子,當你想安裝winmanager外掛時:

  1. 在.vimrc中新增Plugin 'winmanager'
  2. 開啟vim
  3. 執行:PluginList就可以看到winmanager外掛
  4. 執行:PluginInstall進行安裝

是不是比以前簡單很多了?沒有外掛管理的繁瑣,下面我們正式進入VIM之旅!

基本用法

剛從EditPlus切換到VIM時非常不適應,我只想簡單地編輯檔案而已,居然還要去考慮切換不同的模式:

  1. 命令模式
  2. 編輯模式
  3. 可視模式

時間久一點就感覺這樣區分開還是很合理的,在命令模式可以通過一些簡單的命令對文字進行快速的檢視、修改,比用滑鼠在EditPlus裡面操作會更有效率。該模式用到的命令非常多,下面分類來看!

一、移動游標

可以在各個維度上進行隨意地跳轉:

命令作用
h/j/k/l 向上/向下/向上/向右移動
ctrl+f/b 向上/向下翻頁
ctrl+d/u 向上/向下翻半頁
$/0/^ 行尾/行首/首字元
(/) 上一句/下一句
w/b 下一個詞/上一個詞
gg/G 文件開始/文件結束
% 括號對應的匹配處
ngg/nG/:n 到第n行
H/M/L 螢幕頂部/中間/底部
*/# 當前字元下一次/上一次出現的位置

二、查詢替換

命令作用
:s/s1/s2 下一個s1替換為s2
:%s/s1/s2 s1全部替換為s2
:s/s1/s2/g 當前行的s1替換為s2
:n1,n2 s/s1/s2/g 從n1到n2行的s1替換為s2
/xxxx 查詢xxxx,找到以後按n向下繼續查詢、N則向上繼續查詢
mx 插入書籤(x為小寫字母),以後可以用`x跳轉到該書籤處
`. 上次編輯的位置

三、複製、剪下、貼上、刪除

在VIM中存在一些暫存器用來存放複製、刪除的內容:

  1. ":最近刪除或複製的內容
  2. 0:最近複製的內容
  3. 1、2、、9:最近一次的刪除內容放入1,原先1的內容放入2,以此類推
  4. %:檔名
  5. ::命令
  6. /:查詢的字串

編輯時可以用:reg來檢視各暫存器中的內容!為了方便選取文字VIM中引入了可視模式,使用時先移動游標到開始位置,然後用下面命令進入可視模式:

  1. ctrl+v:塊
  2. v:普通
  3. V:行

接著移動游標就可以選中文字並進行操作了!編輯時常用的命令有:

命令作用
y 複製選中文字,用"ny來複製到第n號暫存器
x 剪下選中文字或者刪除當前字元
d 刪除選中文字
p 貼上,用"np來貼上第n號暫存器中的內容
dd 刪除當前行
dw 刪除游標後的一個詞
dl 刪除一個字元
D/C 刪除到行尾
yy/Y 複製一行

過程中可以使用uctrl+r來進行undo和redo。

四、宏

在造資料的時候常會遇到一些簡單、機械的操作,這種一般是可以用宏來搞定:

  1. px:開始記錄宏操作,x為小寫字母
  2. 操作
  3. q:將操作記錄到暫存器中
  4. @x:執行暫存器x中的操作
  5. @@:執行最近一次的錄製

同樣可以用:reg來檢視暫存器狀態。

五、編輯

需要輸入時通過下面命令進入插入模式:

命令說明
i/a 游標前/後插入
I/A 在行首/尾插入
o/O 後/前插入一行進行編輯
s/S 刪除一個字元/一行進行編輯
R 替換模式,在畫圖的時候非常好用

多屏操作

寫程式碼的時候通過搞幾個檔案是常有的事,分幾個螢幕來做非常舒服,開啟分屏方式有:

  1. vim -On file1 file2 ...:垂直分屏開啟多個檔案
  2. vim -on file1 file2 ...:水平分屏開啟多個檔案
  3. ctrl+w s:上下分割當前檔案
  4. ctrl+w v:水平分割當前檔案
  5. :sp filename:上下分割開啟新檔案
  6. :vsp filename:水平分割開啟新檔案

需要切換工作螢幕時可以使用命令ctrl+w h/j/k/l/w,其中h/j/k/l是按照方向移動,w是移動到下一個螢幕!當你覺得螢幕的順序有點不爽時可以使用ctrl+w H/J/K/L來移動分屏。另外也可以調整螢幕大小:

  1. ctrl+w =:所有螢幕都一樣的高度
  2. ctrl+w -:降低高度
  3. ctrl+w +:增加高度

在編輯的時候可以在分屏中瀏覽目錄:

  1. :He:上下分屏,在下面(:He!則在上面)瀏覽目錄
  2. :Ve:左右分屏,在左面(:Ve!則在右面)瀏覽目錄

還可以使用:E在當前的螢幕中開啟目錄進行瀏覽,可以通過一些命令進行操作:

  1. -:到上級目錄
  2. s:對檔案排序
  3. x:執行檔案
  4. R:修改檔名稱
  5. D:刪除檔案
  6. 回車:進入子目錄

邊看編寫的時候需要在多個螢幕上同步捲動,使用:set scb:set scb來系結和解綁(這個功能還是非常好用的)!最後,編輯完成就可以用ctrl+w cctrl+w q(如果是最後一個螢幕則退出VIM)來關閉分屏!

總結

掌握了這些,簡單的文字編輯應該問題不大了,後面會陸續針對更細節的東西來單獨寫。

更多Vim相關教學見以下內容

把VIM打造成一個簡單實用的IDE http://www.linuxidc.com/Linux/2011-06/37032.htm

Vim學習指南 http://www.linuxidc.com/Linux/2013-08/89096.htm

快速學會 Vi編輯器 http://www.linuxidc.com/Linux/2013-08/88586.htm

強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm

CentOS 6.2上搭建Vim開發環境 http://www.linuxidc.com/Linux/2013-07/87363.htm

CentOS 5.4 安裝高亮Vim編輯工具 http://www.linuxidc.com/Linux/2013-06/86508.htm

Vim技巧分享:C語言設定 http://www.linuxidc.com/Linux/2012-12/77124.htm

Ubuntu中設定Vim的行號 http://www.linuxidc.com/Linux/2012-12/75485.htm

Vim編輯器使用基礎教學 http://www.linuxidc.com/Linux/2013-05/84031.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-01/127527.htm


IT145.com E-mail:sddin#qq.com