標籤:linux vim
vim 的優勢與應用情境
vim 的優勢在於純粹的編輯及 Linux 內建與命令列的完美整合。如果只能 ssh 到伺服器進行操作,那麼這種情況就只能使用 vim 了。vim 也是最為強大的通用文字編輯器之一,對於需要編輯不同文本的情景,vim 也是相當有優勢的。所以,熟練掌握一下 vim 的基本使用還是很有必要的。
vim 是在 vi 基礎上加很多新特徵發展而來,gvim 則給 vim 加上了圖形前端。如果在 Windows 下使用 vim,可以直接安裝最新的 gvim。
這裡給出一個基本的 vimrc 設定檔,沒有配置任何外掛程式,只是把主題改成了內建 evening 暗調主題,字型改成了 Consolas 等寬字型,並對行號,縮排,搜尋等做了一些基本設定。而且把做了鍵映射 <ESC> -> ii,i 本來是切換到插入模式,快速雙擊i, 則又切換回到 normal 模式非常順手。
- Linux 中一般在使用者 home 目錄建一個 .vimrc 檔案進行修改。而不是去修改 /etc/vim 目錄下的全域配置,影響所有使用者。
- Windows 中 vimrc 位於 C:\Program Files (x86)\Vim 目錄下,名字是 _vimrc, 如果按裝了 everything ,則直接搜尋 vimrc 一步就可定位。
vim 的設定檔 vimrc
"-----------------------------------------------------------------------------------:imap ii <Esc> " 按鍵映射 <ESC> -> ii "外觀colorscheme evening " 配置顏色主題set guifont=Consolas:h12 " 設定字型和大小set number " 顯示行號set guioptions-=T " 隱藏工具列set ruler " 開啟狀態列尺規set cursorline " 反白當前行set syntax=on " 文法高亮set showmatch " 高亮顯示匹配的括弧set matchtime=3 " 匹配括弧高亮的時間(單位:0.1s)set scrolloff=10 " 游標到螢幕底端保留 10 行 (游標位於屏底看著很不舒服的)"搜尋set ignorecase smartcase " 搜尋忽略大小寫,但有大寫字母時仍保持大小寫敏感set hlsearch " 高亮搜尋set incsearch " 增量式搜尋,逐字元高亮"操作set clipboard+=unnamed " 共用剪下板set showcmd " 輸入的命令顯示出來set iskeyword+=_,$,@,%,#,- " 帶有如下符號的單詞不要被換行分割set noexpandtab " 不用空格代替Tab (makefile是會經常用Tab的)set tabstop=4 " Tab 鍵的寬度set shiftwidth=4 " 行交錯寬度set mouse=a " 滑鼠可用set autoindent " 繼承前一行的縮排方式,特別適用於多行注釋 "備份set confirm " 未儲存或者唯讀時,彈出確認set nobackup " 不產生備份檔案setlocal noswapfile " 不產生 swap 檔案set bufhidden=hide " 當 buffer 被丟棄的時候隱藏set noerrorbells " 不發出警告聲"解碼set fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
vim 的常用命令
# 效率. # 重複最近的文本操作# 檔案:q # 退出 q->quit:w # 儲存 w->write:q! # 強制退出不儲存:wq # 儲存後退出 ZZ # 儲存後退出,同 :wq # 游標移動hjkl # 最基本的左下上右,移動一個字元zz # 游標做在行移動到螢幕中間w # 向前移動一個單詞,游標停在單詞首部b # 向後移動一個單詞, 游標停在單詞首部e # 同 w, 游標停在單詞尾部ge # 同 b, 游標停在單詞尾部0 # 本行第一個字元 (同 <HOME> 鍵)^ # 本行第一個非空白字元$ # 移動到行尾 (同 <END> 鍵)gg # 移動到檔案頭G # 移動到檔案尾fx # 移動到游標後第一個為 x 的字元 find Fx # 同 f,反向移 Ctrl+d # 向下滾動半屏Ctrl+u # 向上滾動半屏Ctrl+f # 向下滾動半屏Ctrl+b # 向上滾動半屏% # 跳轉到配對的括弧 (常用)( # 移動到當前句子開始) # 移動到下一句子開始H # 移動頁面頂部 H->HighM # 移動頁面中部 M->MiddleL # 移動頁面底部 L->Low# 尋找/test # 尋找 text ,(記得用Regex), 然後 n 向下, N 向上 n->next?test # 尋找 text ,反向# 替換ra # 當前字元替換為 a , r->replace%s/old/new/g # 替換全文的所有的匹配 g->global%s/old/new/ # 替換所有行第一個匹配s/old/new/g # 替換當前行所有匹配s/old/new/ # 替換當前行第一個匹配# 插入a # 在當前位置後插入 a->appendA # 在當前行尾插入 i # 在當前位置插入 i->insertI # 在當前行首插入o # 在當前行之後插之一行O # 在當前行之前插入一行# 選中v # 從游標當前位置開始,游標所經過的地方會被選中,再按一下 v 結束 (類似 <shift>+方向建) v->view 可視模式V # 從游標當前行開始,游標經過的行都會被選中,再按一下 V 結束 # 刪除d # 刪除選中 (刪除內容到了緩衝區可以被粘貼,相當於剪下) d->deletex # 刪除當前字元3x # 刪除當前游標向後三個字元 (vim 經常用 <數字>+<命令> 組合)dd # 刪除當前行d$ # 刪除當前字元到行尾 %->正則中就是行尾3d # 刪除當前行開始三行J # 合并兩行 (即刪除當行尾分行符號) J->join# 撤銷u # 撤銷 u->undoU # 撤銷對正行的操作Ctrl+r # 恢複撤銷# 複製粘貼y # 複製選中yy # 複製當前行p # 在當前游標後粘貼,如果複製了一行則粘貼到下一行 p-pasteP # 在當前游標前粘貼ddp # 交換當前行和下一行 (巧妙運用了剪下粘貼)xp # 交換當前字元和下一個
Vim 基本配置和常用命令