vi/vim 配置檔案、快捷鍵及外掛使用
阿新 • • 發佈:2019-02-13
一、vi/vim 配置檔案
系統的vim配置檔案為/etc/vimrc檔案,使用者級別的配置檔案在~/.vimrc檔案中,如果沒有.vimrc檔案,則先建立.vimrc檔案
touch ~/.vimrc
vimrc部分常用配置如下:
set sw=4 "自動縮排時,縮排尺寸為4個空格
set ts=4 "tab寬度為4個字元
set et "編輯時將所有tab替換為空格
set smarttab "刪除時,一個刪除鍵刪除4個空格
set selection=inclusive "指定在選擇文字時,游標所在位置也屬於被選中範圍
set autoindent "設定自動縮排
set number "顯示行號
set ru "顯示vim狀態列,顯示行號、列號
set hls "搜尋時高亮顯示被找到的文字
set encoding=utf-8 "設定當前字元編碼為UTF-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 "如果檔案編碼與vim編碼不一致,按順序嘗試解碼,如果成功則將fileencoding設定為這個值,在檔案儲存/開啟時,自動對檔案編解碼轉換
syntax on "開啟關鍵字上色
filetype plugin indent on "啟動檔案型別自動識別、檔案型別相關外掛、按檔案型別的自動縮排
二、vi/vim 常用快捷鍵
vi有三種模式:插入模式、命令模式、底行模式
- 插入模式:可插入字元,esc退出
- 命令模式:可進行移動游標,刪除字元,複製字元等操作
- 底行模式:顧名思義,可在末行進行文字匹配、跳轉、文字替換等操作
快捷鍵 | 功能 |
---|---|
:n | 跳轉到第n行 |
:x | 儲存並退出 |
:wq | 儲存並退出 |
:w | 儲存 |
:q | 退出編輯器 |
:q! | 退出編輯器,不儲存 |
ctrl + r | 恢復上一步被撤銷的操作 |
shift + 方向鍵 | 按指定方向跳一個單詞 |
a | 在游標右側新增文字 |
i | 在游標左側新增文字 |
A | 在行末新增文字 |
I | 在行首新增文字 |
O | 在當前行上新增新行 |
o | 在當前行下新增新行 |
R | 替換編輯游標及後面的文字 |
J | 合併當前行及下一行為一行 |
h,j,k,l | 左、下、上、右 |
空格,backspace,enter,- | 右、左、下一行行首、上一行行首 |
/xxx | 向下搜尋字串xxx |
?xxx | 向上搜尋字串xxx |
n | 向下搜尋前一個搜尋動作 |
N | 向上搜尋前一個搜尋動作 |
x | 刪除當前字元 |
nx | 刪除游標開始的n字元 |
dd | 刪除行 |
ndd | 向下刪除當前行在內的n行 |
u | 撤銷上一步操作 |
U | 撤銷當前行的所有操作 |
n+ | 向下跳n行 |
n- | 向上跳n行 |
nG | 跳轉到行號為n的行 |
G | 跳轉到檔案底 |
:set number | 顯示行號 |
:set nonumber | 不顯示行號 |
yy | 複製當前行到快取區 |
nyy | 複製當前行及向下n行到快取區 |
yw | 複製游標開始到詞尾的字元 |
nyw | 複製游標開始的n個單詞 |
y^ | 複製游標到行首的內容 |
y$ | 複製游標到行尾的內容 |
p | 在游標後貼上快取區的內容 |
P | 在游標前貼上快取區的內容 |
:s/old/new | 用new替換當前行中首次出現的old |
:s/old/new/g | 用new替換當前行中所有的old |
:n,m s/old/new/g | 用new替換n到m行中所有的old |
:%s/old/new/g | 用new替換當前檔案中所有的old |
:filetype | 檢視vim檔案型別檢測功能是否開啟 |
:set filetype=java | 將當前檔案型別設定為java,將會按照java檔案進行文字高亮 |
ctrl + n/p | 程式碼補全[插入模式] |
三、vi/vim外掛使用(vundle外掛管理)
下文以檔案樹外掛nerdtree的安裝為例。如果沒有.vim資料夾,則首先建立該資料夾
mkdir -p ~/.vim/bundle
安裝Vundle,使用Vundle作外掛管理,github地址
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
編輯~/.vimrc檔案,加入如下片段:
...
set nocompatible " be iMproved, required
filetype off " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Bundle 'scrooloose/nerdtree' "檔案目錄外掛
"可在此處新增其他外掛
call vundle#end() " required
filetype plugin indent on " required
...
儲存並退出,控制檯進入vim,執行:PluginInstall 安裝外掛,安裝完成後會有Done! 狀態提示
安裝成功後在vim中執行:NERDTree
NERDTree的基本操作如下:
快捷鍵 | 功能 |
---|---|
o | 展開 |
ctrl + w | 兩次執行切換視窗 |
? | 檢視幫助 |
外掛使用其他常用命令如下:
命令 | 功能 |
---|---|
:BundleList | 檢視外掛列表 |
:BundleClean | 清除外掛 |
:BundleUpdate | 更新外掛 |
:BundleSearch xx | 搜尋外掛xx |