1、vi與vim的不一樣
vi相似於windows的記事本,比較適合編輯普通文本,可是用於編寫腳本代碼就不太合適了,缺乏高亮顯示代碼、自動縮進等重要功能;而vim相似於windows下的高級編輯器,爲了提升開發效率,須要使用vim而不是vi。
所以,首先作以下調整,以便只使用vim做爲開發腳本的功能工具:java
[root@dabiaoge ~]# echo 'alias vi=vim' >> /etc/profile
[root@dabiaoge ~]# tail -1 /etc/profile
alias vi=vim
[root@dabiaoge ~]# source /etc/profile
通過上述調整後,當用vi命令時,會自動被vim替代。shell
2、配置vim的配置文件及其重要參數介紹
全局路徑:/etc/vimrc
用戶我的路徑:$HOME/.vimrc
建議:放在用戶我的路徑$HOME/.vimrc下。
3、.vimrc文件的配置(幾乎涵蓋了全部)vim
"~/.vimrc "vim config file "date 2018-12-26 "Created by bert "blog:https://blog.51cto.com/zpf666 """"""""""""""""""""""""""""""""""" """=>全局配置<=""" """"""""""""""""""""""""""""""""""" "關閉vi兼容模式" set nocompatible "設置歷史記錄步數" set history=1000 "開啓相關插件" "偵測文件類型" filetype on "載入文件類型插件" filetype plugin on "爲特定文件類型載入相關縮進文件" filetype indent on "當文件在外部被修改時,自動更新該文件" set autoread "激活鼠標的使用" set mouse=a set selection=exclusive set selectmode=mouse,key "保存全局變量" set viminfo+=! "帶有以下符號的單詞不要被換行分割" set iskeyword+=_,$,@,%,#,- "經過使用: commands命令,告訴咱們文件的哪一行被改變過" set report=0 "被分割的窗口間顯示空白,便於閱讀" set fillchars=vert:\ ,stl:\ ,stlnc:\ """"""""""""""""""""""""""""""""" """=>字體和顏色<=""" """"""""""""""""""""""""""""""""" "自動開啓語法高亮" syntax enable "設置字體" "set guifont=dejaVu\ Sans\ MONO\ 10 set guifont=Courier_New:h10:cANSI "設置顏色" "colorscheme desert "高亮顯示當前行" set cursorline hi cursorline guibg=#00ff00 hi CursorColumn guibg=#00ff00 "高亮顯示普通txt文件(須要txt.vim腳本)" au BufRead,BufNewFile * setfiletype txt """"""""""""""""""""""""""""""" """=>代碼摺疊功能<=""" """"""""""""""""""""""""""""""" "激活摺疊功能" set foldenable "set nofen(這個是關閉摺疊功能)" "設置按照語法方式摺疊(可簡寫set fdm=XX)" "有6種摺疊方法: "manual 手工定義摺疊" "indent 更多的縮進表示更高級別的摺疊" "expr 用表達式來定義摺疊" "syntax 用語法高亮來定義摺疊" "diff 對沒有更改的文本進行摺疊" "marker 對文中的標誌進行摺疊" set foldmethod=manual "set fdl=0(這個是不選用任何摺疊方法)" "設置摺疊區域的寬度" "若是不爲0,則在屏幕左側顯示一個摺疊標識列 "分別用「-」和「+」來表示打開和關閉的摺疊 set foldcolumn=0 "設置摺疊層數爲3" 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> """"""""""""""""""""""""""""""""""" """=>文字處理<=""" """"""""""""""""""""""""""""""""""" "使用空格來替換Tab" set expandtab "設置全部的Tab和縮進爲4個空格" set tabstop=4 "設定<<和>>命令移動時的寬度爲4" set shiftwidth=4 "使得按退格鍵時能夠一次刪除4個空格" set softtabstop=4 set smarttab "縮進,自動縮進(繼承前一行的縮進)" "set autoindent 命令打開自動縮進,是下面配置的縮寫 "可以使用autoindent命令的簡寫,即「:set ai」和「:set noai」 "還可使用「:set ai sw=4」在一個命令中打開縮進並設置縮進級別 set ai set cindent "智能縮進" set si "自動換行」 set wrap "設置軟寬度" set sw=4 "行內替換" set gdefault """""""""""""""""""""""""""""""""" """=>Vim 界面<=""" """""""""""""""""""""""""""""""""" "加強模式中的命令行自動完成操做" set wildmenu "顯示標尺" set ruler "設置命令行的高度" set cmdheight=1 "顯示行數" set nu "不要圖形按鈕" set go= "在執行宏命令時,不進行顯示重繪;在宏命令執行完成後,一次性重繪,以便提升性能" set lz "使回格鍵(backspace)正常處理indent, eol, start等" set backspace=eol,start,indent "容許空格鍵和光標鍵跨越行邊界" set whichwrap+=<,>,h,l "設置魔術" set magic "關閉遇到錯誤時的聲音提示" "關閉錯誤信息響鈴" set noerrorbells "關閉使用可視響鈴代替呼叫" set novisualbell "高亮顯示匹配的括號([{和}])" set showmatch "匹配括號高亮的時間(單位是十分之一秒)" set mat=2 "光標移動到buffer的頂部和底部時保持3行距離" set scrolloff=3 "搜索逐字符高亮" set hlsearch set incsearch "搜索時不區分大小寫" "還可使用簡寫(「:set ic」和「:set noic」)" set ignorecase "用淺色高亮顯示當前行" autocmd InsertLeave * se nocul autocmd InsertEnter * se cul "輸入的命令顯示出來,看的清楚" set showcmd """""""""""""""""""""""""""""""""""" """=>編碼設置<=""" """""""""""""""""""""""""""""""""""" "設置編碼" set encoding=utf-8 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 "設置文件編碼" set fileencodings=utf-8 "設置終端編碼" set termencoding=utf-8 "設置語言編碼" set langmenu=zh_CN.UTF-8 set helplang=cn """"""""""""""""""""""""""""" """=>其餘設置<=""" """"""""""""""""""""""""""""" "開啓新行時使用智能自動縮進" set smartindent set cin set showmatch "在處理未保存或只讀文件的時候,彈出確認" set confirm "隱藏工具欄" set guioptions-=T "隱藏菜單欄" set guioptions-=m "置空錯誤鈴聲的終端代碼" set vb t_vb= "顯示狀態欄(默認值爲1,表示沒法顯示狀態欄)" set laststatus=2 "狀態行顯示的內容" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "粘貼不換行問題的解決方法" set pastetoggle=<F9> "設置背景顏色" set background=dark "文件類型自動檢測,代碼智能補全" set completeopt=longest,preview,menu "共享剪切板" set clipboard+=unnamed "從不備份" set nobackup set noswapfile "自動保存" set autowrite "顯示中文幫助" if version >= 603 set helplang=cn set encoding=utf-8 endif "設置高亮相關項" highlight Search ctermbg=black ctermfg=white guifg=white guibg=black """""""""""""""""""""""""""""""" """=>在shell腳本開頭自動增長解釋器以及做者等版權信息<=""" """""""""""""""""""""""""""""""" "新建.py,.cc,.sh,.java文件,自動插入文件頭" autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()" "定義函數SetTitle,自動插入文件頭" func SetTitle() if expand ("%:e") == 'sh' call setline(1, "#!/bin/bash") call setline(2, "#Author:bert") call setline(3, "#Blog:https://blog.51cto.com/zpf666") call setline(4, "#Time:".strftime("%F %T")) call setline(5, "#Name:".expand("%")) call setline(6, "#Version:V1.0") call setline(7, "#Description:This is a production script.") endif endfunc
4、說明
讀者朋友能夠直接徹底複製粘貼拿去使用,只須要修改代碼的開頭和末尾部分的版權信息就可使用
5、結束語
我是大表哥,我爲本身帶鹽,之後會不定時更新,請支持正版,盜鏈可恥
個人博客是:https://blog.51cto.com/zpf666
各位朋友有什麼不懂以及認爲有什麼錯誤之處,請在下方留言,謝謝!windows