摘要:一組就是一個(gè)插件,的很多功能都由各式插件實(shí)現(xiàn)。與相反到行頭到本行的第一個(gè)非字符到行尾到本行最后一個(gè)不是字符的位置。到逗號(hào)前的第一個(gè)字符。在當(dāng)前行查找第三個(gè)出現(xiàn)的。工程文件菜單自定義快捷鍵顯示文件菜單自帶快捷鍵顯示隱藏隱藏文件在新
這里是我新配置出來(lái)的 jaywcjlove/vim-web 一直在打磨中,基本上可以用了。拿出來(lái)騙 star 先上圖
安裝最新版本的Vim 7.4+ 使用(brew install macvim)安裝,vim 版本更新 brew install macvim --override-system-vim
查看配置位置# 進(jìn)入vim輸入下面字符 :echo $MYVIMRC下載vim-web
將插件以及配置下載到 ~/.vim/ 目錄中,這個(gè)目錄是存放所有插件和配置的地方。vimscript是vim自己的一套腳本語(yǔ)言,通過(guò)這種腳本語(yǔ)言可以實(shí)現(xiàn)與 vim 交互,達(dá)到功能擴(kuò)展的目的。一組 vimscript 就是一個(gè) vim 插件,vim 的很多功能都由各式插件實(shí)現(xiàn)。
$ git clone https://github.com/jaywcjlove/vim-web.git ~/.vim $ ln -s ~/.vim/.vimrc ~/.vimrc下載安裝插件
安裝~/.vimrc 中配置的插件,這個(gè)過(guò)程需要很長(zhǎng)時(shí)間。
# 上面執(zhí)行完成之后 # 開(kāi)始下載安裝插件 $ vim # 在vim中運(yùn)行 ":PlugInstall"安裝依賴
部分插件需要安裝一些軟件,vim的部分插件才起作用。
# 上面插件安裝完成之后執(zhí)行下面內(nèi)容 # command-t 文件搜索插件安裝 $ cd ~/.vim/plugged/command-t $ rake make # 搜索文本內(nèi)容工具 # 需要安裝 CtrlSF的依賴ripgrep $ brew install ripgrep # 代碼提示插件也需要你運(yùn)行安裝哦,不然沒(méi)有效果嘞 $ cd ~/.vim/plugged/YouCompleteMe $ ./install.py # or 新版腳本過(guò)時(shí)了,推薦上面腳本 $ ./install.sh # 需要安裝ctags 不然配置沒(méi)效果哦 # ctags for Mac $ brew install ctags # ctags for Centos7 $ yum install ctags
注: 默認(rèn)已經(jīng)安裝了前端必備插件。.vimrc 是控制 vim 行為的配置文件,位于 ~/.vimrc,不論 vim 窗口外觀、顯示字體,還是操作方式、快捷鍵、插件屬性均可通過(guò)編輯該配置文件將 vim 調(diào)教成最適合你的編輯器。
界面字體設(shè)置
vim-powerline狀態(tài)欄主題,界面箭頭需要安裝Powerline字體 (在我Mac上安裝的是Sauce Code Powerline字體),下載安裝完成之后,還需要你在命令行工具中設(shè)置該字體。
在iTerm2中設(shè)置方法:Command+, 進(jìn)入偏好設(shè)置(Preferences)=> Profiles => Default(自己的主題配置) => Non-ASCII Font => Change Font(選擇字體)
插件管理這里面剛開(kāi)始使用的Vim插件管理工具VundleVim/Vundle.vim,后面為了大家安裝方便,使用了 junegunn/vim-plug,這個(gè)插件管理工具,俺十分不喜歡,多了個(gè) autoload 目錄,安裝過(guò)程也奇丑無(wú)比,安裝快速,所以就使用它吧,下面命令更新安裝的 plug.vim,默認(rèn)已經(jīng)有了不需要這一步。
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim安裝插件
將配置信息其加入 ~/.vim/.vimrc 中的call plug#begin() 和 call plug#end() 之間,最后進(jìn)入 vim 輸入下面命令,摁 enter 進(jìn)行安裝。
:PlugInstall更新插件
插件更新頻率較高,差不多每隔一個(gè)月你應(yīng)該看看哪些插件有推出新版本,批量更新,只需在 vim 中執(zhí)行下面命令即可。
:PlugUpdate卸載插件
先在 .vimrc 中注釋或者刪除對(duì)應(yīng)插件配置信息,然后在 vim 中執(zhí)行下面命令,即可刪除對(duì)應(yīng)插件。
:PlugClean啟動(dòng)Vim
$ vimVim理解
這部分來(lái)源 一起來(lái)說(shuō) Vim 語(yǔ)
動(dòng)詞動(dòng)詞代表了我們打算對(duì)文本進(jìn)行什么樣的操作。例如:
d # 表示刪除delete r # 表示替換replace c # 表示修改change y # 表示復(fù)制yank v # 表示選取visual select名詞
名詞代表了我們即將處理的文本。Vim 中有一個(gè)專門的術(shù)語(yǔ)叫做 [文本對(duì)象] text object,下面是一些文本對(duì)象的示例:
w # 表示一個(gè)單詞word s # 表示一個(gè)句子sentence p # 表示一個(gè)段落paragraph t # 表示一個(gè) HTML 標(biāo)簽tag 引號(hào)或者各種括號(hào)所包含的文本稱作一個(gè)文本塊。介詞
介詞界定了待編輯文本的范圍或者位置。
i # 表示在...之內(nèi) inside a # 表示環(huán)繞... around t # 表示到...位置前 to f # 表示到...位置上 forward數(shù)詞
數(shù)詞指定了待編輯文本對(duì)象的數(shù)量,從這個(gè)角度而言,數(shù)詞也可以看作是一種介詞。引入數(shù)詞之后,文本編輯命令的語(yǔ)法就升級(jí)成了下面這樣:
動(dòng)詞 介詞/數(shù)詞 名詞
下面是幾個(gè)例子:
c3w # 修改三個(gè)單詞:change three words d2w # 刪除兩個(gè)單詞:delete two words
另外,數(shù)詞也可以修飾動(dòng)詞,表示將操作執(zhí)行 n 次。于是,我們又有了下面的語(yǔ)法:
數(shù)詞 動(dòng)詞 名詞
請(qǐng)看示例:
2dw # 兩次刪除單詞(等價(jià)于刪除兩個(gè)單詞): twice delete word 3x # 三次刪除字符(等價(jià)于刪除三個(gè)字符):three times delete character組詞為句
有了這些基本的語(yǔ)言元素,我們就可以著手構(gòu)造一些簡(jiǎn)單的命令了。文本編輯命令的基本語(yǔ)法如下:
動(dòng)詞 介詞 名詞
下面是一些例子(如果熟悉了上面的概念,你將會(huì)看到這些例子非常容易理解),請(qǐng)親自在 Vim 中試驗(yàn)一番。
dip # 刪除一個(gè)段落: delete inside paragraph vis # 選取一個(gè)句子: visual select inside sentence ciw # 修改一個(gè)單詞: change inside word caw # 修改一個(gè)單詞: change around word dtx # 刪除文本直到字符“x”(不包括字符“x”): delete to x dfx # 刪除文本直到字符“x”(包括字符“x”): delete forward x常用快捷鍵
這里的快捷鍵是我配置好的可用的。
;fl # 換出菜單列表 nw # 窗口切換 ;lw # 跳轉(zhuǎn)至右方的窗口 ;hw # 跳轉(zhuǎn)至左方的窗口 ;kw # 跳轉(zhuǎn)至上方的子窗口 ;jw # 跳轉(zhuǎn)至下方的子窗口 # 可以直接在Tab之間切換。 gt # 后一個(gè)Tab標(biāo)簽 gT # 前一個(gè)Tab標(biāo)簽 ;q # 關(guān)閉一個(gè)標(biāo)簽 ctrl-f # 下一頁(yè) f 就是`forword` ctrl-b # 上一頁(yè) b 就是`backward` ;t # 通過(guò)搜索文件打開(kāi)文件 # 快速文本內(nèi)定位 ;;b # 光標(biāo)前代碼定位 ;;e # 光標(biāo)后代碼定位 ;;f # 光標(biāo)后代碼定位 <搜索自負(fù)> 出現(xiàn)定位信息 ;;F # 光標(biāo)前代碼定位 <搜索自負(fù)> 出現(xiàn)定位信息 ;ilt # 設(shè)置顯示/隱藏標(biāo)簽列表子窗口(函數(shù)列表)的快捷鍵。速記:identifier list by tag 0 # 行首 $ # 行尾 :r ~/git/R.js # 將文件內(nèi)容導(dǎo)入到該文件中 :!which ls # 找命令不推出vim運(yùn)行命令 :!date # 查看編輯時(shí)間 :r !date # 將當(dāng)前編輯時(shí)間導(dǎo)入當(dāng)前文本光標(biāo)所在行 U # 選中 - 變大寫 u # 選中 - 變小寫 ~ # 選中 - 變大寫變小寫,小寫變大寫 # 列選中編輯 Ctrl+v ? # 進(jìn)入選中模式,`hjkl`方向鍵選擇片區(qū) Shift+i # 進(jìn)入列選擇批量編輯 ;cc # 代碼注釋"http://" ;cm # 代碼段落注釋"/**/" ;ci # 注釋相反,注釋的取消注釋,沒(méi)注釋的注釋 ;cs # 段落注釋,注釋每行前面加"*" ;c$ # 光標(biāo)開(kāi)始到行結(jié)束的位置注釋 ;cA # 在行尾部添加注釋符"http://" ;cu # 取消代碼注釋 ;sp # 選中搜索 - 文本中選中關(guān)鍵字 # normal模式下 選中搜索 - 文本中選中關(guān)鍵字 ;sl # 選中搜索 - 結(jié)果列表 # 多光標(biāo)編輯 Shift+n # 選中下一個(gè)相同字符 Shift+k # 跳過(guò)當(dāng)前選中的字符 za # 單個(gè)代碼折疊 zM # 折疊左右代碼 zR # 所有代碼折疊取消 ;i # 開(kāi)/關(guān)縮進(jìn)可視化 > # 代碼鎖進(jìn) - 選中摁尖括號(hào) < # 代碼鎖進(jìn) - 選中摁尖括號(hào) :1,24s/header/www/g # 第1到24行將header替換成www基礎(chǔ)使用# 退出Vim
inoremap (Insert Mode)就只在插入(insert)模式下生效
vnoremap (Visual Mode)只在visual模式下生效
nnoremap (Normal Mode)就在normal模式下(狂按esc后的模式)生效
快捷鍵
快捷鍵
快捷鍵通配符
" 定義快捷鍵的前綴,即插入命令let mapleader=";"
a # → 在光標(biāo)所在字符后插入 A # → 在光標(biāo)所在字符尾插入 i # → 在光標(biāo)所在字符前插入 I # → 在光標(biāo)所在行行首插入 o # → 在光標(biāo)下插入新行 O # → 在光標(biāo)上插入新行刪除命令
x # → 刪除關(guān)閉所在處字符 nx # → 刪除關(guān)閉所在處n個(gè)字符 dd # → 刪除光標(biāo)所在行, ndd # → 刪除n行 dG # → 刪除光標(biāo)所在行到文件末尾內(nèi)容 D # → 刪除光標(biāo)所在處到行尾內(nèi)容 :n1,n2d # → 刪除指定范圍的行 如:1,2d定位命令
:set number #→ 設(shè)置行號(hào) 簡(jiǎn)寫set nu :set nonu #→ 取消行號(hào) gg #→ 到第一行 G #→ 到最后一行 nG #→ 到第n行 :n #→ 到第n行 S #→ 移至行尾 0 #→ 移至行尾 hjkl #→ 前下上后 w #→ 到下一個(gè)單詞的開(kāi)頭 b #→ 與w相反 e #→ 到下一個(gè)單詞的結(jié)尾。 ge #→ 與e相反 0 #→ 到行頭 ^ #→ 到本行的第一個(gè)非blank字符 $ #→ 到行尾 g_ #→ 到本行最后一個(gè)不是blank字符的位置。 fa #→ 到下一個(gè)為a的字符處,你也可以fs到下一個(gè)為s的字符。 t, #→ 到逗號(hào)前的第一個(gè)字符。逗號(hào)可以變成其它字符。 3fa #→ 在當(dāng)前行查找第三個(gè)出現(xiàn)的a。 F 和 T → 和 f 和 t 一樣,只不過(guò)是相反方向。 zz # 將當(dāng)前行置于屏幕中間(不是轉(zhuǎn)載…) zt # 將當(dāng)前行置于屏幕頂端(不是豬頭~) zb # 底端啦~復(fù)制剪切
yy 和 p 的組合鍵,或者 dd 和 p 的組合鍵
yy # → 復(fù)制當(dāng)前行 nyy # → 復(fù)制當(dāng)前行以下n行 dd # → 剪切當(dāng)前行 ndd # → 剪切當(dāng)前行以下n 行 p、P # → 粘貼在當(dāng)前光標(biāo)所在行或行上 2dd # → 刪除2行 3p # → 粘貼文本3次多光標(biāo)編輯
借助 vim-multiple-cursors 實(shí)現(xiàn)多光標(biāo)編輯功能。首先選中一個(gè)單詞,然后使用快捷鍵Shift+n,就會(huì)選中下一個(gè)一模一樣的字符,Shift+k跳過(guò)選中,然后你可以進(jìn)行編輯了。默認(rèn)這個(gè)插件快捷鍵是Ctrl+n,可能會(huì)沖突,單在我這里沒(méi)有沖突,操作Shift+n快捷鍵更舒服,你可以配置自己的快捷鍵
let g:multi_cursor_next_key="簡(jiǎn)單排版" let g:multi_cursor_skip_key=" "
:ce(nter) # 居中顯示光標(biāo)所在行 :ri(ght) # 靠右顯示光標(biāo)所在行 :le(ft) # 靠左顯示光標(biāo)所在行 J # 將光標(biāo)所在下一行合并到光標(biāo)所在行 >> # 光標(biāo)所在行增加縮進(jìn)(一個(gè)tab) << # 光標(biāo)所在行減少縮進(jìn)(一個(gè)tab) n>> # 光標(biāo)所在行開(kāi)始的n行增加縮進(jìn) n<< # 光標(biāo)所在行開(kāi)始的n行減少縮進(jìn)刷新重載打開(kāi)的文件
:e # 刷新當(dāng)前文件 :e! # 強(qiáng)制刷新當(dāng)前文件保存退出
:w new_filename # → 保存為指定文件 :w # → 保存修改 :wq # → 保存修改并推出 ZZ # → 快捷鍵,保存修改并推出 :q! # → 不保存修改推出 :wq! # → 保存修改并推出(文件所有者,root權(quán)限的用戶)整頁(yè)翻頁(yè)
ctrl-f # 下一頁(yè) f 就是`forword` ctrl-b # 上一頁(yè) b 就是`backward`替換 替換取消
r # → 取代關(guān)閉所在處字符 R # → 從光標(biāo)所在處開(kāi)始替換字符,摁ESC結(jié)束 u # → 取消上一步操作 ctrl + r # → 返回上一步快捷替換
可視化模式下選中其中一個(gè),接著鍵入 ctrl-n,你會(huì)發(fā)現(xiàn)第二個(gè)該字符串也被選中了,持續(xù)鍵入 ctrl-n,你可以選中所有相同的字符串,把這個(gè)功能與 ctrlsf 結(jié)合
精確替換vim 有強(qiáng)大的內(nèi)容替換命令,進(jìn)行內(nèi)容替換操作時(shí),注意:如何指定替換文件范圍、是否整詞匹配、是否逐一確認(rèn)后再替換。
:[range]s/{pattern}/{string}/[flags]
如果在當(dāng)前文件內(nèi)替換,[range] 不用指定,默認(rèn)就在當(dāng)前文件內(nèi);
如果在當(dāng)前選中區(qū)域,[range] 也不用指定,在你鍵入替換命令時(shí),vim 自動(dòng)將生成如下命令::"<,">s/{pattern}/{string}/[flags]
你也可以指定行范圍,如,第三行到第五行::3,5s/{pattern}/{string}/[flags]
如果對(duì)打開(kāi)文件進(jìn)行替換,你需要先通過(guò) :bufdo 命令顯式告知 vim 范圍,再執(zhí)行替換;
如果對(duì)工程內(nèi)所有文件進(jìn)行替換,先 :args **/.cpp */*.h 告知 vim 范圍,再執(zhí)行替換;
替換當(dāng)前行第一個(gè) vivian/ 為 sky/,# 作為分隔符 :s #vivian/#sky/#
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky
:n,$s/vivian/sky/g 替換第 n 行開(kāi)始到最后一行中每一行所有 vivian 為 sky
:21,27s/^/#/g 行首替換#替換(增加)掉
:ab mymail asdf@qq.com 輸入mymail 摁下空格自動(dòng)替換成asdf@qq.com
;cc,注釋當(dāng)前選中文本,如果選中的是整行則在每行首添加 //,如果選中一行的部分內(nèi)容則在選中部分前后添加分別 /**/;
;cu,取消選中文本塊的注釋。
工程文件菜單自定義快捷鍵
;fl # 顯示文件菜單 file list
自帶快捷鍵
shift+i # 顯示/隱藏隱藏文件 t # 在新 Tab 中打開(kāi)選中文件/書簽,并跳到新 Tab T # 在新 Tab 中打開(kāi)選中文件/書簽,但不跳到新 Tab i # split 一個(gè)新窗口打開(kāi)選中文件,并跳到該窗口 gi # split 一個(gè)新窗口打開(kāi)選中文件,但不跳到該窗口 s # vsplit 一個(gè)新窗口打開(kāi)選中文件,并跳到該窗口 gs # vsplit 一個(gè)新 窗口打開(kāi)選中文件,但不跳到該窗口 ctrl + w + h # 光標(biāo) focus 左側(cè)樹形目錄 ctrl + w + l # 光標(biāo) focus 右側(cè)文件顯示窗口 ctrl + w + w # 光標(biāo)自動(dòng)在左右側(cè)窗口切換 ctrl + w + r # 移動(dòng)當(dāng)前窗口的布局位置 o # 在已有窗口中打開(kāi)文件、目錄或書簽,并跳到該窗口 go # 在已有窗口 中打開(kāi)文件、目錄或書簽,但不跳到該窗口 ! # 執(zhí)行當(dāng)前文件 O # 遞歸打開(kāi)選中 結(jié)點(diǎn)下的所有目錄 x # 合攏選中結(jié)點(diǎn)的父目錄 X # 遞歸 合攏選中結(jié)點(diǎn)下的所有目錄 e # Edit the current dif 雙擊 相當(dāng)于 NERDTree-o 中鍵 對(duì)文件相當(dāng)于 NERDTree-i,對(duì)目錄相當(dāng)于 NERDTree-e D # 刪除當(dāng)前書簽 # P # 跳到根結(jié)點(diǎn) p # 跳到父結(jié)點(diǎn) K # 跳到當(dāng)前目錄下同級(jí)的第一個(gè)結(jié)點(diǎn) J # 跳到當(dāng)前目錄下同級(jí)的最后一個(gè)結(jié)點(diǎn) k # 跳到當(dāng)前目錄下同級(jí)的前一個(gè)結(jié)點(diǎn) j # 跳到當(dāng)前目錄下同級(jí)的后一個(gè)結(jié)點(diǎn) C # 將選中目錄或選中文件的父目錄設(shè)為根結(jié)點(diǎn) u # 將當(dāng)前根結(jié)點(diǎn)的父目錄設(shè)為根目錄,并變成合攏原根結(jié)點(diǎn) U # 將當(dāng)前根結(jié)點(diǎn)的父目錄設(shè)為根目錄,但保持展開(kāi)原根結(jié)點(diǎn) r # 遞歸刷新選中目錄 R # 遞歸刷新根結(jié)點(diǎn) m # 顯示文件系統(tǒng)菜單 cd # 將 CWD 設(shè)為選中目錄 I # 切換是否顯示隱藏文件 f # 切換是否使用文件過(guò)濾器 F # 切換是否顯示文件 B # 切換是否顯示書簽 # q # 關(guān)閉 NerdTree 窗口 ? # 切換是否顯示 Quick Help切割窗口
:new # 水平切割窗口 :split # 水平切割窗口(或者直接輸入 :sp 也可以) :vsplit # 垂直切割( 也可以 :vs )Tab操作 多tab窗口拆分
:tabnew [++opt選項(xiàng)] [+cmd] 文件 #建立對(duì)指定文件新的tab :tabc #關(guān)閉當(dāng)前的tab :tabo #關(guān)閉所有其他的tab :tabs #查看所有打開(kāi)的tab :tabp #前一個(gè) :tabn #后一個(gè)tab切換
# 下面為自定義快捷鍵 tnew #新建tab tn #后一個(gè) tab tp #前一個(gè) tab # 窗口切換 nw # 標(biāo)準(zhǔn)模式下: gt , gT #可以直接在tab之間切換。 # 還有很多他命令, 看官大人自己, :help table 吧。 Ctrl+ww # 移動(dòng)到下一個(gè)窗口 # 或者 先按組合鍵ctrl+w ,然后都松開(kāi),然后通過(guò)j/k/h/l(等于vim移動(dòng)的方向鍵) 來(lái)移動(dòng)大哦哦左/上/下/右的窗口 Ctrl+wj #移動(dòng)到下方的窗口 Ctrl+wk #移動(dòng)到上方的窗口HTML操作
便捷操作得益于插件Emmet.vim。鍵入 div>p#foo$*3>a 然后按快捷鍵
按大寫的 V 進(jìn)入 Vim 可視模式,行選取上面三行內(nèi)容,然后按鍵
代碼片段補(bǔ)全d # 根據(jù)光標(biāo)位置選中整個(gè)標(biāo)簽 D # 根據(jù)光標(biāo)位置選中整個(gè)標(biāo)簽內(nèi)容 n # 跳轉(zhuǎn)到下一個(gè)編輯點(diǎn) N # 跳轉(zhuǎn)到上一個(gè)編輯點(diǎn) i # 更新圖片大小 m # 合并成一行 k # 移除標(biāo)簽對(duì) j # 分割/合并標(biāo)簽 / # 切換注釋 a # 從 URL 地址生成錨 A # 從 URL 地址生成引用文本
讓vim 自動(dòng)完成相同的代碼片斷,比如 if-else、switch。UltiSnips 這個(gè)插件可以幫助我們完成這項(xiàng)艱巨的工作。UltiSnips 有一套自己的代碼模板語(yǔ)法規(guī)則,如下:
snippet if "if statement" i if (${1:/* condition */}) { ${2:TODO} } endsnippet
新版 UltiSnips 并未自帶預(yù)定義的代碼模板,你可以從 honza/vim-snippets 獲取各類語(yǔ)言豐富的代碼模板,這種模版我將它存放到 ~/.vim/mysnippets/ 目錄里面,然后在配置中指定名字,同時(shí)修改出發(fā)快捷鍵,因?yàn)槟J(rèn)的快捷鍵與YCM插件沖突,需要在配置中更改。如下:
let g:UltiSnipsSnippetDirectories=["mysnippets"] " 配置目錄 let g:UltiSnipsExpandTrigger="搜索查找 文件搜索" " 配置快捷鍵 let g:UltiSnipsJumpForwardTrigger=" " " 配向前跳轉(zhuǎn)快捷鍵 let g:UltiSnipsJumpBackwardTrigger=" " " 配向后跳轉(zhuǎn)快捷鍵
搜索有兩個(gè)插件可以使用 wincent/command-t 和 junegunn/fzf,fzf沒(méi)有下載下來(lái),這里在使用 command-t ,使用的時(shí)候記得,進(jìn)入目錄 cd ~/.vim/plugged/command-t 運(yùn)行 rake make。
;t # 啟動(dòng)搜索文件搜索文本內(nèi)容
dyng/ctrlsf.vim,在插件完成安裝之后,需要安裝另外的工具,才能運(yùn)行
brew install ripgrep # 上面安裝好了之后,在.vimrc中配置下面內(nèi)容 # 快捷鍵速記法:search in project let g:ctrlsf_ackprg = "rg" # 設(shè)置快捷鍵 nnoremapsp :CtrlSF # 選中搜索 - 文本中選中關(guān)鍵字 vmap sp CtrlSFVwordPath # 選中搜索 - 結(jié)果列表 vmap sl CtrlSFQuickfixVwordPath
基本使用方法
;sp # 搜索快捷鍵 :CtrlSF pattern dir # 如果后面不帶 dir 則默認(rèn)是 . 當(dāng)前目錄搜索 # 使用 j k h l 瀏覽CtrlSP窗口 使用 Ctrl + j/k 在匹配項(xiàng)中跳轉(zhuǎn)。 # 使用 q 則退出 CtrlSP窗口 # 使用 p
基本搜索,這種搜索不需要依賴任何插件,輸入 / 再輸入需要搜索的內(nèi)容,摁 Enter 鍵,將會(huì)高亮所有搜索的內(nèi)容,在英文狀態(tài)下摁 n 字母鍵向下查找
/搜索內(nèi)容 # 切換 向上和向下搜索 # 輸入 / 摁 Enter鍵,再摁 n 字母鍵向,下查找 # 輸入 ? 摁 Enter鍵,再摁 n 字母鍵向,上查找快速移動(dòng)
Lokaltog/vim-easymotion 把滿足條件的位置用 [;A~Za~z] 間的標(biāo)簽字符標(biāo)出來(lái),找到你想去的位置再鍵入對(duì)應(yīng)標(biāo)簽字符即可快速到達(dá)。
;;b # 光標(biāo)前代碼定位 ;;e # 光標(biāo)后代碼定位 ;;f # 光標(biāo)后代碼定位 <搜索自負(fù)> 出現(xiàn)定位信息 ;;F # 光標(biāo)前代碼定位 <搜索自負(fù)> 出現(xiàn)定位信息插件列表
這里面所有的插件,并不是都放到了我的 .vimrc 文件中 .vimrc 配置文件中,是我個(gè)人喜歡并且習(xí)慣的配置。
插件管理工具junegunn/vim-plug
VundleVim/Vundle.vim
主題風(fēng)格vim-colors-solarized 主題風(fēng)格素雅 solarized
molokai 主題風(fēng)格多彩 molokai
phd 主題風(fēng)格復(fù)古 phd
使用界面Mango A nice color scheme
VimAirline 美化狀態(tài)欄偏好設(shè)置
vim-powerline 美化狀態(tài)欄
vim-airline 美化狀態(tài)欄和配置
vim-airline-themes airline主題
管理項(xiàng)目NERDTree Manage your project files
VimFugitive Git 集成
VimGitGutter Git 集成,強(qiáng)烈推薦!
EditorconfigVim Shared coding conventions
command-t 文件搜索
vim-signature 書簽可視化的插件
BOOKMARKS--Mark-and-Highlight-Full-Lines 它可以讓書簽行高亮
tagbar 方法地圖導(dǎo)航
indexer.tar.gz 自動(dòng)生成標(biāo)簽并引入
DfrankUtil 上面插件,依賴這個(gè)插件
vimprj 上面插件,依賴這個(gè)插件
ctrlsf.vim 上下文插件,例如搜素到關(guān)鍵字,中間縮略,展示一段上下文
vim-multiple-cursors 多光標(biāo)編輯功能
gen_tags.vim 生成,加載,更新ctags/gtags文件。
代碼書寫NERDCommenter 注釋更容易
DrawIt ASCII art 風(fēng)格的注釋
VimTrailingWhitespace 突出尾隨空格
Syntastic 語(yǔ)法檢查
VimEasyAlign 調(diào)整部分代碼
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 鍵而全的、支持模糊搜索的、高速補(bǔ)全的插件
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++ 語(yǔ)法高亮支持
vim-indent-guides 相同縮進(jìn)的代碼關(guān)聯(lián)起來(lái)
vim-fswitch 接口文件(MyClass.h)與實(shí)現(xiàn)文件(MyClass.cpp)快捷切換的插件
MiniBufExplorer 顯示多個(gè) buffer 對(duì)應(yīng)的 window
wildfire.vim 快捷鍵選中 <>、[]、{} 中間的內(nèi)容
gundo.vim 讓你有機(jī)會(huì)撤銷最近一步或多步操作
vim-easymotion 快速移動(dòng),兩次
Shougo/neocomplete.vim 強(qiáng)大的自動(dòng)補(bǔ)全插件
vim-instant-markdown 編輯 markdown 文檔,自動(dòng)開(kāi)啟 firefox 為你顯示 markdown 最終效果
fcitx.vim 中/英輸入平滑切換
othree/xml.vim 中/提供快速編寫xml/html的能力,如標(biāo)簽自動(dòng)閉合等
pangloss/vim-javascript 提供js代碼的智能縮進(jìn),僅使用了他的indent功能
代碼閱讀
語(yǔ)法高亮
vim-polyglot 支持常見(jiàn)的語(yǔ)法高亮
VimJson JSON 高亮和隱藏引號(hào)
vim-jsx JSX語(yǔ)法高亮
YaJS JavaScript 語(yǔ)法 (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 語(yǔ)法高亮的知名的JS庫(kù)
ultisnips 模板補(bǔ)全插件
vim-protodef 根據(jù)類聲明自動(dòng)生成類實(shí)現(xiàn)的代碼框架
錯(cuò)誤處理YouCompleteMe unavailable: dlopen(/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder Referenced from: /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so Expected in: flat namespace in /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so Press ENTER or type command to continue參考資料
vim 大冒險(xiǎn):在游戲中學(xué)習(xí) vim
VimScript學(xué)會(huì)如何自定義Vim編輯器
一起來(lái)說(shuō) Vim 語(yǔ)
css-color stopped working after updating Vim to 7.4
其它人的vimrc配置luofei614/vim-plug
yangyangwithgnu/use_vim_as_ide
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/24916.html
摘要:本文作者王仕軍,商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。想知道我接下來(lái)會(huì)寫些什么歡迎訂閱我的掘金專欄或知乎專欄前端周刊讓你在前端領(lǐng)域跟上時(shí)代的腳步。 showImg(https://segmentfault.com/img/remote/1460000009407536?w=592&h=314); 共 2127 字,讀完需 4 分鐘。我本周讀到 1 篇比較有趣的文章叫做《Th...
摘要:簡(jiǎn)評(píng)注意,這不是演習(xí),要退出編輯器真的很難。這意味著在工作日的高峰時(shí)段,每小時(shí)約有人需要被幫助退出。結(jié)論你永遠(yuǎn)不知道你貢獻(xiàn)的答案可以幫助數(shù)以百萬(wàn)計(jì)的人,無(wú)論是分享如何撤消提交,或者中的關(guān)鍵字如何工作。 簡(jiǎn)評(píng):注意,這不是演習(xí),要退出 Vim 編輯器真的很難。 早上,一個(gè)流行的 Stack Overflow 問(wèn)題成為一個(gè)重大里程碑: showImg(https://segmentfaul...
摘要:如果你問(wèn)一個(gè)年輕的前端開(kāi)發(fā)人員,你在今后的年內(nèi)如何提升自己的能力他可能會(huì)說(shuō)我現(xiàn)在對(duì)前端比較熟悉,但我想深入了解,另外現(xiàn)在發(fā)展的很快我也想看一下。再舉一個(gè)例子,我會(huì)留意身邊的程序員所用的鍵盤。只有少部分的程序員會(huì)買高端的靜電容鍵盤,比如。 如果你問(wèn)一個(gè)年輕的前端開(kāi)發(fā)人員,你在今后的 3 年內(nèi)如何提升自己的能力?他可能會(huì)說(shuō)我現(xiàn)在對(duì) Web 前端比較熟悉,但我想深入了解 AngularJS,...
摘要:我們都知道和都是文本編輯器中的上古神器,你也許用,配合完成過(guò)大型或者的開(kāi)發(fā),你也許配合過(guò)其他插件,完成過(guò),代碼的開(kāi)發(fā),但是很少有人試過(guò)的開(kāi)發(fā)吧,畢竟的框架包含了很多東西,以及天生很長(zhǎng)的名字,讓我們沒(méi)辦法把此神器用起來(lái),今天我就來(lái)給大家講下 我們都知道 Vim 和 Emacs 都是文本編輯器中的上古神器,你也許用 ctags,cscopes 配合 Vim 完成過(guò)大型 C 或者 C++ 的...
閱讀 2337·2023-04-26 01:57
閱讀 3348·2023-04-25 16:30
閱讀 2393·2021-11-17 09:38
閱讀 1153·2021-10-08 10:14
閱讀 1455·2021-09-23 11:21
閱讀 3772·2019-08-29 17:28
閱讀 3528·2019-08-29 15:27
閱讀 1010·2019-08-29 13:04