Ft_rust

Nvim の:help ページ。 生成されたもので、 ソースtree-sitter-vimdoc パーサーを使用して生成されています。


目次

1. はじめに rust-intro 2. 設定 rust-settings 3. コマンド rust-commands 4. マッピング rust-mappings

はじめに rust-intro

このプラグインは、Rust ファイルタイプの構文とサポート機能を提供します。完全な機能を使用するには、Vim 8 以降が必要です。以前のバージョンでは、一部のコマンドが動作しません。
このプラグインには、vimrc で定義できるいくつかの変数があり、プラグインの動作を変更します。
一部の変数はバッファローカル(:b プレフィックス)に設定でき、バッファローカルはグローバルなg: と比較して優先されます。
g:rustc_path
g:rustc_path
:RustRun:RustExpand コマンドで使用する rustc のパスを設定します。設定されていない場合、rustc は $PATH から検索されます。
let g:rustc_path = $HOME."/bin/rustc"
g:rustc_makeprg_no_percent
g:rustc_makeprg_no_percent
'makeprg' のデフォルトを rustc % ではなく rustc に設定するには、このオプションを 1 に設定します。
let g:rustc_makeprg_no_percent = 1
g:rust_conceal
g:rust_conceal
このオプションを設定して、基本的な conceal サポートを有効にします。
let g:rust_conceal = 1
g:rust_conceal_mod_path
g:rust_conceal_mod_path
トークン "::" を接続するパスに対して conceal を有効にするには、このオプションを設定します。
let g:rust_conceal_mod_path = 1
g:rust_conceal_pub
g:rust_conceal_pub
"pub" トークンに対して conceal を有効にするには、このオプションを設定します。
let g:rust_conceal_pub = 1
g:rust_recommended_style
g:rust_recommended_style
このオプションを設定すると、Vim のインデントと textwidth 設定が Rust 標準ライブラリのスタイル規則に準拠するようになります(つまり、インデントに4つのスペースを使用し、'textwidth' を 99 に設定します)。このオプションはデフォルトで有効になっています。無効にするには
let g:rust_recommended_style = 0
g:rust_fold
g:rust_fold
このオプションを設定して 折りたたみ を有効にします。
let g:rust_fold = 1
値 効果
0 折りたたみなし 1 中括弧で囲まれたブロックが折り畳まれます。すべての折り畳みはデフォルトで開いています。 2 中括弧で囲まれたブロックが折り畳まれます。'foldlevel' はグローバル値のままです(すべての折り畳みはデフォルトで閉じられています)。
g:rust_bang_comment_leader
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 を使用する場合、Vim が異なるソースファイル間で定義に移動するために使用できる tags ファイルを生成する際に、自動的には使用されません。tags ファイルを生成する場合は、rust.vim/ctags/rust.ctags を独自の ~/.ctags にコピーしてください。
g:ftplugin_rust_source_path
g:ftplugin_rust_source_path
このオプションを、Rust ソースファイルの 'path' にプリペンドするパスに設定します。
let g:ftplugin_rust_source_path = $HOME . '/dev/rust'
g:rustfmt_command
g:rustfmt_command
$PATH 内の "rustfmt" 実行ファイルの名前にこのオプションを設定します。指定されていない場合は "rustfmt" がデフォルトになります。
let g:rustfmt_command = 'rustfmt'
g:rustfmt_autosave
g:rustfmt_autosave
バッファを保存する際に :RustFmt を自動的に実行するには、このオプションを 1 に設定します。指定されていない場合は 0 がデフォルトになります。
let g:rustfmt_autosave = 0
同じ目的で設定できるバッファローカルの b:rustfmt_autosave もあり、グローバル設定をオーバーライドできます。
g:rustfmt_autosave_if_config_present
g:rustfmt_autosave_if_config_present
編集中のファイルにつながる任意の親ディレクトリに rustfmt.toml ファイルが存在する場合に、b:rustfmt_autosave を自動的に設定するには、このオプションを 1 に設定します。設定されていない場合は、0 がデフォルトになります。
let g:rustfmt_autosave_if_config_present = 0
これは、rustfmt.toml 構成を持つプロジェクトで、保存時にのみ rustfmt を実行する場合に便利です。
同じ目的で設定できるバッファローカルの b:rustfmt_autosave_if_config_present もあり、グローバル設定をオーバーライドできます。
g:rustfmt_fail_silently
g:rustfmt_fail_silently
"rustfmt" が location-list にエラーを書き込まないようにするには、このオプションを 1 に設定します。指定されていない場合は 0 がデフォルトになります。
let g:rustfmt_fail_silently = 0
g:rustfmt_options
g:rustfmt_options
"rustfmt" に渡すオプションの文字列をこのオプションに設定します。書き込みモードは既に "overwrite" に設定されています。指定されていない場合は "" がデフォルトになります。
let g:rustfmt_options = ''
g:rustfmt_emit_files
g:rustfmt_emit_files
指定されていない場合、rust.vim は報告されたバージョンに基づいて rustfmt に渡す適切なパラメーターを検出しようとします。それ以外の場合は、'--write-mode=overwrite' ではなく '--emit=files' を使用して rustfmt を実行するかどうかを決定します(1 が提供された場合)。
let g:rustfmt_emit_files = 0
g:rust_playpen_url
g:rust_playpen_url
このオプションを設定して、使用する playpen の URL をオーバーライドします。
let g:rust_playpen_url = 'https://play.rust-lang.org/'
g:rust_shortener_url
g:rust_shortener_url
このオプションを設定して、URL 短縮サービスの URL をオーバーライドします。
let g:rust_shortener_url = 'https://is.gd/'
g:rust_clip_command
g:rust_clip_command
Rust Play の URL をクリップボードにコピーするために使用する OS のコマンドを設定します。
let g:rust_clip_command = 'xclip -selection clipboard'
g:cargo_makeprg_params
g:cargo_makeprg_params
cargo に渡すパラメーターの文字列を設定します。指定されていない場合は $* がデフォルトになります。
let g:cargo_makeprg_params = 'build'
g:cargo_shell_command_runner
g:cargo_shell_command_runner
cargo コマンド :Cargo:Cbuild:Crun… のシェルコマンドの実行方法を変更するためにこのオプションを設定します。デフォルトでは、:terminal を使用して、ターミナルウィンドウでシェルコマンドを非同期的に実行します。しかし、:! でコマンドを実行する方が好ましい場合は、それを指定できます。
let g:cargo_shell_command_runner = '!'

