vi編輯器的功能相似於Windows下的記事本,只能編輯普通文本,而vim編輯器則至關於Windows下的notepad++等高級編輯器,提高了代碼開發效率。java
將vi命令默認定向到vim,須要作如下調整。編程
每一個用戶的家目錄下面均可以建立一個.vimrc的vim配置文件,優化用戶編程的環境並提升開發效率。若是想在整個環境中對vim開發環境進行優化,可將配置參數寫入/etc/vimrc中。這樣之後,全部用戶可使用優化後的開發環境。vim
如下是一些常見的重要參數:bash
'' ~/.vimrc '' vim config file '' date 2019-06-05 '' Created by ant '' Blog:https://www.cnblogs.com/ant-colonies/ '''''''''''''''''''''''''''''''''' '' => 全局變量 '''''''''''''''''''''''''''''''''' '' 關閉兼容模式 set nocompatible '' 歷史記錄數 set history=100 '' 開啓相關插件 filetype on filetype plugin on filetype indent on '' 當文件在外部被修改時,自動更新該文件 set autoread '' 激活鼠標 set mouse=a '''''''''''''''''''''''''''''''''' '' => 字體和顏色 '''''''''''''''''''''''''''''''''' '' 語法檢查 syntax enable '' 字體 ''set guifont=dejaVu\ Sans\ MONO\ 10 '' '' 設置配色 ''colorscheme desert '' 高亮顯示光標所在行 set cursorline hi cursorline guibg=#00ff00 hi CursorColumn guibg=#00ff00 '''''''''''''''''''''''''''''''''' '' => 代碼摺疊功能 '''''''''''''''''''''''''''''''''' '' 激活代碼摺疊 set foldenable '' 摺疊方式 (可簡寫 set fdm=XX) ''manual 自定義摺疊 ''indent 更多的縮進表示更高級別的摺疊 ''expr 用表達式來定義摺疊 ''syntax 用語法來表示摺疊 ''diff 對沒有更改的文本進行摺疊 ''marker 對文中的標誌進行摺疊 set foldmethod=manual '' 摺疊區域的寬度 '' 若是不爲0,則在屏幕左側先是一個摺疊的標識 '' 這兩個標識是"-"和"+",分別表示"打開"和"關閉"摺疊的內容 set foldcolumn=0 '' 摺疊層數 setlocal foldlevel=3 '' 自動關閉摺疊 set foldclose=all '' 用空格鍵來代替zo和zc快捷鍵實現開關摺疊 ''zo O-pen a fold ''zc C-lose a fold ''zf F-old creation 建立摺疊 nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> set nofen set fdl=0 '''''''''''''''''''''''''''''''''' '' => 文字處理 '''''''''''''''''''''''''''''''''' '' 使用空格代替Tab set expandtab '' 全部的Tab和縮進爲4個空格 set tabstop=4 '' 設定 << 和 >>命令移動時的寬度爲4 set shiftwidth=4 '' 退格鍵一次刪除4個空格 set softtabstop=4 set smarttab '' 縮進,自動縮進(繼承前一行的縮進) '' set autoindent命令自動縮進, autoindent 縮寫爲 ai '' set ai 自動縮進; set noai 無自動縮進,可在vim打開的文件臨時(:set ai) '' 可以使用":set ai sw=4" 打開縮進並設置縮進級別 set ai '' samrt indent,智能縮進 set si '' 自動換行 set wrap '' soft width,軟寬度 set sw=4 '''''''''''''''''''''''''''''''''' '' => Vim界面 '''''''''''''''''''''''''''''''''' '' Turn on wild menu set wildmenu '' 顯示標尺 set ruler '' 命令行高度 set cmdheight=1 '' Do not redraw, when running macro.. lazyredraw set lz '' 退格 set backspace=eol,start,indent '' backspace and cursor keys wrap to set whichwrap+=<,>,h,l '' Set magic on 魔數打開 set magic '' 關閉錯誤響鈴 set noerrorbells '' 關閉可視響鈴 set novisualbell '' 顯示匹配的括號 ([{ 和 }]) set showmatch '' How many tenths of a second to blink, 光標一秒鐘閃爍的多說個10次 set mat=2 '' 高亮顯示搜索到的內容 set hlsearch '' 搜索時不區分大小寫,命令行縮寫 :set ic :set noic set ignorecase '''''''''''''''''''''''''''''''''' '' => 編碼設置 '''''''''''''''''''''''''''''''''' set encoding=utf-8 '' 文件編碼 set fileencodings=utf-8 '' 終端編碼 set termencoding=utf-8 '''''''''''''''''''''''''''''''''' '' => 其餘設置 '''''''''''''''''''''''''''''''''' '' 智能縮進 set smartindent set cin set showmatch '' 隱藏工具欄 set guioptions-=T '' 隱藏菜單欄 set guioptions-=m '' 置空錯誤鈴聲的終端代碼 set vb t_vb= '' 顯示狀態欄 (默認爲1,表示沒法顯示狀態欄) set laststatus=2 '' 粘貼不換行問題的解決辦法功能鍵 F9 set pastetoggle=<F9> '' 背景顏色 set background=dark '' 高亮相關 highlight Search ctermbg=black ctermfg=white guifg=white guibg=black '' Shell script 的開頭自動增長解釋器及其餘信息 autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call setline(1, "##!/bin/bash") call setline(2, "#Author:ant") call setline(3, "#Blog:https://www.cnblogs.com/ant-colonies/") call setline(4, "#Time:".strftime("%F %T")) call setline(5, "#Name:".expand("%")) call setline(6, "#Version:V1.0") call setline(7, "#Discription:This is a test script.") endif endfunc
set nocompatible set history=100 filetype on filetype plugin on filetype indent on set autoread set mouse=a syntax enable set cursorline hi cursorline guibg=#00ff00 hi CursorColumn guibg=#00ff00 set nofen set fdl=0 set expandtab set tabstop=4 set shiftwidth=4 set softtabstop=4 set smarttab set ai set si set wrap set sw=4 set wildmenu set ruler set cmdheight=1 set lz set backspace=eol,start,indent set whichwrap+=<,>,h,l set magic set noerrorbells set novisualbell set showmatch set mat=2 set hlsearch set ignorecase set encoding=utf-8 set fileencodings=utf-8 set termencoding=utf-8 set smartindent set cin set showmatch set guioptions-=T set guioptions-=m set vb t_vb= set laststatus=2 set pastetoggle=<F9> set background=dark highlight Search ctermbg=black ctermfg=white guifg=white guibg=black autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call setline(1, "##!/bin/bash") call setline(2, "#Author:ant") call setline(3, "#Blog:https://www.cnblogs.com/ant-colonies/") call setline(4, "#Time:".strftime("%F %T")) call setline(5, "#Name:".expand("%")) call setline(6, "#Version:V1.0") call setline(7, "#Discription:This is a test script.") endif endfunc