107.04.02 vim runner 介紹

aben20807/vim-runner
來,久等了,星起來,星起來 OuO


為什麼叫做 runner ?

1. 恩....好像沒有其他人寫類似的東西
2. 想要一鍵編譯加執行
3. 總之除了懶我已經想不到其他形容詞 OuO

安裝

Plug 'aben20807/vim-runner'
:PlugInstall

使用方式

支援語言:C, C++, Python, Rust, Markdown
其中 Markdown 還需要其他 plugin:iamcco/markdown-preview.vim
按 F5 就編譯加執行啦
Python 是直譯所以沒有編譯
Markdown 是打開瀏覽器預覽

可自訂變數

是否使用預設的按鍵,預設值是 1 就是有使用
let g:runner_use_default_mapping = 1

編譯前是否先儲存檔案
let g:runner_is_save_first = 1

是否印出時間戳記,也就是 demo 中的<<紅字>>
let g:runner_print_timestamp = 1

是否印出程式執行使用時間,像是
real 0m0.035s
user 0m0.000s
sys 0m0.030s
let g:runner_print_time_usage = 1

是否顯示執行訊息,好像有沒有開都沒訊息....
let g:runner_show_info = 1

是否自動刪除暫存檔
就是編譯後這個 plugin 會產生一個暫存檔,然後再去執行這個暫存檔
let g:runner_auto_remove_tmp = 0

要用哪個按鍵編譯加執行
let g:runner_run_key = "<F5>"

暫存檔的存放位置,如果改成 "./" 就是輸出到當前資料夾喔 OuO
let g:runner_tmp_dir = "/tmp/vim-runner/"

若有用 w0rp/ale 這個 plugin 會有點小麻煩,需要先關閉
所以我就順便寫了自動關閉,如果原本有開啟執行完後會自動開啟,有裝 ale 記得設成 1
let g:runner_is_with_ale = 0

markdown 要運作需要使用 iamcco/markdown-preview.vim,裝了之後記得把此變數變 1
let g:runner_is_with_md = 0

各個編(直)譯器的執行檔位置,可以直接給路徑
let g:runner_c_executable = "gcc"
let g:runner_cpp_executable = "g++"
let g:runner_rust_executable = "cargo"
let g:runner_python_executable = "python3"

編譯選項,可以自改成 c++11, gnu99....
有在寫 online judge 的可以把 cpp 的改成用 "-std=c++14 -Wall -lm -O2 -pipe"
let g:runner_c_compile_options = "-std=c11 -Wall"
let g:runner_cpp_compile_options = "-std=c++14 -Wall"
let g:runner_rust_compile_options = ""

執行選項,覺得這是厲害之所在
就是可以自訂測資輸入檔,答案太多行不想輸出到螢幕,也可以導到輸出檔中
像我解題目就是下面兩行切換使用
let g:runner_cpp_run_options = "< test.in"
let g:runner_cpp_run_options = "< test.in > test.out"

以第一行和執行 UVa 574 Sum It Up 當作範例
以第二行和執行 UVa 574 Sum It Up 當作範例

let g:runner_c_run_options = ""
let g:runner_cpp_run_options = ""
let g:runner_rust_run_backtrace = 1
let g:runner_rust_run_options = ""

沒有留言:

張貼留言

^ Top