Syntastic との統合 rust-syntastic

このプラグインは、Syntastic チェッカーと自動的に統合されます。rustccargo の2つのチェッカーが提供されています。後者はコードをビルドするために 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 ワークスペースの一部であるクレートを編集していて、このオプションが 1(デフォルト)に設定されている場合、ワークスペースディレクトリではなく、そのクレートディレクトリで直接 cargo が実行されます。0 に設定するとこの動作は防止されますが、大規模なワークスペースで作業している場合、Cargo コマンドに時間がかかる可能性があり、Syntastic エラーリストにワークスペース内のすべてのクレートが含まれる可能性があることに注意してください。
let g:rust_cargo_avoid_whole_workspace = 0
g:rust_cargo_check_all_targets
b:rust_cargo_check_all_targets
g:rust_cargo_check_all_targets
1 に設定されている場合、Syntastic が実行する際に --all-targets オプションが cargo に渡され、パッケージ内のすべてのターゲットの lint を行うことができます。デフォルトは 0 です。
g:rust_cargo_check_all_features
b:rust_cargo_check_all_features
g:rust_cargo_check_all_features
1 に設定されている場合、Syntastic が実行する際に --all-features オプションが cargo に渡され、パッケージのすべての機能の lint を行うことができます。デフォルトは 0 です。
g:rust_cargo_check_examples
b:rust_cargo_check_examples
g:rust_cargo_check_examples
1 に設定されている場合、lint から例を除外しないように、Syntastic が実行する際に --examples オプションが cargo に渡されます。例は通常、クレートの examples/ ディレクトリにあります。デフォルトは 0 です。
g:rust_cargo_check_tests
b:rust_cargo_check_tests
g:rust_cargo_check_tests
1 に設定されている場合、lint からテストを除外しないように、Syntastic が実行する際に --tests オプションが cargo に渡されます。テストは通常、クレートの tests/ ディレクトリにあります。デフォルトは 0 です。
g:rust_cargo_check_benches
b:rust_cargo_check_benches
g:rust_cargo_check_benches
1 に設定されている場合、Syntastic が実行する際に --benches オプションが cargo に渡されます。ベンチマークは通常、クレートの benches/ ディレクトリにあります。デフォルトは 0 です。

