vim配置rust开发环境
vim 配置需要环境首先需要安装rust,然后安装rust-analysis,还需要nodejs,npm。
vim版本9.*
插件使用vim-plug管理,也是需要提前安装的
plug-vim 博客园备份可以偷懒直接复制到$HOME/.vim/autoload/plug.vim
安装coc之后还需要安装CocInstall coc-rust-analysis
下边是踩坑出来的配置文件,将文件内容复制到$HOME/.vimrc
中:
" 插件安装在call plug#begin('~/.vim/plugged') 和call plug#end()之间。 call plug#begin('~/.vim/plugged') " plug list " rust Plug 'rust-lang/rust.vim' " 自动括号 Plug 'jiangmiao/auto-pairs' " lsp管理插件 Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'dense-analysis/ale' " Theme Plug 'vim-airline/vim-airline' " 美化底部插件 Plug 'vim-airline/vim-airline-themes' " 主题插件 Plug 'crusoexia/vim-monokai' " NERDTree Plug 'preservim/nerdtree' Plug 'preservim/nerdcommenter' call plug#end() " === vim 基础配置 set nocompatible " 不与 Vi 兼容 syntax on " 打开语法高亮 set showmode " 底部显示当前模式 set showcmd " 底部显示当前指令 set encoding=utf-8 " 使用 utf-8 编码 set t_Co=256 " 启用 256 色 filetype indent on " 开启文件类型检查 set autoindent " 缩进一致 set tabstop=4 " 按下 tab 键,显示的空格数 set shiftwidth=4 " 缩进字符数 set expandtab " 自动将 tab 转为空格 set softtabstop=4 " tab 转为空格数 set number " 显示行号 set cursorline " 光标所在行高亮 set textwidth=80 " 设置行宽 set wrap " 自动折行 set linebreak " 遇到指定符号发生折行 set wrapmargin=2 " 折行处与编辑窗口右边缘空出的字符数 set scrolloff=5 " 垂直滚动时,光标距离顶部/底部的位置 set sidescrolloff=15 " 水平滚动时,光标距离行首/行尾的位置 set laststatus=2 " 是否显示状态栏。0:不显示;1:多窗口显示;2:显示 set ruler " 状态栏显示光标位置 set showmatch " 光标遇到 ([{ 自动高亮另一个括号 set hlsearch " 搜索时,高亮显示匹配结果 set spell spelllang=en_us " 英文单词拼写检查 "set nobackup " 不创建备份文件 "set noswapfile " 不创建交换文件 "set undofile " 保留撤销历史 " 设置备份文件、交换文件、操作历史文件的保存文件 "set backupdir=~/.vim/.backup// "set directory=~/.vim/.swp// "set undodir=~/.vim/.undo// set noerrorbells " 出错时,别发声 set visualbell " 出错时,屏幕闪烁 "set history=1000 " 记住历史操作数 set autoread " 打开文件监视 set wildmenu set wildmode=longest:list,full " 命令模式下,按下 tab 自动补全 " === Theme === colorscheme monokai "let g:airline_theme='angr' " 好像还是比较喜欢这个颜色 " === rust.vim 配置 === syntax enable " 打开语法高亮 filetype plugin indent on " 启动文件类型插件、缩进和语法高亮功能 let g:rustfmt_autosave=1 " 保存时自动运行 :RustFmt 格式化代码 let g:rustfmt_emit_files = 1 let g:rustfmt_fail_silently = 0 let g:rustfmt_command="rustfmt" " 自定义格式化命令 " 快捷键 F5 编译运行 Rust 程序,快捷键 F6 运行测试 Rust 程序 autocmd filetype rust nnoremap <F5> : <bar> exec 'RustRun'<CR> autocmd filetype rust nnoremap <F6> : <bar> exec 'RustTest'<CR> " === NERDTree 配置 === autocmd StdinReadPre * let s:std_in=1 autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists('s:std_in') | \ execute 'NERDTree' argv()[0] | wincmd p | enew | execute 'cd '.argv()[0] | endif " 当 NERDTree 是选项卡中剩下的唯一窗口,则退出 Vim。 autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif let g:NERDTreeShowHidden=1 " 显示隐藏文件 let g:NERDTreeFileLines=1 " 显示文件行数 let NERDTreeWinPos="left" " 设置 NERDTree 子窗口位置 " 设置忽略的文件 let NERDTreeIgnore=['\.vim$', '\~$', '\.o$', '\.d$', '\.a$', '\.out$', '\.tgz$'] " 快捷键 Ctrl + t,打开/关闭目录 nnoremap <C-t> :NERDTreeToggle<CR> " === NERDCommenter 配置 let g:NERDCreateDefaultMappings=1 " 创建默认映射 let g:NERDSpaceDelims=1 " 在注释分隔符后添加空格 let g:NERDCompactSexyComs=1 " 使用紧凑语法美化多行注释 let g:NERDDefaultAlign='left' " 行式注释分隔符向左对齐 let g:NERDAltDelims_java=1 " 将设置默认使用 java 语言的分隔符 let g:NERDCommentEmptyLines=1 " 允许注释和反转空行 let g:NERDTrimTrailingWhitespace=1 " 在取消注释时去除尾随空白 let g:NERDToggleCheckAllLines=1 " 检查所有选定的行是否有注释 let g:NERDCustomDelimiters={ 'c': { 'left': '/**','right': '*/' } } " === Commenter使用 === " \cc 注释当前行和选中行 " \cn 没有发现和\cc有区别 " \c<空格> 如果被选区域有部分被注释,则对被选区域执行取消注释操作,其它情况执行反转注释操作 " \cm 对被选区域用一对注释符进行注释,前面的注释对每一行都会添加注释 " \ci 执行反转注释操作,选中区域注释部分取消注释,非注释部分添加注释 " \cs 添加性感的注释,代码开头介绍部分通常使用该注释 " \cy 添加注释,并复制被添加注释的部分 " \c$ 注释当前光标到改行结尾的内容 " \cA 跳转到该行结尾添加注释,并进入编辑模式 " \ca 转换注释的方式,比如: /**/和// " \cl \cb 左对齐和左右对其,左右对其主要针对/**/ " \cu 取消注释 "autocmd FileType rust compiler cargo "autocmd QuickFixCmdPost [^l]* nested cwindow "autocmd QuickFixCmdPost l* nested lwindow " tab 自动补全,coc使用的ctrl+y进行自动补全和导入包。这里进行替换 inoremap <expr> <Tab> pumvisible() ? "\<C-y>" : "\<Tab>"
作者: 咕咚!
出处: https://www.cnblogs.com/linga/
关于作者:专注虚拟化,运维开发,RPA,Rust,Go,Python!
本文版权归作者和博客园共有,禁止*.csdn.net转载,禁止以盈利为目的的转载,转载文章,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(oldsixa@163.com)咨询.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)