實用刷題、線上賽C++配置(VSCode + ccls)
目录
寫不動題了,來寫篇小文章放鬆一下,記錄一下自己的配置,也供讀者參考。
注:運行環境爲Arch Linux
需要安裝的包
- gcc 如果不用pbds等,可以直接用clang編譯,和gcc的差異基本上只有少量UB,__int128也是支持的,不過Linux基本上不能不裝gcc
- llvm(clang) 除了作爲一個編譯器之外,還提供強大的自動補全、代碼檢查、代碼格式化等相關工具,clion、qtcreator等都依賴它
- ccls 基於clang的LSP(language server protocol),完成度比clang的類似組件clangd更高。注意:更新clang後需要用新版本的clang重新編譯ccls,否則可能會出現各種問題(包括完全掛掉)
- visual-studio-code 體驗不錯,插件生態非常好的編輯器
插件列表
- ccls 核心插件,提供語法檢查、補全、高亮、變量重命名、code lens等等
- clang-format ccls的提供的格式化偶爾會抽風,單獨用這個比較穩定
- Code Runner 一鍵編譯運行
- easy-snippet 非常方便的snippet管理工具,可以用來存板子
- CodeLLDB 可選,整合lldb,偏好gdb的用戶可以不裝
- Vim 可選,vim模擬
- ICIE 拉取codeforces上面的題目和樣例,並根據通用模板生成文件,並且可以一鍵測試,通過後直接submit,現在已經支持直接拉取正在進行或即將進行的比賽,除了hack和看榜之外可以不用打開瀏覽器
- Better Online Judge 和前者類似,用於vjudge上的比賽,功能較弱,拉取不了樣例
- vscode-clangd 備用,比如在睡前更新clang後忘記重編譯ccls,第二天開始打了發現ccls炸了,可以把clangd拉出來救急(親身經歷)。目前它的功能略弱於ccls,但畢竟是llvm官方的組件,不排除以後會趕超
注:如果使用第三方調試工具的話,不用安裝微軟官方的cpptools插件
建議修改的設置
ccls
可以調整自動補全的case sensitivity(大小寫敏感)和detailed label(補全時顯示標準庫函數的詳細功能)。高亮部分可以根據自己喜好調整,建議打開type aliases等
Code Runner
可以自己改運行命令,以下供參考:
|
|
Vim
VSCode的vim插件功能挺多的,尤其是支持neovim做後端,以下設置供參考
|
|
ICIE
"icie.template.list"
下寫你的通用模板的文件路徑
Better Online Judge
這個插件的通用模板是硬編碼的,直接修改~/.vscode/extensions/yiyangxu.better-oj-<版本號>/out/utils/template.js