這里是我新配置出來的 jaywcjlove/vim-web 一直在打磨中,基本上可以用了。拿出來騙 star 先上圖
安裝
最新版本的Vim 7.4 使用( brew install macvim
)安裝,vim 版本更新 brew install macvim --override-system-vim
$ git clone https://github.com/jaywcjlove/vim-web.git ~/.vim $ ln -s ~/.vim/.vimrc ~/.vimrc
注:默認已經安裝了前端必備插件。 .vimrc
是控制 vim 行為的配置文件,位于 ~/.vimrc,不論 vim 窗口外觀、顯示字體,還是操作方式、快捷鍵、插件屬性均可通過編輯該配置文件將 vim 調教成最適合你的編輯器。
插件管理
這里面使用的Vim插件管理工具 VundleVim/Vundle.vim
安裝插件
將配置信息其加入 ~/.vim/.vimrc
中的 call vundle#begin()
和 call vundle#end()
之間,最后進入 vim 輸入下面命令,摁 enter
進行安裝。
:PluginInstall
更新插件
插件更新頻率較高,差不多每隔一個月你應該看看哪些插件有推出新版本,批量更新,只需在 vim 中執行下面命令即可。
:PluginUpdate
卸載插件
先在 .vimrc 中注釋或者刪除對應插件配置信息,然后在 vim 中執行下面命令,即可刪除對應插件。
:PluginClean
啟動Vim
$ vim
常用快捷鍵
這里的快捷鍵是我配置好的可用的。
;fl # 換出菜單列表 nw # 窗口切換 ;lw # 跳轉至右方的窗口 ;hw # 跳轉至左方的窗口 ;kw # 跳轉至上方的子窗口 ;jw # 跳轉至下方的子窗口 # 可以直接在Tab之間切換。 gt # 后一個Tab標簽 gT # 前一個Tab標簽 ;q # 關閉一個標簽 ctrl-f # 下一頁 f 就是`forword` ctrl-b # 上一頁 b 就是`backward` ;t # 通過搜索文件打開文件 # 高科技定位 ;;b # 光標前代碼定位 ;;e # 光標后代碼定位 ;;f # 光標后代碼定位 lt;搜索自負gt; 出現定位信息 ;;F # 光標前代碼定位 lt;搜索自負gt; 出現定位信息 0 # 行首 $ # 行尾 :r ~/git/R.js # 將文件內容導入到該文件中 :!which ls # 找命令不推出vim運行命令 :!date # 查看編輯時間 :r !date # 將當前編輯時間導入當前文本光標所在行 U # 選中 - 變大寫 u # 選中 - 變小寫 ~ # 選中 - 變大寫變小寫,小寫變大寫 ;cc # 代碼注釋quot;//quot; ;cm # 代碼段落注釋quot;/**/quot; ;ci # 注釋相反,注釋的取消注釋,沒注釋的注釋 ;cs # 段落注釋,注釋每行前面加quot;*quot; ;c$ # 光標開始到行結束的位置注釋 ;cA # 在行尾部添加注釋符quot;//quot; ;cu # 取消代碼注釋 za # 單個代碼折疊 zM # 折疊左右代碼 zR # 所有代碼折疊取消 ;i # 開/關縮進可視化 gt; # 代碼鎖進 - 選中摁尖括號 lt; # 代碼鎖進 - 選中摁尖括號 :1,24s/header/www/g # 第1到24行將header替換成www lt;c-zgt; # 退出Vim
基礎使用
-
inoremap
(Insert Mode)就只在插入(insert)模式下生效 -
vnoremap
(Visual Mode)只在visual模式下生效 -
nnoremap
(Normal Mode)就在normal模式下(狂按esc后的模式)生效 -
快捷鍵
lt;c-ygt;,
標示( Ctrl y , )
快捷鍵通配符
快捷鍵通配符 lt;leadergt;
相當于是一個通用的命令符,默認好像是 \
,你可以在 .vimrc
中將他改為任意一個按鍵,在我們這個配置我改為了冒號 ;
quot; 定義快捷鍵的前綴,即 lt;Leadergt; let mapleader=quot;;quot;
插入命令
a # → 在光標所在字符后插入 A # → 在光標所在字符尾插入 i # → 在光標所在字符前插入 I # → 在光標所在行行首插入 o # → 在光標下插入新行 O # → 在光標上插入新行
刪除命令
x # → 刪除關閉所在處字符 nx # → 刪除關閉所在處n個字符 dd # → 刪除光標所在行, ndd # → 刪除n行 dG # → 刪除光標所在行到文件末尾內容 D # → 刪除光標所在處到行尾內容 :n1,n2d # → 刪除指定范圍的行 如:1,2d
定位命令
:set number #→ 設置行號 簡寫set nu :set nonu #→ 取消行號 gg #→ 到第一行 G #→ 到最后一行 nG #→ 到第n行 :n #→ 到第n行 S #→ 移至行尾 0 #→ 移至行尾 hjkl #→ 前下上后 w #→ 到下一個單詞的開頭 b #→ 與w相反 e #→ 到下一個單詞的結尾。 ge #→ 與e相反 0 #→ 到行頭 ^ #→ 到本行的第一個非blank字符 $ #→ 到行尾 g_ #→ 到本行最后一個不是blank字符的位置。 fa #→ 到下一個為a的字符處,你也可以fs到下一個為s的字符。 t, #→ 到逗號前的第一個字符。逗號可以變成其它字符。 3fa #→ 在當前行查找第三個出現的a。 F 和 T → 和 f 和 t 一樣,只不過是相反方向。 zz # 將當前行置于屏幕中間(不是轉載…) zt # 將當前行置于屏幕頂端(不是豬頭~) zb # 底端啦~
復制剪切
yy
和 p 的組合鍵,或者 dd
和 p 的組合鍵
yy # → 復制當前行 nyy # → 復制當前行以下n行 dd # → 剪切當前行 ndd # → 剪切當前行以下n 行 p、P # → 粘貼在當前光標所在行或行上 2dd # → 刪除2行 3p # → 粘貼文本3次
簡單排版
:ce(nter) # 居中顯示光標所在行 :ri(ght) # 靠右顯示光標所在行 :le(ft) # 靠左顯示光標所在行 J # 將光標所在下一行合并到光標所在行 gt;gt; # 光標所在行增加縮進(一個tab) lt;lt; # 光標所在行減少縮進(一個tab) ngt;gt; # 光標所在行開始的n行增加縮進 nlt;lt; # 光標所在行開始的n行減少縮進
保存退出
:w new_filename # → 保存為指定文件 :w # → 保存修改 :wq # → 保存修改并推出 ZZ # → 快捷鍵,保存修改并推出 :q! # → 不保存修改推出 :wq! # → 保存修改并推出(文件所有者,root權限的用戶)
整頁翻頁
ctrl-f # 下一頁 f 就是`forword` ctrl-b # 上一頁 b 就是`backward`
替換
替換取消
r # → 取代關閉所在處字符 R # → 從光標所在處開始替換字符,摁ESC結束 u # → 取消上一步操作 ctrl r # → 返回上一步
快捷替換
可視化模式下選中其中一個,接著鍵入 ctrl-n,你會發現第二個該字符串也被選中了,持續鍵入 ctrl-n,你可以選中所有相同的字符串,把這個功能與 ctrlsf 結合
精確替換
vim 有強大的內容替換命令,進行內容替換操作時,注意:如何指定替換文件范圍、是否整詞匹配、是否逐一確認后再替換。
:[range]s/{pattern}/{string}/[flags]
-
如果在當前文件內替換,[range] 不用指定,默認就在當前文件內;
-
如果在當前選中區域,[range] 也不用指定,在你鍵入替換命令時,vim 自動將生成如下命令:
:'lt;,'gt;s/{pattern}/{string}/[flags]
-
你也可以指定行范圍,如,第三行到第五行:
:3,5s/{pattern}/{string}/[flags]
-
如果對打開文件進行替換,你需要先通過
:bufdo
命令顯式告知 vim 范圍,再執行替換; -
如果對工程內所有文件進行替換,先
:args **/.cpp */*.h
告知 vim 范圍,再執行替換;
:21,27s/^/#/g
行首替換 #
替換(增加)掉
:ab mymail [email protected]
輸入 mymail
摁下空格自動替換成 [email protected]
開關注釋
-
;cc
,注釋當前選中文本,如果選中的是整行則在每行首添加//
,如果選中一行的部分內容則在選中部分前后添加分別/**/
; -
;cu
,取消選中文本塊的注釋。
工程文件菜單
自定義快捷鍵
;fl # 顯示文件菜單 file list
自帶快捷鍵
shift i # 顯示/隱藏隱藏文件 t # 在新 Tab 中打開選中文件/書簽,并跳到新 Tab T # 在新 Tab 中打開選中文件/書簽,但不跳到新 Tab i # split 一個新窗口打開選中文件,并跳到該窗口 gi # split 一個新窗口打開選中文件,但不跳到該窗口 s # vsplit 一個新窗口打開選中文件,并跳到該窗口 gs # vsplit 一個新 窗口打開選中文件,但不跳到該窗口 ctrl w h # 光標 focus 左側樹形目錄 ctrl w l # 光標 focus 右側文件顯示窗口 ctrl w w # 光標自動在左右側窗口切換 ctrl w r # 移動當前窗口的布局位置 o # 在已有窗口中打開文件、目錄或書簽,并跳到該窗口 go # 在已有窗口 中打開文件、目錄或書簽,但不跳到該窗口 ! # 執行當前文件 O # 遞歸打開選中 結點下的所有目錄 x # 合攏選中結點的父目錄 X # 遞歸 合攏選中結點下的所有目錄 e # Edit the current dif 雙擊 相當于 NERDTree-o 中鍵 對文件相當于 NERDTree-i,對目錄相當于 NERDTree-e D # 刪除當前書簽 # P # 跳到根結點 p # 跳到父結點 K # 跳到當前目錄下同級的第一個結點 J # 跳到當前目錄下同級的最后一個結點 k # 跳到當前目錄下同級的前一個結點 j # 跳到當前目錄下同級的后一個結點 C # 將選中目錄或選中文件的父目錄設為根結點 u # 將當前根結點的父目錄設為根目錄,并變成合攏原根結點 U # 將當前根結點的父目錄設為根目錄,但保持展開原根結點 r # 遞歸刷新選中目錄 R # 遞歸刷新根結點 m # 顯示文件系統菜單 cd # 將 CWD 設為選中目錄 I # 切換是否顯示隱藏文件 f # 切換是否使用文件過濾器 F # 切換是否顯示文件 B # 切換是否顯示書簽 # q # 關閉 NerdTree 窗口 ? # 切換是否顯示 Quick Help
切割窗口
:new # 水平切割窗口 :split # 水平切割窗口(或者直接輸入 :sp 也可以) :vsplit # 垂直切割( 也可以 :vs )
Tab操作
多tab窗口拆分
:tabnew [ opt選項] [+cmd] 文件 #建立對指定文件新的tab :tabc #關閉當前的tab :tabo #關閉所有其他的tab :tabs #查看所有打開的tab :tabp #前一個 :tabn #后一個
tab切換
# 下面為自定義快捷鍵 tnew #新建tab tn #后一個 tab tp #前一個 tab # 窗口切換 nw # 標準模式下: gt , gT #可以直接在tab之間切換。 # 還有很多他命令, 看官大人自己, :help table 吧。 Ctrl ww # 移動到下一個窗口 # 或者 先按組合鍵ctrl w ,然后都松開,然后通過j/k/h/l(等于vim移動的方向鍵) 來移動大哦哦左/上/下/右的窗口 Ctrl wj #移動到下方的窗口 Ctrl wk #移動到上方的窗口
HTML操作
便捷操作得益于插件 Emmet.vim 。鍵入 divgt;p#foo$*3gt;a
然后按快捷鍵 lt;c-ygt;,
– 表示 lt;Ctrl-ygt;
后再按逗號【 Ctrl y , 】。
按大寫的 V 進入 Vim 可視模式,行選取上面三行內容,然后按鍵 lt;c-ygt;,,這時 Vim 的命令行會提示 Tags:,鍵入ulgt;li*,然后按 Enter。
lt;ctrl ygt;d
根據光標位置選中整個標簽
lt;ctrl ygt;D
根據光標位置選中整個標簽內容
lt;ctrl-ygt;n
跳轉到下一個編輯點
lt;ctrl-ygt;N
跳轉到上一個編輯點
lt;ctrl-ygt;i
更新圖片大小
lt;ctrl-ygt;m
合并成一行
lt;ctrl-ygt;k
移除標簽對
lt;ctrl-ygt;j
分割/合并標簽
lt;ctrl-ygt;/
切換注釋
lt;ctrl-ygt;a
從 URL 地址生成錨
lt;ctrl-ygt;A
從 URL 地址生成引用文本
插件說明
這里面所有的插件,并不是都放到了我的 .vimrc 文件中 .vimrc 配置文件中,是我個人喜歡并且習慣的配置。
主題風格
-
vim-colors-solarized 主題風格素雅 solarized
-
molokai 主題風格多彩 molokai
-
phd 主題風格復古 phd
使用界面
-
Mango A nice color scheme
-
VimAirline 美化狀態欄偏好設置
-
vim-powerline 美化狀態欄
-
vim-airline 美化狀態欄和配置
-
vim-airline-themes airline主題
管理項目
-
NERDTree Manage your project files
-
VimFugitive Git 集成
-
VimGitGutter Git 集成,強烈推薦!
-
EditorconfigVim Shared coding conventions
-
command-t 文件搜索
-
vim-signature 書簽可視化的插件
-
BOOKMARKS--Mark-and-Highlight-Full-Lines 它可以讓書簽行高亮
-
tagbar 方法地圖導航
-
indexer.tar.gz 自動生成標簽并引入
-
DfrankUtil 上面插件,依賴這個插件
-
vimprj 上面插件,依賴這個插件
-
-
ctrlsf.vim 上下文插件,例如搜素到關鍵字,中間縮略,展示一段上下文
-
vim-multiple-cursors 多光標編輯功能
代碼書寫
-
NERDCommenter 注釋更容易
-
DrawIt ASCII art 風格的注釋
-
VimTrailingWhitespace 突出尾隨空格
-
Syntastic 語法檢查
-
VimEasyAlign 調整部分代碼
-
VimMultipleCursors Write on multiple lines easily
-
VimJsBeautify Reformat JavaScript, HTML and JSON files
-
VimYankStack Iterate over yanked stack on paste
-
VimSurround Quoting and parenthesizing
-
YouCompleteMe 鍵而全的、支持模糊搜索的、高速補全的插件
-
VimForTern Smart JavaScript autocompletion
-
VimNode Navigate through node.js code/modules
-
VimLint Linter used by syntastic for VimL
-
VimLParser VimL parser (required by VimLint)
-
emmet-vim 提高HTML和CSS的工作流
-
vim-cpp-enhanced-highlight C 語法高亮支持
-
vim-indent-guides 相同縮進的代碼關聯起來
-
vim-fswitch 接口文件(MyClass.h)與實現文件(MyClass.cpp)快捷切換的插件
-
MiniBufExplorer 顯示多個 buffer 對應的 window
-
wildfire.vim 快捷鍵選中
lt;gt;
、[]
、{}
中間的內容 -
gundo.vim 讓你有機會撤銷最近一步或多步操作
-
vim-easymotion 快速移動,兩次
lt;leadergt;
作為前綴鍵 -
Shougo/neocomplete.vim 強大的自動補全插件
-
vim-instant-markdown 編輯 markdown 文檔,自動開啟 firefox 為你顯示 markdown 最終效果
-
fcitx.vim 中/英輸入平滑切換
-
othree/xml.vim 中/提供快速編寫xml/html的能力,如標簽自動閉合等
-
pangloss/vim-javascript 提供js代碼的智能縮進,僅使用了他的indent功能
代碼閱讀
-
語法高亮
-
vim-polyglot 支持常見的語法高亮
-
VimJson JSON 高亮和隱藏引號
-
YaJS JavaScript 語法 (ES5 and ES6)
-
vim-css3-syntax CSS3 高亮,包括stylus,Less,Sass
-
vim-css-color css高亮顏色
-
gko/vim-coloresque css高亮顏色
-
ScssSyntax SCSS syntax
-
HTML5 HTML5 syntax
-
Stylus Stylus 代碼高亮
-
-
JavaScriptLibrariesSyntax 語法高亮的知名的JS庫
-
ultisnips 模板補全插件
-
vim-protodef 根據類聲明自動生成類實現的代碼框架
參考資料
Tags: Vim 前端開發 開發工具
文章來源:https://segmentfault.com/a/1190000008097357