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

标签 emacs elisp evil-mode spacemacs

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

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

最佳答案

我认为你应该使用函数 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 Lint

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

show all errors in a file inside a buffer

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

关于emacs - 为什么 emacs 在终端中没有边缘模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35865400/

相关文章:

elisp - Emacs Lisp : evaluate variable in alist

emacs - 如何在 emacs evil-mode 下保持 M-x 上的传统绑定(bind)

c# - cc 模式下的智能电动支架(C#、Java 等)

emacs - emacs 中的项目切换

elisp - 使用 Emac 的 SMIE 来解析带有可选的语​​言;用于语句终止

vim - Emacs + 邪恶 : non incremental search and persistent highlighting?

tmux - Spacemacs 转义键需要延迟才能工作

emacs - 如何在 emacs 中撤消 call-last-kbd-macro

emacs - emacs:通过ssh打开文件失败

emacs - 如何确保 Emacs 中高亮关键字的正确优先级?