剛工作時搞過一段時間的VIM和EMACS,不過作為一個JAVA程序猿,用VIM來寫JAVA代碼還是不大現實(現在用IDEA),後面也就不了了之。最近在寫前端代碼和寫博客時感覺VIM還是不錯的,於是決定再把VIM拾起來。
裸的VIM並不是太好用,需要安裝需要的插件,之前的玩法是下載對應的壓縮包並修改配置,這個過程極其考驗耐心和人品!
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 " 打開文件類型檢測
常用的插件來源配置有:
配置完成後打開VIM就可以開始使用了,用到下面命令:
最後舉個例子,當你想安裝winmanager插件時:
Plugin 'winmanager'
:PluginList
就可以看到winmanager插件:PluginInstall
進行安裝是不是比以前簡單很多了?沒有插件管理的繁瑣,下面我們正式進入VIM之旅!
剛從EditPlus切換到VIM時非常不適應,我只想簡單地編輯文件而已,居然還要去考慮切換不同的模式:
時間久一點就感覺這樣區分開還是很合理的,在命令模式可以通過一些簡單的命令對文本進行快速的查看、修改,比用鼠標在EditPlus裡面操作會更有效率。該模式用到的命令非常多,下面分類來看!
可以在各個維度上進行隨意地跳轉:
在VIM中存在一些寄存器用來存放復制、刪除的內容:
"
:最近刪除或復制的內容0
:最近復制的內容1、2、、9
:最近一次的刪除內容放入1,原先1的內容放入2,以此類推%
:文件名:
:命令/
:查找的字符串編輯時可以用:reg來查看各寄存器中的內容!為了方便選取文本VIM中引入了可視模式,使用時先移動光標到開始位置,然後用下面命令進入可視模式:
ctrl+v
:塊v
:普通V
:行接著移動光標就可以選中文本並進行操作了!編輯時常用的命令有:
"ny
來復制到第n號寄存器
x
剪切選中文本或者刪除當前字符
d
刪除選中文本
p
粘貼,用"np
來粘貼第n號寄存器中的內容
dd
刪除當前行
dw
刪除光標後的一個詞
dl
刪除一個字符
D/C
刪除到行尾
yy/Y
復制一行
過程中可以使用u
和ctrl+r
來進行undo和redo。
在造數據的時候常會遇到一些簡單、機械的操作,這種一般是可以用宏來搞定:
px
:開始記錄宏操作,x為小寫字母q
:將操作記錄到寄存器中@x
:執行寄存器x中的操作@@
:執行最近一次的錄制同樣可以用:reg來查看寄存器狀態。
需要輸入時通過下面命令進入插入模式:
寫代碼的時候通過搞幾個文件是常有的事,分幾個屏幕來做非常舒服,開啟分屏方式有:
vim -On file1 file2 ...
:垂直分屏打開多個文件vim -on file1 file2 ...
:水平分屏打開多個文件ctrl+w s
:上下分割當前文件ctrl+w v
:水平分割當前文件:sp filename
:上下分割打開新文件:vsp filename
:水平分割打開新文件需要切換工作屏幕時可以使用命令ctrl+w h/j/k/l/w,其中h/j/k/l是按照方向移動,w是移動到下一個屏幕!當你覺得屏幕的順序有點不爽時可以使用ctrl+w H/J/K/L來移動分屏。另外也可以調整屏幕大小:
ctrl+w =
:所有屏幕都一樣的高度ctrl+w -
:降低高度ctrl+w +
:增加高度在編輯的時候可以在分屏中浏覽目錄:
:He
:上下分屏,在下面(:He!
則在上面)浏覽目錄:Ve
:左右分屏,在左面(:Ve!
則在右面)浏覽目錄還可以使用:E在當前的屏幕中打開目錄進行浏覽,可以通過一些命令進行操作:
-
:到上級目錄s
:對文件排序x
:執行文件R
:修改文件名稱D
:刪除文件回車
:進入子目錄邊看編寫的時候需要在多個屏幕上同步滾動,使用:set scb
和:set scb
來綁定和解綁(這個功能還是非常好用的)!最後,編輯完成就可以用ctrl+w c
或ctrl+w q
(如果是最後一個屏幕則退出VIM)來關閉分屏!
掌握了這些,簡單的文本編輯應該問題不大了,後面會陸續針對更細節的東西來單獨寫。