对当前行号着色

2023-12-13

我在用global-linum-mode对于行号。如果当前行的行号用不同的颜色(和/或不同的背景)突出显示,那就太好了。有人知道如何实现这一目标吗?

谢谢你!


我从之前的回答中得出了这个答案Emacs 中的相对行号,因为它处理在 linum 格式化过程中记住当前行号的相同问题。

I'm inheriting from the linum face, but using the background colour from hl-line. If the foreground and background don't match nicely, you can assign a foreground colour explicitly with
M-x customize-face RET my-linum-hl RET

(require 'hl-line)

(defface my-linum-hl
  `((t :inherit linum :background ,(face-background 'hl-line nil t)))
  "Face for the current line number."
  :group 'linum)

(defvar my-linum-format-string "%3d")

(add-hook 'linum-before-numbering-hook 'my-linum-get-format-string)

(defun my-linum-get-format-string ()
  (let* ((width (1+ (length (number-to-string
                             (count-lines (point-min) (point-max))))))
         (format (concat "%" (number-to-string width) "d")))
    (setq my-linum-format-string format)))

(defvar my-linum-current-line-number 0)

(setq linum-format 'my-linum-format)

(defun my-linum-format (line-number)
  (propertize (format my-linum-format-string line-number) 'face
              (if (eq line-number my-linum-current-line-number)
                  'my-linum-hl
                'linum)))

(defadvice linum-update (around my-linum-update)
  (let ((my-linum-current-line-number (line-number-at-pos)))
    ad-do-it))
(ad-activate 'linum-update)

与其他答案一样,这在生成动态宽度方面比默认值更有效dynamic格式,但您可以通过注释掉该行来使用静态宽度以获得最大速度(add-hook linum-before-numbering-hook 'my-linum-get-format-string)(并可选择修改初始值my-linum-format-string设置您的首选宽度)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对当前行号着色 的相关文章

  • 将字符定义为单词边界

    我已经定义了 字符在乳胶模式下充当单词组成部分 我对结果非常满意 唯一困扰我的是像这样的序列 alpha beta被视为单个单词 当然 这是预期的行为 有没有办法让 emacs 将特定字符解释为单词 starter 这样 它将始终被视为其后
  • 为什么在 emacs-lisp 中的函数参数之前使用#'?

    我熟悉 Emacs Lisp 但不熟悉 Common 或任何其他 Lisp 一些 Lisp 程序员建议 例如emacs 的基本功能 https stackoverflow com questions 17076646 a basic fun
  • 如何使用 Emacs 通过 HTTP 打开远程文件?

    大多数开源软件都通过某些 HTTP 服务公开其代码 我想从 Emacs 打开并浏览此类代码 但 AFAICS trapmp 只允许ssh and ftp 因此 我的第一个问题是如何打开 HTTP URL 以便在 Emacs 中进行读取 然后
  • “swank-clojure”到底是做什么的,我们有“swank-SOMETHING_ELSE”吗?

    我的肤浅理解是 swank clojure 使 M x slime connect 成为可能 我的意思是 它提供了与 clojure 服务器的连接 例如 lein swank 我的理解正确吗 如果不是 那swank的目的是什么 那么 是否有
  • 在 Emacs 中,如何根据缓冲区名称自动启用次要模式?

    我有一个 Emacs 扩展 它创建一个名为 erl output 该缓冲区仅由以下内容创建fundamental mode默认情况下 有什么办法可以自动启用compilation minor mode在那个缓冲区上 要自动更改主要模式 您可
  • elisp:从内部函数捕获变量

    我可爱的功能 defun f x lambda y x y 然后 我期望这样 funcall f 2 2 返回 4 但是可惜 我得到了这个 Debugger entered Lisp error void variable x 那么如何从内
  • Emacs如何自动完成C上包含文件的单词?

    如何使 Emacs 完成 C 包含文件中的单词 include
  • SBCL初始化文件

    我想知道应该在哪里保存 sbclrc 文件 我尝试将其保存在我的 sbcl 文件夹中 但它似乎不起作用 我使用的是 Windows XP 和 Emacs 版本 23 我正在尝试设置 asdf install 这就是为什么我要修改初始化文件
  • 在 Emacs 中,如何更改迷你缓冲区完成列表窗口?

    我想为迷你缓冲区完成列表设置一个特定的窗口 目前 我有 3 个窗口采用此配置 在这种情况下 我想使用左下窗口作为迷你缓冲区完成列表 目前 它似乎是随机的一个窗口 大多数时候它喜欢使用最右边的窗口 它太薄了 无法在我不必水平滚动的情况下显示完
  • Emacs 启动时出现 24 错误

    我已经使用 emacs snapshot 一段时间了 但最近它崩溃了很多 所以我切换到 Emacs 24 但是一旦我安装并启动它 它就开始显示错误并且不会在我的 init el 中加载任何内容 当我在调试模式下运行它时 我得到了这个 Deb
  • 防止 paredit 在插入括号时插入空格 - 以及其他问题

    我爱帕雷迪 但有一些事情我讨厌 而且还没有解决 打开括号会插入一个空格before括号 我知道这可能是整个互联网的首选风格 但它不是我的 如何避免这种情况呢 当位于引用区域内时 我无法回删除 另外 输入双引号 将插入一个反斜杠 显然是为了转
  • 我可以在 Emacs 的 shell 模式下使用 PowerShell 吗?

    我可以在 emacs 的 shell 模式下使用 powershell 作为 shell 吗 How 请参阅 Jeffrey Snover 的博客文章在 Emacs 内运行的 PowerShell http blogs msdn com p
  • 更改 Common Lisp REPL 中文本的颜色

    我想控制 Common Lisp 中显示的文本的颜色 像这样的伪代码 print color red hello blue world 有什么办法可以做到这一点吗 我使用 SBCL 我的 repl 位于 emacs 内 谢谢 您可以使用AN
  • 如何在 (emacs) shell 命令的输出中添加颜色?

    执行命令时shell命令 关联缓冲区中显示的输出未着色 当从 emacs 中调用测试框架 输出黄色 绿色 红色 时 这尤其令人烦恼 我如何配置或扩展 emacs 以便shell命令允许在 shell 中进行彩色输出并在表示该输出时保留颜色
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 我应该学习使用 Emacs 吗? [复制]

    这个问题在这里已经有答案了 我使用 IntelliJ IDEA 作为代码编辑器 所以这并不是要取代它 我用vi or vim用于在我们的服务器和标准上进行简单的文本编辑unix用于查找文件 获取目录列表等的命令 同事们对 emacs 赞不绝
  • 如何更改 ESS 中的智能分配键(“_”到“<-”)绑定

    在 emacs ESS 中 如何正确更改 ess smart S assign 的键绑定 我尝试的是添加 custom set variables ess smart S assign key to my emacs 但这让奇怪的事情发生了
  • 减少通过管道传输至 Emacs

    当查看 Less 的管道输出时 有时我希望能够在 Emacs 中查看它 以便获得语法突出显示并使用 emacs 命令进行搜索 标记 复制等 我看到 Less 有一个v可用于打开当前查看的文件的命令 EDITOR 不幸的是 这在查看管道输入时
  • Lisp:CHAR 既未声明也未绑定

    几天前我决定学习 通用 Lisp 我意识到这是一个相当新手的问题 对于至少有一点经验的人来说可能非常微不足道 所以基本上发生的事情是我加载 Emacs Slime 通过 Lisp in a Box 并编写我的程序 包括在下面 defun l
  • 如何在 Emacs shell 缓冲区中获得对“✖”等的支持?

    我正在运行一个进程 如果出现错误 则输出字符 如 Unicode 中定义 但是 如果在 Emacs shell 缓冲区 GNU Emacs 的 Aquamacs 发行版 中运行该进程 我根本看不到错误 使用 braeburn aquamac

随机推荐

  • 用于添加到收藏夹的精灵或类似效果

    我有一个 iPhone 应用程序 其中包含 全部 和 收藏夹 选项卡 其中包含标准主细节布局 在 全部 选项卡上 用户可以选择 添加到收藏夹 我正在寻找一个好的视觉队列来向用户表明这样做后可以从 收藏夹 选项卡访问该项目 是否存在类似 精灵
  • Asp.net WebApi 中的自定义授权 - 一团糟?

    我正在阅读有关 Web Api 授权的多个资源 书籍和一些答案 假设我想添加仅允许某些用户访问的自定义属性 Case 1 我见过这种方法压倒性的 OnAuthorization 如果出现问题 它会设置响应 public class Allo
  • PyQt5:使用QThread弹出进度条

    我怎样才能实现进度条 in a 弹出窗口它通过所谓的 Worker 类 即消耗时间 CPU 的任务 监视正在运行的函数的进度QThread 我已经检查了无数的示例和教程 但进度条显示在弹出窗口中的事实似乎让一切变得更加困难 我相信我想要的是
  • FineUploader onProgress() 回调不适用于 Android

    Fine Uploader 的 onProgress 回调在 Android 设备上不起作用 这是我的代码 onProgress function id fileName loaded total alert debug this aler
  • 在Python中使用Win32api获取鼠标滚轮滚动

    我想读取鼠标滚轮滚动事件然后模拟它们 我知道我可以使用下面的代码来模拟它 Scroll one up win32api mouse event MOUSEEVENTF WHEEL x y 1 0 Scroll one down win32a
  • Angular 4 - 动态更新 Facebook 的元标签(开放图)

    我们如何动态添加 更新元标记 以便 Facebook Whatsapp 共享对话框选择它们 我将 Angular 2 应用程序升级到 Angular 4 以便在我们从 API 获取组件中的数据后 使用元服务动态添加 更新元标记 到目前为止
  • CSS:在不改变容器大小的情况下将某些文本加粗

    我有一个水平导航菜单 它基本上只是一个 ul 元素并排设置 我不定义宽度 而只是使用填充 因为我希望宽度由菜单项的宽度定义 我将当前选定的项目加粗 问题在于 在加粗时 单词会变得稍微变宽 这会导致其余元素稍微向左或向右移动 有什么聪明的方法
  • 是否可以在 RAM 中执行一些计算?

    理论上 有没有办法使用内存相关指令 例如move clflush或其他任何东西 例如xor例如 在两个相邻行之间 由于我对 RAM 和汇编的了解有限 我无法想到任何这样的可能性 不 任何计算都是在 CPU 或 GPU 或其他可以加载 存储到
  • SAS PRX 请提取子字符串

    我正在尝试使用 SAS PRX 函数从我的数据集中提取子字符串 但它只返回精确的匹配项 而我需要它更加灵活并提取匹配各种条件的匹配项 我已将我的数据复制到下面 如您所见 我的数据中的变量之一是 brandmodel 其中包含特定相机的品牌名
  • 如何使用annotation_custom()将GROB放置在绘图区域的精确区域?

    我正在尝试使用以下命令重现以下 base R 图ggplot2 我已经完成了大部分工作 但目前令我困惑的是连接图右侧边缘地毯图的线段的位置以及相应的标签 标签已通过以下方式绘制 在下面的第二张图中 anotation custom 我已经使
  • JavaFX 打包:NoClassDefFoundError

    我使用 maven 和 OpenJDK 1 8 打包 JavaFX 应用程序 我的 pom xml 中的相关部分
  • 如何为终端制作动画 bash shell 提示符?

    我想在终端中制作动画光标提示 Ubuntu 14 04 所以我制作这个脚本 while do echo ne r sleep 0 3 echo ne r sleep 0 3 echo ne 一 r sleep 0 3 echo ne r s
  • 从base64字符串获取图像尺寸

    我收到图像的 base64 字符串并将其用作 html 页面的源 反过来 img 是 div 的子级 我想让 div 根据图像尺寸自动调整大小 尝试使用 javascript element style height 获取图像的尺寸 但它不
  • 什么是烫发空间?

    在学习 Java 内存分析时 除了 堆 之外 我还不断看到术语 永久空间 我知道堆是什么 什么是 Perm 空间 它代表永久代 永久代很特殊 因为它包含描述的元数据 用户类别 不是的类别 Java 语言的一部分 例子 这些元数据的一部分是对
  • Glassfish 在哪里将类加载器委托选项设置为 false

    我有一个 Web 应用程序 在 glassfisch 3 1 2 上运行 我遇到了 ClassCastException 我想尝试通过将类加载器委托设置为 false 来解决它们 我无法弄清楚在哪里 什么文件 插入以下 xml 标记
  • PHP 根据另一个数组中的文本重复项求和数组值

    我有两个数组 两个数组的计数长度始终相同 第一个具有与整数混合的双精度值 第二个具有文本 仅字符串 值 它们确实相关 所以我需要它们都保持有序 抱歉 没有可用的键 按设计 我需要对包含字符串的数组中重复的值进行求和 Example data
  • Visual Basic 如何读取 CSV 文件并在数据网格中显示值?

    我正在使用 VB 2005 如何打开 CSV 文件并读取列 行并在数据网格中显示值 CSV 文件示例 杰史密斯 电子邮件受保护 然后我想对每一行 即每个用户 执行一个操作 我该怎么做 正如你所知 我是一个新手 但很乐意学习 Thanks U
  • React - TypeError:无法读取未定义的属性“图像”

    所以我正在为一个副项目创建一个电子商务商店 但我遇到了一个问题 在主页上我有所有产品 并且我已经为产品详细信息创建了一条路线 当我点击其中之一时 它会获取 id 并应输出所有产品详细信息 我在 JSON 数组 data js 中有有关产品的
  • 使用具有多个条件的sql获取总和

    我的列中的数据为 Process Volume TAT 1 1 Pass 1 2 Fail 2 5 Fail 2 5 Pass 3 1 Pass 4 6 Fail 4 4 Pass 现在按流程分组 我想要体积总和 不考虑任何 TAT TAT
  • 对当前行号着色

    我在用global linum mode对于行号 如果当前行的行号用不同的颜色 和 或不同的背景 突出显示 那就太好了 有人知道如何实现这一目标吗 谢谢你 我从之前的回答中得出了这个答案Emacs 中的相对行号 因为它处理在 linum 格