Vim crashes when saving files

オープン
#482 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
vim
領域
tooling

調査の方向性

Start by reproducing the save failure with the reported Vim and Vundle setup, then inspect rust.vim's save-related autocommands and the g:rustfmt_autosave setting mentioned in the report. The issue does not identify a failing file or test, and its Vim configuration includes a malformed Rust filetype condition. Done means saving a Rust file works without Vim exiting or leaving a swap file.

索引モデルが issue の本文から書いたものです。

説明

rust.vim version:

I installed the plugin with Vundle. The current commit of the repository it cloned is:
commit 4aa69b84c8a58fcec6b6dad6fe244b916b1cf830 (HEAD -> master, origin/master, origin/HEAD)

Steps to reproduce:

In terminal:
vim hello.rs
In vim:
:w

Expected vs. actual behavior:

  • Expected:
    save the file
  • Actual:
    editor exits with the following error message:
[4]+  Stopped                 vim hellp.rs
exit
There are stopped jobs.

Running ls -a reveals that there is still a file called .hellp.rs.swp

Paste debugging info from the Rust Vim plugin via one of the following

commands: :RustInfo, :RustInfoToClipboard, or :RustInfoToFile <filename>.

Running any of the commands listed causes a crash similar to the one caused by saving the file.

Contents of ~/.vimrc:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
Plugin 'https://github.com/scrooloose/nerdtree'
Plugin 'https://github.com/jiangmiao/auto-pairs'
Plugin 'https://github.com/vim-syntastic/syntastic'
Plugin 'https://github.com/frazrepo/vim-rainbow'
Plugin 'https://github.com/tpope/vim-surround'
Plugin 'https://github.com/psf/black'
Plugin 'https://github.com/Yggdroot/indentLine'
Plugin 'https://github.com/pedrohdz/vim-yaml-folds'
Plugin 'https://github.com/rust-lang/rust.vim'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
:set nu
:set expandtab
:set shiftwidth=2
:set tabstop=2
:set list
:set listchars=tab:>>
:set smartindent
:set autoindent
:set shell=bash\ -i

" Exit Vim if NERDTree is the only window remaining in the only tab.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif

" Configure .sh files
if &filetype ==# 'sh'
  setlocal noexpandtab
endif

" Configure python files
let g:python_recommended_style=0

" Configure rust files
" Also tried calling this 'rs', and removing the section, and setting these manually, and setting them globally
if &filetype ==# 'rust 
  syntax enable
  let g:rustfmt_autosave = 1
endif

" Activate rainbow
let g:rainbow_active = 1

" Configure syntastic
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
主要言語
Vim Script
スター
4.2k
フォーク
323
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

rust-lang/rust.vim のほかの issue

rust-lang/rust.vim の issue をすべて見る

似ている issue

DevTools の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。