spf13-vim 介紹及常用快捷鍵

一、什麼是 spf13-vim

官方簡介:

spf13-vim is a distribution of vim plugins and resources for Vim, Gvim and MacVim.
spf13-vim 是 Vim,Gvim 和 MacVim 的 vim 插件和資源的整合包。

It is a good starting point for anyone intending to use VIM for development running equally well on Windows, Linux, *nix and Mac.
對於任何打算使用VIM進行開發的人來說,這是一個很好的起點,可以在Windows,Linux,*nix和Mac上同樣運行。

個人使用感受:

我覺得 spf13 算是整合的比較好的一個插件集了,有很多好用的插件,也有很多好用的快捷鍵,Vim 不是說裝好插件就可以用的很舒服了,還要自定義很多快捷鍵,這些都是在 .vimrc 裏配置的,想要用的舒服、順手,這個配置要改很多,這是一個長期且艱辛的工作,而 spf13 都幫我們做好了,省了很多事。

spf13-vim 是一個開箱即用的 vim 整合包,就像大腳/魔盒之於WOW,可以說有了 spf13, Vim 才成爲一個強力的終端 IDE。

關於 spf13 停止維護的問題:

spf13 的作者確實已經停止維護了, github 上最後一次提交是在2016年,但這不影響使用,它仍然是我用過最好用的 vim 整合包。

後續我希望我有精力把它維護起來,大家有餘力也可以做這件事。

二、安裝

curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh

等待安裝完成即可,中間會有幾個插件需要輸入 github 的帳號和密碼的,這幾個插件用不了,直接按回車跳過即可。

裝好後,不論是在終端下使用 Vim,還是 MacVim, 都已經有了 spf13 的環境。

三、常用快捷鍵

3.1 NERDTree 文件瀏覽器

  • <Ctrl-e> 按一下打開文件瀏覽器,再按一下關閉
  • <leader>e 打開文件瀏覽器,並且文件定位到當前打開的文件上

<Ctrl-e> 表示 Ctrl + e, <leader>e leader 是 Vim 中的一個概念,表示“前置按鍵”,有很多操作要先按下 leader 鍵再接一個按鍵,leader 可以在 vimrc 裏配置,默認是\,在 spf13 裏是逗號(,)

打開文件瀏覽器後,可以使用 hjkl 上下移動,按回車就會打開當前光標所在的文件,按?可以打開幫助界面,裏面有詳細的按鍵介紹,有興趣可以看看,常用的就是移動+回車。

還有兩個比較常用,按 s 在一個拆分窗口裏打開文件,按 t 在新的 tab 頁打開。

3.2 ctrlp 全局文件搜索

  • <Ctrl-p> 打開文件查找界面,這時可以輸入文件名字,結果是秒出的,跟使用 vscode 和 sublime 一樣,不一樣的是不支持模糊查找,所以沒 vscode/sublime 好用,但基本夠用了,湊合用用吧。