auto-pairs との統合 rust-auto-pairs

このプラグインは、ライフタイムアノテーションでより頻繁に使用される単一引用符を、単一文字リテラルとして重複させないように、auto-pairs プラグインを自動的に構成します。
g:rust_keep_autopairs_default
g:rust_keep_autopairs_default
Rust ファイルタイプに対して auto-pairs のデフォルトをオーバーライドしません。デフォルトは 0 です。

コマンド rust-commands

Cargo の呼び出し
このプラグインは、Vim から Cargo を呼び出すための非常にシンプルなショートカットを定義します。
:Cargo <args> :Cargo
指定された引数で cargo を実行します。
:Cbuild <args> :Cbuild
cargo build のショートカット。
:Cclean <args> :Cclean
cargo clean のショートカット。
:Cdoc <args> :Cdoc
cargo doc のショートカット。
:Cinit <args> :Cinit
cargo init のショートカット。
:Crun <args> :Crun
cargo run のショートカット。
:Ctest <args> :Ctest
cargo test のショートカット。
:Cupdate <args> :Cupdate
cargo update のショートカット。
:Cbench <args> :Cbench
cargo bench のショートカット。
:Csearch <args> :Csearch
cargo search のショートカット。
:Cpublish <args> :Cpublish
cargo publish のショートカット。
:Cinstall <args> :Cinstall
cargo install のショートカット。
:Cruntarget <args> :Cruntarget
現在開いているバッファに応じて、cargo run --bin または cargo run --example のショートカット。
フォーマット
:RustFmt :RustFmt
g:rustfmt_command を現在のバッファで実行します。 g:rustfmt_options が設定されている場合は、それらが実行可能ファイルに渡されます。
g:rustfmt_fail_silently が 0(デフォルト)の場合、g:rustfmt_command のエラーがlocation-listに表示されます。g:rustfmt_fail_silently が 1 に設定されている場合は、location-listに表示されません。
:RustFmtRange :RustFmtRange
選択範囲でg:rustfmt_commandを実行します。:RustFmtを参照してください。
Playpenとの統合
:RustPlay :RustPlay
このコマンドは、web-api.vim(https://github.com/mattn/webapi-vimで入手可能)がインストールされている場合にのみ機能します。現在の選択範囲、または選択範囲がない場合は現在のバッファ全体をRust playpenに送信し、playpenへの短縮URLを含むメッセージを出力します。
g:rust_playpen_url はplaypenの基本URLです(デフォルトは "https://play.rust-lang.org/")。
g:rust_shortener_url は短縮URLサービスの基本URLです(デフォルトは "https://is.gd/")。
g:rust_clip_command はplaypenのURLをシステムのクリップボードにコピーするために実行するコマンドです。
単一のRustファイルの評価
注意: これらのコマンドは、スタンドアロンのRustファイルを使用する場合にのみ役立ちます。これは、一般的なRust開発では通常当てはまりません。VimからRustクレートをビルドする場合は、Vimのmake、Syntastic、または他のプラグインの機能を使用する必要があります。
:RustRun [args] :RustRun
:RustRun! [rustc-args] [--] [args] 現在のファイルをコンパイルして実行します。保存されていない変更がある場合は、:updateを使用して最初に保存されます。現在のファイルが名前のないバッファの場合は、最初にテンポラリファイルに書き込まれます。コンパイルされたバイナリは常にテンポラリディレクトリに配置されますが、現在のディレクトリから実行されます。
:RustRunに渡された引数は、コンパイルされたバイナリに渡されます。
!が指定されている場合、引数はrustcに渡されます。" -- "引数は、rustcの引数とバイナリに渡される引数を区切ります。
g:rustc_pathが定義されている場合、rustcへのパスとして使用されます。それ以外の場合は、rustcが$PATHで見つかるものと想定されます。
:RustExpand [args] :RustExpand
:RustExpand! [TYPE] [args] --prettyを使用して現在のファイルを展開し、新しい分割ウィンドウに結果を表示します。現在のファイルに保存されていない変更がある場合は、:updateを使用して最初に保存されます。現在のファイルが名前のないバッファの場合は、最初にテンポラリファイルに書き込まれます。
:RustExpandに渡された引数はrustcに渡されます。これは主に、さまざまな--cfg構成を指定するためのものでです。
!が指定されている場合、最初の引数はrustc --prettyに渡す展開タイプです。それ以外の場合は、「expanded」がデフォルトになります。
g:rustc_pathが定義されている場合、rustcへのパスとして使用されます。それ以外の場合は、rustcが$PATHで見つかるものと想定されます。
:RustEmitIr [args] :RustEmitIr
現在のファイルをLLVM IRにコンパイルし、新しい分割ウィンドウに結果を表示します。保存されていない変更がある場合は、:updateを使用して最初に保存されます。現在のファイルが名前のないバッファの場合は、最初にテンポラリファイルに書き込まれます。
:RustEmitIrに渡された引数はrustcに渡されます。
g:rustc_pathが定義されている場合、rustcへのパスとして使用されます。それ以外の場合は、rustcが$PATHで見つかるものと想定されます。
:RustEmitAsm [args] :RustEmitAsm
現在のファイルをアセンブリにコンパイルし、新しい分割ウィンドウに結果を表示します。保存されていない変更がある場合は、:updateを使用して最初に保存されます。現在のファイルが名前のないバッファの場合は、最初にテンポラリファイルに書き込まれます。
:RustEmitAsmに渡された引数はrustcに渡されます。
g:rustc_pathが定義されている場合、rustcへのパスとして使用されます。それ以外の場合は、rustcが$PATHで見つかるものと想定されます。
テストの実行
:[N]RustTest[!] [options] :RustTest
現在のバッファが"cargo test"コマンドを使用するcargoプロジェクト内にある場合、カーソル下のテストを実行します。カーソル下にテスト関数が見つからない場合、エラーメッセージと共に停止します。
Nが指定されている場合、新しいウィンドウのサイズをN行またはN列に調整します。
!が指定されている場合、カーソルの位置に関係なくすべてのテストを実行します。
[options]が指定されている場合、"cargo"コマンドの引数として渡されます。
現在のバッファがcargoプロジェクトの外にある場合、フォールバックとして"cargo test"の代わりにrustc --testコマンドを実行します。!を追加しても、rustcでは特定のテスト関数を実行する方法がないため、すべてのテストが実行されます。この場合、[options]はrustcコマンドの引数として渡されます。
オプションの修飾子を受け入れます(<mods>を参照)。
:tab RustTest
:belowright 16RustTest
:leftabove vert 80RustTest
rust.vimデバッグ
:RustInfo :RustInfo
Vim Rustプラグインのデバッグ情報を表示します。
:RustInfoToClipboard :RustInfoClipboard
Vim Rustプラグインのデバッグ情報をデフォルトレジスタに保存します。
:RustInfoToFile [filename] :RustInfoToFile
Vim Rustプラグインのデバッグ情報を指定されたファイルに保存し、上書きします。

マッピング rust-mappings

このプラグインは、ぶら下がりインデントをサポートするために[[]]のマッピングを定義します。
メイン
コマンド索引
クイックリファレンス