如何清除Vim界面中的PyLint标记?

4
我已经配置了 python-mode 来进行手动检查。所以我输入:PyLint,它会检查我的代码,在“QuickFix”窗口中显示一些标记。我可以在另一个窗口中输入:only来关闭 QuickFix 窗口,但是如何清除旁边的标记呢?

修正所有错误,然后重新运行 :PyLint 就可以解决问题了,但我不确定这是否能完全解决你的问题。 - David Cain
不,当然不是。问题在于我无法纠正一个巨大而混乱的文件中的所有错误。我重写其中的一部分,并使用 PyLint 检查这些部分是否正确。但是,当我在文件的其他地方进行其他工作时,我需要关闭它们;它们会分散注意力。 - Antonis Christofides
:sign unplace * 这个命令是否符合你的需求? - FDinoff
@FDinoff:是的,那正是我想要的(也许你想用它来创建一个回答)。 - Antonis Christofides
1
@AntonisChristofides 就采纳Ingo的答案吧。 - FDinoff
2个回答

5
该插件使用“标记”来显示代码中的错误。如果您不想看到这些标记,可以在设置中将该功能关闭。
let g:pymode_lint_signs = 0

禁用它们。

如果您想清除它们,据我所知插件中没有专门的界面可以做到这一点。(您可以提交增强请求。)但是应该起作用的方法是清除当前缓冲区的所有痕迹:

:sign unplace * buffer=<C-r>=bufnr('')<CR>

或者

:execute 'sign unplace * buffer=' . bufnr('')

我不能接受现在的答案,因为它太复杂了,vim 抱怨命令是错误的,而 :sign unplace * 才是我想要的。 - Antonis Christofides
1
如果这太复杂了,你有几个选择:自定义命令、cabbrev、映射等。一个简单的:sign unplace *超出了你想要的效果;它会影响到所有缓冲区中的所有标记。但是如果你能接受后果,就只用这个也可以。 - Ingo Karkat
(我是说,如果 :sign unplace * 可以完成任务,那么它就太复杂了,但你表明它有问题。)Vim 仍然会抱怨这些命令是错的。虽然 :sign unplace 1 buffer=1 可以工作,但 :sign unplace * buffer=1 会显示 "E474: Invalid argument"。 - Antonis Christofides
哦,你需要至少Vim 7.3.596才能使其正常工作。更新你的Vim,或者使用更差的替代方案。 - Ingo Karkat

2

PyLint的标记是用符号表示的。(:h :sign)

您可以使用

:sign unplace *

如果您想要在所有缓冲区中删除所有标记,这可能会成为一个问题。这只有在您希望保留一些缓冲区的标记时才是一个问题。

如果您只想在当前缓冲区中删除标记,则可以使用Ingo Karkat的答案提供的映射。

nnoremap <leader>s :execute 'sign unplace * buffer=' . bufnr('')<CR>

请看其他选项: :h :sign-unplace

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接