Ft_rust
Nvim 的 :help
頁面,從 原始碼 產生,使用 tree-sitter-vimdoc 解析器。
目錄
這個外掛程式為 Rust 檔案類型提供語法和支援功能。它需要 Vim 8 或更高版本才能完全發揮作用。某些命令在較早版本上無法運作。
這個外掛程式有一些變數,您可以在您的 vimrc 中定義這些變數來更改外掛程式的行為。
某些變數可以設定為緩衝區區域(:b
前綴),緩衝區區域將優先於全域 g:
對應項。
g:rust_recommended_style
g:rust_recommended_style
設定此選項以啟用 vim 縮排和 textwidth 設定,使其符合 rust 標準函式庫的樣式慣例(即使用 4 個空格進行縮排並將
'textwidth' 設定為 99)。預設啟用此選項。要停用它
let g:rust_recommended_style = 0
值 效果
0 無摺疊 1 大括號區塊會被摺疊。所有摺疊預設為開啟。 2 大括號區塊會被摺疊。
'foldlevel' 會保留全域值(所有摺疊預設為關閉)。
g:rust_bang_comment_leader
設定此選項為 1,以保留使用
/*!
語法的多行文件註解上的領導符號
let g:rust_bang_comment_leader = 1
g:rust_use_custom_ctags_defs
g:rust_use_custom_ctags_defs
如果您有針對 Rust 自訂的 ctags 定義,並且不希望使用 rust.vim 中包含的定義,請將此選項設定為 1
let g:rust_use_custom_ctags_defs = 1
注意: rust.vim 的內建定義僅用於 Tagbar Vim 外掛程式,如果您已安裝該外掛程式,且未偵測到 Universal Ctags。這是因為 Universal Ctags 在與 Tagbar 一起使用時,已經內建了對 Rust 的支援。
另請注意,當使用 Universal Ctags 以外的 ctags 時,它不會在產生
tags 檔案時自動使用,Vim 可以使用這些檔案導覽到不同來源檔案中的定義。如果您想要產生
tags 檔案,請隨意將
rust.vim/ctags/rust.ctags
複製到您自己的
~/.ctags
中。
g:rustfmt_command
g:rustfmt_command
將此選項設定為您 $PATH 中 "rustfmt" 可執行檔的名稱。如果未指定,則預設為 "rustfmt"
let g:rustfmt_command = 'rustfmt'
還有一個緩衝區區域的 b:rustfmt_autosave 可以設定為相同目的,並且可以覆寫全域設定。
這對於僅在具有 rustfmt.toml
設定的專案上儲存時執行 rustfmt
很有用。
還有一個緩衝區區域的 b:rustfmt_autosave_if_config_present 可以設定為相同目的,它可以覆寫全域設定。
g:rustfmt_options
g:rustfmt_options
將此選項設定為要傳遞給 "rustfmt" 的選項字串。寫入模式已設定為 "overwrite"。如果未指定,則預設為 ''
let g:rustfmt_options = ''
g:rustfmt_emit_files
g:rustfmt_emit_files
如果未指定,rust.vim 會嘗試根據其回報的版本來偵測要傳遞給 rustfmt 的正確參數。否則,它會判斷是否使用 '--emit=files'(當提供 1 時)而不是 '--write-mode=overwrite' 來執行 rustfmt。
let g:rustfmt_emit_files = 0
g:rust_playpen_url
g:rust_playpen_url
設定此選項以覆寫要使用的 playpen 的網址
let g:rust_playpen_url = 'https://play.rust-lang.org/'
g:rust_shortener_url
g:rust_shortener_url
設定此選項以覆寫網址縮短器的網址
let g:rust_shortener_url = 'https://is.gd/'
g:rust_clip_command
g:rust_clip_command
將此選項設定為您作業系統中用於將 Rust Play 網址複製到剪貼簿的命令
let g:rust_clip_command = 'xclip -selection clipboard'
g:cargo_makeprg_params
g:cargo_makeprg_params
將此選項設定為要傳遞給 cargo 的參數字串。如果未指定,則預設為
$*
let g:cargo_makeprg_params = 'build'
此外掛程式會自動與 Syntastic 檢查器整合。提供兩個檢查器:rustc
和 cargo
。後者會呼叫 cargo
以建置程式碼,而前者會將單個編輯的 '.rs' 檔案作為編譯目標直接傳遞給 Rust 編譯器 rustc
。
由於 Cargo 現在幾乎完全用於建置 Rust 程式碼,因此
cargo
是預設檢查器。
let g:syntastic_rust_checkers = ['cargo']
如果您想變更它,您可以將
g:syntastic_rust_checkers
設定為不同的值。
g:rust_cargo_avoid_whole_workspace
b:rust_cargo_avoid_whole_workspace
g:rust_cargo_avoid_whole_workspace
當編輯屬於 Cargo 工作區一部分的 crate,且此選項設定為 1(預設值)時,
cargo
將直接在該 crate 目錄中執行,而不是在工作區目錄中執行。設定為 0 會阻止此行為 - 但是請注意,如果您在大型工作區中工作,Cargo 命令可能需要更多時間,此外,Syntastic 錯誤列表可能包含工作區中的所有 crate。
let g:rust_cargo_avoid_whole_workspace = 0
此外掛程式會自動設定 auto-pairs 外掛程式,使其不會重複單引號,單引號通常用於生命週期註解,而不是單一字元文字。
不要覆寫 Rust 檔案類型的 auto-pairs 預設值。預設值為 0。
此外掛程式定義了從 Vim 呼叫 Cargo 的非常簡單的快捷方式。
:Cargo
<args>
:Cargo使用提供的引數執行
cargo
。
:Cbuild
<args>
:Cbuildcargo build
的快捷方式。
:Cclean
<args>
:Ccleancargo clean
的快捷方式。
:Cdoc
<args>
:Cdoccargo doc
的快捷方式。
:Cinit
<args>
:Cinitcargo init
的快捷方式。
:Crun
<args>
:Cruncargo run
的快捷方式。
:Ctest
<args>
:Ctestcargo test
的快捷方式。
:Cupdate
<args>
:Cupdatecargo update
的快捷方式。
:Cbench
<args>
:Cbenchcargo bench
的快捷方式。
:Csearch
<args>
:Csearchcargo search
的快捷方式。
:Cpublish
<args>
:Cpublishcargo publish
的快捷方式。
:Cinstall
<args>
:Cinstallcargo install
的快捷方式。
:Cruntarget
<args>
:Cruntargetcargo run --bin
或
cargo run --example
的快捷方式,取決於目前開啟的緩衝區。
注意: 這些命令僅在處理獨立 Rust 檔案時有用,而這通常不是常見 Rust 開發的情況。如果您希望從 Vim 內建構 Rust crates,則應該使用 Vim 的 make、Syntastic 或其他外掛程式的功能。
:RustRun [args]
:RustRun:RustRun! [rustc-args] [--] [args] 編譯並執行目前的檔案。如果檔案有未儲存的變更,它會先使用
:update 儲存。如果目前的檔案是未命名的緩衝區,則會先將其寫入臨時檔案。編譯後的二進制檔案會始終放置在臨時目錄中,但會從目前目錄執行。
如果指定了 !,則引數會傳遞給 rustc。 "--" 引數會將 rustc 引數與傳遞給二進制檔案的引數分開。
如果定義了
g:rustc_path,則會將其用作 rustc 的路徑。否則,會假定 rustc 可以在 $PATH 中找到。
:RustExpand [args]
:RustExpand:RustExpand! [TYPE] [args] 使用
--pretty
展開目前的檔案,並在新的分割視窗中顯示結果。如果目前的檔案有未儲存的變更,它會先使用
:update 儲存。如果目前的檔案是未命名的緩衝區,則會先將其寫入臨時檔案。
如果指定了 !,則第一個引數是要傳遞給 rustc --pretty
的展開類型。否則,預設為 "expanded"。
如果定義了
g:rustc_path,則會將其用作 rustc 的路徑。否則,會假定 rustc 可以在 $PATH 中找到。
:RustEmitIr [args]
:RustEmitIr將目前檔案編譯為 LLVM IR,並在新的分割視窗中顯示結果。如果目前的檔案有未儲存的變更,它會先使用
:update 儲存。如果目前的檔案是未命名的緩衝區,則會先將其寫入臨時檔案。
如果定義了
g:rustc_path,則會將其用作 rustc 的路徑。否則,會假定 rustc 可以在 $PATH 中找到。
:RustEmitAsm [args]
:RustEmitAsm將目前檔案編譯為組語,並在新的分割視窗中顯示結果。如果目前的檔案有未儲存的變更,它會先使用
:update 儲存。如果目前的檔案是未命名的緩衝區,則會先將其寫入臨時檔案。
如果定義了
g:rustc_path,則會將其用作 rustc 的路徑。否則,會假定 rustc 可以在 $PATH 中找到。
:[N]RustTest[!] [options]
:RustTest當目前的緩衝區位於 cargo 專案中時,使用 "cargo test" 命令執行游標下的測試。如果命令在游標下找不到任何測試函數,則會停止並顯示錯誤訊息。
當給定 N 時,將新視窗的大小調整為 N 行或欄。
當給定 ! 時,無論目前游標位置如何,都會執行所有測試。
當給定 [options] 時,它會傳遞給 "cargo" 命令引數。
當目前的緩衝區在 cargo 專案之外時,該命令會使用 rustc --test
命令而不是 "cargo test" 作為回退。由於無法使用 rustc 執行特定的測試函數,因此無論是否添加 !,都會執行所有測試。[options] 在這種情況下會傳遞給 rustc
命令引數。
接受可選的修飾符(請參閱
<mods>)
:tab RustTest
:belowright 16RustTest
:leftabove vert 80RustTest
:RustInfoToFile [filename]
:RustInfoToFile將 Vim Rust 外掛程式的除錯資訊儲存到指定的檔案,並覆寫該檔案。
此外掛程式定義了
[[ 和
]] 的對應,以支援懸掛縮排。