首页 > 解决方案 > 无法在 pyflakes quickfix 窗口中跳转到行

问题描述

我最近安装了 vim 扩展 python-mode,其中包括 pyflakes。当我将 python 文件保存到磁盘时,pyflakes 会自动检测错误和样式违规并将它们显示在 quickfix 窗口中。此截屏视频显示,从 quickfix 窗口按 Enter 键应跳转到源代码中的相应行,但是当我按 Enter 键时,我收到错误消息“E21:无法进行更改,'modifiable' 已关闭”。我可以使用 使缓冲区可修改:set ma,然后跳转工作,但我不想每次都设置它。

正如这个答案中所建议的,我试图查看插件是否使缓冲区不可修改,但没有发现任何东西。

:verbose set modifiable?
nonmodifiable

:verbose setlocal modifiable?
nonmodifiable

这是我的.vimrc

   "set nocompatible

autocmd! bufwritepost .vimrc source %
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_always_populate_loc_list = 1 
let g:syntastic_auto_loc_list = 0 
let g:syntastic_check_on_open = 1 
let g:syntastic_check_on_wq = 0 
set cpo&vim
set background=dark
syntax on
set smartindent
set shiftwidth=4
set expandtab
set tabstop=4
set bs=2
set tags=./tags;,/usr/share/vim/vim81/doc/tags;,$HOME/.local/lib/python3.7/site-packages/torch/tags
set tags+=$HOME/.local/lib/python3.7/site-packages/torch/tags
set tags+=$HOME/.local/lib/python3.7/site-packages/torchvision/tags
set tags+=$HOME/.local/lib/python3.7/site-packages/nltk/tags
set tags+=$HOME/anaconda3/lib/python3.7/site-packages/gensim/tags
set foldmethod=indent
set relativenumber
set number

inoremap kj <Esc>

vnoremap s: sort<CR>
vnoremap < <gv "better indentation
vnoremap > >gv "better indentation

nnoremap ZZ :update<cr>
nnoremap qq :wq<cr>
nnoremap mm :vsplit<cr><C-w><C-w>
nnoremap MM :split<cr><C-w><C-w>
" Ctrl-j/k deletes blank line below/above, and Alt-j/k inserts."
nnoremap <silent><C-j> m`:silent +g/\m^\s*$/d<CR>``:noh<CR>
nnoremap <silent><C-k> m`:silent -g/\m^\s*$/d<CR>``:noh<CR>
nnoremap <silent><A-j> :set paste<CR>m`o<Esc>``:set nopaste<CR>
nnoremap <silent><A-k> :set paste<CR>m`O<Esc>``:set nopaste<CR>
nnoremap <Enter> i<Enter><Esc>
nnoremap <S-Enter> o<Esc>
nnoremap <S-tab> i<tab><Esc>l
nnoremap <C-x> ^i#<Esc>
nnoremap <C-d> yy^i#<Esc>p
nnoremap <S-s> diwea,<Esc>p4bex

标签: pythonvimpython-modepyflakes

解决方案


您有一个<enter>覆盖正常输入行为的映射:

nnoremap <Enter> i<Enter><Esc>

当您按 Enter 时,您将进入快速列表中的插入模式,这是不允许的。

高温高压


推荐阅读