在程序的開發過程當中,很重要的一個循環是:編輯-編譯-編輯,vim中的quickfix功能就是爲了提升這一循環的效率。quickfix功能將編譯過程當中產生的錯誤信息保存到文件中,而後vim利用這些信息跳轉到源文件的對應位置,咱們就能夠進行錯誤的修正,以後跳到下一個錯誤重複上述操做,從而極大地提升編譯錯誤的修改效率。shell
在vim中除了文本編輯功能外,還能夠直接地調用外部的編譯器完成程序的編譯工做,實現這一功能,只要簡單地使用vim命令:vim
<!-- lang: shell --> :make
make命令執行的程序爲vim變量makeprg的值,默認makeprg=make,使用Makefile機制進行項目的編譯、管理。能夠經過set makeprg=xxx的命令修改makeprg的值,從而使make命令執行不一樣的編譯。例如:ui
<!-- lang: shell --> :set makeprg=gcc\ hello.c\ -o\ hello
變量的值爲字符串,當在其中有空格時須要用\進行轉義,一樣若是想輸入\也要進行轉義。在vim運行時經過命令行設置的變量值均是臨時的,即當推出vim環境時,該變量值會恢復爲配置文件中的值或者默認值。命令行
推薦使用Makefile的方式進行項目的編譯、管理,能夠實現項目的自動化管理、有利於提升效率。code
經過make命令完成程序的編譯工做後,會獲得編譯結果,通常會有一些編譯錯誤,此時的工做就是對照錯誤提示修改源文件,而後從新編譯。quickfix功能使咱們能夠直接跳到文件中的錯誤位置,直接進行修改,並經過使用quickfix的命令完成錯誤列表的跳轉。查看在線幫助,經過命令:開發
<!-- lang: shell --> :help quickfix
經常使用的quickfix命令爲:字符串
:cc 顯示詳細錯誤信息 :cp 跳到上一個錯誤 :cn 跳到下一個錯誤 :cl 列出全部錯誤 :cw 若是有錯誤列表,則打開quickfix窗口,沒有則什麼也不錯 :copen 打開quickfix窗口,能夠在後面添加窗口高度參數,如10行: :copen 10 :cclose 關閉quickfix窗口 :col 到前一箇舊的錯誤列表 :cnew 到後一個較新的錯誤列表
固然,爲了進一步提升操做效率,還能夠對這些命令進行映射,這就看本身的須要了,我仍是喜歡使用原始的命令,覺着基本不影響效率。越簡單越好,這是原則。編譯器