首页 > 其他分享 >vim配置rust开发环境

vim配置rust开发环境

时间:2024-04-22 16:33:40浏览次数:16  
标签:Plug set 配置 vim 注释 let rust

vim 配置需要环境首先需要安装rust,然后安装rust-analysis,还需要nodejs,npm。

插件使用vim-plug管理,也是需要提前安装的

安装coc之后还需要安装CocInstall coc-rust-analysis

下边是踩坑出来的配置文件

" 插件安装在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>"   

标签:Plug,set,配置,vim,注释,let,rust
From: https://www.cnblogs.com/linga/p/18150881

相关文章

  • docker下安装gitlab配置以及备份
    安装dockerrun--detach--publish443:443--publish9980:80--publish9922:22--namegitlab--restartalways--volume/srv/gitlab/config:/etc/gitlab--volume/srv/gitlab/logs:/var/log/gitlab--volume/srv/gitlab/data:/var/opt/gitlab--shm-siz......
  • 海康电瓶车检测相机相关配置
    一、概述    近年来电瓶车上楼引发高层住宅火灾的事件频频发生,为此众多摄像机厂家从电梯场景出发,前端摄像机与梯控系统配合实现:声光告警,个性语音;AI识别,精准检测;联动梯控,阻止上楼;远程消警,高效管理;TOF防遮挡报警,避免人为干扰;联动楼层显示,快速确定位置; 二、架构图   ......
  • calico配置报错 kubelet.go:2855] "Container runtime network not ready"
    前言配置calico网络插件时,kubectlgetnode报错:NoReadykubectldescribenodenodeName:nodeRoles:<none>Labels:beta.kubernetes.io/arch=amd64beta.kubernetes.io/os=linuxkub......
  • DHCP服务配置
    DHCP服务搭建相关配置细节前提系统:WindowsServer2003IP网段:10.0.0.0/24三台机子:普通PC机DHCP服务器路由器(两块网卡,连接内外网)//注:这里就不写路由器的相关配置了,重点讲解dhcp服务配置你使用的网卡不要使用DHCP分配IP普通PC机开启DHCP自动获取普通PC机ipconfig查看......
  • 微信小程序功能-----基础轮播图配置
    使用swiper设置轮播图,下面是实现效果图页面结构<swiperclass="content-info-slide"indicator-color="rgba(255,255,255,.5)"indicator-active-color="#fff"indicator-dotscircularautoplay><swiper-item><imagesrc="/page......
  • pytest + yaml 框架 -68.新增全局请求参数配置verify和headers
    前言最近有小伙伴提到如何全局添加请求参数verify=False和全局请求添加头部参数如:{"x-token":"xxx"}之前的版本可以用fixture解决,v1.5.8版本可以支持在config中配置fixture更新全局请求第一种解决方案,通过fixture来更新全局session会话[email protected](s......
  • docker Java 应用堆内存配置
    引言本文主要是讲解InitialRAMPercentage、MinRAMPercentage,MaxRAMPercentage三个JVM参数之间的区别。参数由Java8update191引入,主要是用于配置运行在物理机或者容器中的Java应用堆内存大小。InitialRAMPercentage-XX:InitialRAMPercentage用于配置堆的初始化......
  • MySQL如何使用字符集配置选项
    MySQL中与character_set有关的配置选项有8个,分别是:mysql>showvariableslike'character_set%';+--------------------------+-------------------------------------+|Variable_name      |Value               |+------......
  • Windows快速安装Rust
    本文是最简最快最小化安装重点提示:如果不想安装VS消耗时间和6-8G的空间,可以按本文安装。如果系统中已经安装了VS,那么直接运行rustup-init安装Rust,并一路回车即可。前置条件:安装C++环境rust底层是依赖C环境的连接器,所以需要先安装C/C++编译环境,点击下载64位mingw-builds......
  • Django不显示CSS的效果(基于Django模板的静态资源配置问题)
    在搞毕设过程中,习惯起见我直接在网上找了现成的前端设计页面,如图:这种前端项目的结构一般是一个login.html、一个style.css、一个背景图片即可搞定的,直接点击html,浏览器中打开的就是上图所示的界面效果。但是:当我把前端所有文件扔进DjangoApp的templates文件夹后,运行项目的效果......