3.3 EasyMotion 任意位置跳轉

  • <leader><leader>j 按下後,會在每一行的行首高亮且有一個字母標在高亮處,這時輸入指定字母就可以跳過去了,這個可以說是起飛的關鍵之一,必須要熟練掌握
  • <leader><leader>k 上面是向下搜索,這個是向上,其他都一樣
  • <leader><leader>w,,j,只不過是單詞級的向後搜索
  • <leader><leader>b,,k, 只不過是單詞級的向前搜索(,,w ,,b 不如行級好用,因爲太花了,我們可以用行級 Jump 到指定行,再用 f 過去,或者按幾個 w 也可以,如果靠近行尾,可以先按$到行尾再按幾個 b,方法很多。

3.4 多標籤

  • 在用 ctrl-p 搜到一個文件後,可以再按 ctrl-t 在新標籤裏打開
  • 在文件瀏覽器(NerdTree)裏,定位到某個文件後,按 t 在新標籤裏打開
  • :tabe 指定文件 這樣也可以在新標籤中打開一個文件
  • :tabo 這樣就可以關閉所有其他標籤,只保留當前打開的,單詞的意思應該是 tab close others
  • L 打開下一個標籤(默認按鍵是 gt)
  • H 打開前一個標籤(默認按鍵是 gT)
  • ngt n是一個數字,輸入幾就直接打開第幾個標籤,這個只在Vim 或 MacVim/GVim 下生效,VSCode 插件不生效,Sublime 插件估計也不行。

我是用 VSCode 的,切標籤一般我的習慣是,當打開的標籤不多時,就多按幾個 H/L,如果很多,就放棄移動了,直接 Ctrl-p 重新打開吧,這樣還快點,當然偶爾也會用鼠標直接點,怎麼方便怎麼來。

3.5 代碼註釋

  • gc 選中若干行後, 輸入gc註釋它們。(go comment)
  • gcc 不需要選中,直接用,可以註釋一行。Vim 裏一般重複字符就是對一行進行操作,比如 dd 刪除一行,這裏 gcc 也是類似的邏輯
  • ngcc n 是數字,註釋 n 行,這個非常好用,也是起飛的關鍵指令之一。

3.6 Surround Vim Action 增加

這個並不常用,但是很好用,偶爾有奇效,可以選擇性的掌握。

具體用法我也不想寫了,直接看作者寫的英語吧。

This plugin is a tool for dealing with pairs of “surroundings.” Examples of surroundings include parentheses, quotes, and HTML tags. They are closely related to what Vim refers to as text-objects. Provided are mappings to allow for removing, changing, and adding surroundings.

Details follow on the exact semantics, but first, consider the following examples. An asterisk (*) is used to denote the cursor position.

Old text Command New text
“Hello *world!” ds" Hello world!
[123+4*56]/2 cs]) (123+456)/2
“Look ma, I’m *HTML!” cs"<q> <q>Look ma, I’m HTML!</q>
if *x>3 { ysW( if ( x>3 ) {
my $str = *whee!; vllllS’ my $str = ‘whee!’;

For instance, if the cursor was inside “foo bar”, you could type cs"’ to convert the text to ‘foo bar’.

There’s a lot more, check it out at :help surround

四、一些自寶義設置

nnoremap <f5> :!ctags -R<CR>

set nospell
set relativenumber
set nopaste

let g:Tlist_Ctags_Cmd='/usr/local/Cellar/ctags/5.8_1/bin/ctags'
let g:ctrlp_cmd = 'CtrlPMixed'

let g:syntastic_check_on_open = 1
let g:syntastic_lua_checkers = ["luac", "luacheck"]
let g:syntastic_lua_luacheck_args = "--no-unused-args"

" To open each buffer in its own tabpage
" au BufAdd,BufNewFile * nested tab sball

set iskeyword-=.                    " '.' is an end of word designator
set iskeyword-=-                    " '.' is an end of word designator

" path指定查找的路徑,詳情help path
" includeexpr是嘗試替換路徑名中的.爲/,詳情help includeexpr
" suffixesadd爲嘗試路徑後綴,詳情help suffixesadd
set includeexpr=substitute(v:fname,'\\.','/','g')
set suffixesadd=.lua

把上面這些內容放到 ~/.vimrc.local 文件內,裏面比較重要的是

  • set nospell 禁用拼寫檢查,不禁用會有很多紅色波浪線,神煩
  • set relativenumber 設置相對行號,這個極其重要,起飛的關鍵

其他設置看不懂沒關係,先放進去再說,以後再慢慢研究

五、後續學習

http://vim.spf13.com/

這是 spf13-vim 的官方網站,裏面有很多插件介紹和快捷鍵,有興趣可以看看,收集插件也是樂趣之一,用的久了自然就會越來越熟悉,這裏只是拋磚引玉,希望大家後續發起更多有趣、好用的插件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章