10

我是 vim 的铁杆用户。随着邪恶模式和 spacemacs 的引入,我正在从 vim 过渡到 emacs。我经常在开发服务器中编辑我的代码(原因我无法解释),我必须在终端模式下运行我的编辑器。有一件事,我在 Emacs(在 vim 中)中缺少的是在编码时显示有用信息(如编译/lint 错误)的排水沟。Emacs 确实为此提供了用于 GUI 的边缘模式,但没有用于终端。在emacs的终端中避免边缘模式是否有特殊原因?

我的要求是在一列中查看所有错误(我使用的是flycheck),以便轻松浏览代码以找到有错误的行。flycheck 有三种方式来突出显示错误(行/列/符号)。我希望突出显示该行中的符号,但同时,我希望在代码的左侧或右侧看到一列,该列用某些符号标记有错误/警告的行。Flycheck 在启用边缘模式时执行此操作,但终端没有边缘模式。有没有办法在终端中得到这个?

4

1 回答 1

0

我认为您应该使用该函数,M-x flycheck-list-errors然后您可以在单独的缓冲区中看到所有 flycheck 错误:

我正在阅读一个 ruby​​ 文件,我使用 rubocop 处理 lint 错误。如果我直接在终端上使用 rubocop,我会得到:

$ cat dirty.rb
class Dirty
  # This method smells of :reek:NestedIterators but ignores them
  def awful(x, y, offset = 0, log = false)
    puts @screen.title
    @screen = widgets.map {|w| w.each {|key| key += 3}}
    puts @screen.contents
  end
end

如果我收到 rubocop 的错误:

$ rubocop dirty.rb
Inspecting 1 file
W

Offenses:

dirty.rb:1:1: C: Style/Documentation: Missing top-level class documentation comment.
class Dirty
^^^^^
dirty.rb:1:1: C: Style/FrozenStringLiteralComment: Missing magic comment # frozen_string_literal: true.
class Dirty
^
...
...
...
1 file inspected, 13 offenses detected

这与 emacs 中的相同:

Emacs 皮棉

然后我可以with M-x flycheck-list-errors在一个单独的缓冲区中检查所有违规行为:

显示缓冲区内文件中的所有错误

这是 flycheck 的一个特性或功能,因此您可以将其用于任何代码,flycheck 正在为您获取错误

于 2018-11-20T12:43:34.447 回答