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

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

最佳答案

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

我正在读取将rubocop用作棉绒错误的红宝石文件。如果我直接在终端上使用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 - 为什么emacs在终端中没有边缘模式?-LMLPHP

然后,我可以在单独的缓冲区中检查所有攻击with M-x flycheck-list-errors

emacs - 为什么emacs在终端中没有边缘模式?-LMLPHP

这是flycheck的功能,因此您可以将其用于任何代码,flycheck会为您带来错误

07-24 20:53