Ft_rust
Nvim :help
页面,从 生成 于 源代码,使用 tree-sitter-vimdoc 解析器。
内容
此插件为 Rust 文件类型提供语法和支持功能。它需要 Vim 8 或更高版本才能完全发挥作用。一些命令在早期版本中将无法使用。
此插件有一些可以在你的 vimrc 中定义的变量,可以改变插件的行为。
一些变量可以在缓冲区本地设置(:b
前缀),缓冲区本地设置将优先于全局 g:
设置。
值 效果
0 不折叠 1 大括号块被折叠。默认情况下所有折叠都处于打开状态。 2 大括号块被折叠。
'foldlevel' 保持全局值(默认情况下所有折叠都处于关闭状态)。
g:rust_bang_comment_leader
将此选项设置为 1 以保留使用
/*!
语法编写的多行文档注释中的 leader。
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: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 的 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 复制到剪贴板的命令。
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 工作区一部分的板条箱时,如果此选项设置为 1(默认值),则
cargo
将直接在该板条箱目录中执行,而不是在工作区目录中执行。设置为 0 会阻止这种行为,但请注意,如果你在大型工作区中工作,Cargo 命令可能需要更长时间,此外 Syntastic 错误列表可能包含工作区中的所有板条箱。
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 包,则应该使用 Vim 的 make、Syntastic 或其他插件的功能。
:RustRun [args]
:RustRun:RustRun! [rustc-args] [--] [args] 编译并运行当前文件。如果它有未保存的更改,它将首先使用
:update 保存。如果当前文件是未命名的缓冲区,它将首先写入临时文件。编译后的二进制文件始终放置在临时目录中,但从当前目录运行。
如果指定了 !,则参数将传递给 rustc。"--" 参数将 rustc 参数与传递给二进制文件的参数隔开。
:RustExpand [args]
:RustExpand:RustExpand! [TYPE] [args] 使用
--pretty
展开当前文件并在新分割中显示结果。如果当前文件有未保存的更改,它将首先使用
:update 保存。如果当前文件是未命名的缓冲区,它将首先写入临时文件。
如果指定了 !,则第一个参数是要传递给 rustc --pretty
的展开类型。否则,它将默认为 "expanded"。
:RustEmitIr [args]
:RustEmitIr将当前文件编译为 LLVM IR 并将结果显示在新分割中。如果当前文件有未保存的更改,它将首先使用
:update 保存。如果当前文件是未命名的缓冲区,它将首先写入临时文件。
:RustEmitAsm [args]
:RustEmitAsm将当前文件编译为汇编并将结果显示在新分割中。如果当前文件有未保存的更改,它将首先使用
:update 保存。如果当前文件是未命名的缓冲区,它将首先写入临时文件。
:[N]RustTest[!] [options]
:RustTest当当前缓冲区位于具有 "cargo test" 命令的货物项目中时,运行光标下的测试。如果命令在光标下没有找到任何测试函数,它将停止并显示错误消息。
当给出 N 时,将新窗口的大小调整为 N 行或列。
当给出 ! 时,运行所有测试,无论当前光标位置如何。
当给出 [options] 时,它将传递给 "cargo" 命令参数。
当当前缓冲区位于货物项目之外时,该命令将运行 rustc --test
命令而不是 "cargo test" 作为回退。所有测试都将运行,无论是否添加 !,因为无法使用 rustc 运行特定测试函数。在这种情况下,[options] 将传递给 rustc
命令参数。
接受可选修饰符(参见
<mods>)
:tab RustTest
:belowright 16RustTest
:leftabove vert 80RustTest
此插件为
[[ 和
]] 定义映射以支持悬挂缩进。