在 Emacs 中重复输入变量名的快速方法?

2024-01-22

我刚刚第 N 次输入这种代码:

menu.add_item(spamspamspam, "spamspamspam");

我想知道是否有更快的方法。

我想要类似于 yasnippet 镜子的行为,除了 我不想创建一个片段:参数顺序不同于 项目到项目、语言到语言。

唯一不变的是需要更改的变量名称 在同一行上重复多次。

我想输入

menu.add_item($,"")

and with the point between the quotes, call the shortcut and start typing, and finally exit with C-e.

这对我来说似乎是有利的,因为额外的光标移动为零。 我知道如何做到这一点,但我想知道它是否已经完成, 或者是否可以做得更好/更快。

UPD 毕竟是 yasnippet 方式。

感谢 thisirs 的回答。这确实是yasnippet我最初想到的代码:

(defun yas-one-line ()
  (interactive)
  (insert "$")
  (let ((snippet 
         (replace-regexp-in-string 
          "\\$" "$1"
          (substring-no-properties
           (delete-and-extract-region
            (line-beginning-position)
            (line-end-position))))))
    (yas/expand-snippet snippet)))

但我仍然希望看到更好/更快的东西。


yasnippet实际上可以用来动态创建片段:

(defun yas-one-line ()
  (interactive)
  (let ((snippet (delete-and-extract-region
                  (line-beginning-position)
                  (line-end-position))))
    (yas-expand-snippet snippet)))

现在只需输入:

menu.add_item($1,"$1")

并打电话yas-one-line。上面的代码片段由 yasnippet 扩展!

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

在 Emacs 中重复输入变量名的快速方法? 的相关文章

  • 将子目录添加到加载路径

    我希望能够自动加载它们 而不是单独指定插件目录中的每个子目录 为此 我将以下内容包含到我的 emacs 文件中 let base emacs d plugins normal top level add subdirs to load pa
  • Emacs 正则表达式:什么 \< 和 \> 可以做 \b 不能做的事情?

    正则表达式反斜杠 GNU Emacs 手册 http www gnu org software emacs manual html node emacs Regexp Backslash html说 lt 匹配单词的开头 gt 匹配单词末尾
  • SLIME 和 SWANK 入门:Lisp 连接意外关闭:连接被远程对等点断开

    我试图使用 slime connect 函数通过 sbcl 访问远程服务器 我遵循了 slime mov 电影中的所有步骤马可 巴林格 http www guba com watch 30000548671但在为 slime 创建 ssh
  • 防止 paredit 在插入括号时插入空格 - 以及其他问题

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

    我想启用 Emacs 中所有禁用的命令 例如downcase region 也就是说 当调用时 它们不会要求用户确认 不幸的是 Emacs 手册的 48 3 11 禁用命令 部分没有提及启用all禁用命令永久 Emacs版本 24 0 95
  • Emacs:导航目录和打开文件的好策略是什么?

    上周 由于必须应对 R 和 Perl 的不同 IDE 我再次感到愤怒 我不喜欢这两种 IDE 也没有使用它们来真正适应 所以我决定尝试 Emacs 我做出这个决定并非没有一定的恐惧 我的主要用途是使用 cperl 来使用 Perl 以及使用
  • 如何找到 emacs 中定义键绑定的位置?

    Somehow shift m是必然的Meta在 emacs 中键入 现在我无法输入任何以M like Mock 我想找出为什么会发生这种情况 或者是哪个包导致了这种情况 有一个问题 https stackoverflow com ques
  • 如何使用 Emacs Lisp 检查文件是否存在?

    我希望 emacs 将打开时生成的文件标记为只读 我所缺少的难题部分是如何检查文件是否 存在 我目前有以下内容 get file extension defun get ext file name car cdr split string
  • 要求 Emacs 更清楚地突出显示哪个窗口(窗格)具有焦点(光标)

    假设我将 Emacs 窗口分成多个图块 例如 When I switch between tiles aka windows in Emacs to edit my files e g using C x o I can see on wh
  • 如何在组织模式下关闭公司模式?

    我正在使用 spacemacs 并尝试在组织模式下关闭公司模式 同时将其保留在其他主要模式中 我尝试过以下方法 global company mode not org mode 但它不起作用 禁用自org mode hook 此方法几乎适用
  • Emacs 键绑定为“\C-'”

    如何将函数设置为 C 当我尝试这样做时 global set key C myfunct 它给了我 字符串中的修饰符无效 What is C 您希望在输入反斜杠 c 引号时发生一些事情吗 或者你的意思是C 控制 引号 如果是后者 我猜是 那
  • 如何在 Emacs à la Vim 中设置标记?

    I d like to be able to set multiple marks in Emacs like Vim does In Vim you might press m b and that would set a mark at
  • cygwin bash 在 emacs shell 中无法正确显示

    我正在尝试使用 emacs 来运行 cygwin 我的环境是Windows 7 x64 emacs 24 0 93 1 cygwin 2 769 系统编码为gbk cygwin的编码系统默认为utf 8 emacs的编码系统默认为gbk I
  • Lisp:CHAR 既未声明也未绑定

    几天前我决定学习 通用 Lisp 我意识到这是一个相当新手的问题 对于至少有一点经验的人来说可能非常微不足道 所以基本上发生的事情是我加载 Emacs Slime 通过 Lisp in a Box 并编写我的程序 包括在下面 defun l
  • Org LaTeX 预览在视网膜显示屏上模糊

    我所有的数学 科学笔记都使用 Emacs 24 4 org latex preview太棒了 但最近 我升级到了配备视网膜显示屏的 MacBook Pro 现在我发现组织模式下的所有方程都 模糊了 有什么设置可以更改为高分辨率吗 这是一个屏
  • 修改verilog模式缩进

    我试图让 verilog 模式使用 2 个空格缩进除 decls 和always 之外的所有内容 这是我添加到 emacs 中的内容 define are not indented setq veril
  • 使用 Emacs 进行 Web 开发? (php/mysql/javascript/css/html

    我是一名网络开发人员 在我决定学习真正的编辑器并开始使用 emacs 之前六个月 我一直在使用各种编辑器和 ide s 进行 Web 开发 php javascript html css 我学习了所有基础知识 使用了入门套件 练习使用缓冲区
  • 在 Emacs 中追逐标签后切换到原始缓冲区

    I use M 跳转到类 函数的定义 有时有多个类具有相同的标签 所以我需要使用C u M 跳转到多个文件 因此有多个缓冲区 现在我的问题是 如何快速回到原来的缓冲区 我知道C x b 但是您需要输入缓冲区名称 或者它只是默认为您提供您访问
  • 向上移动箭头不突出显示文本 emacs iterm2

    我最近有人帮忙修复M left等等 终端元箭头键绑定中的 emacs https stackoverflow com questions 10867199 emacs in terminal meta arrow keybindings 但
  • 组织模式下的内联代码

    Markdown 允许embedded code 这怎么能在org mode 我了解源代码块 begin example blah blah end example 但我想要的是这样的 显然 具有正确的语法 我不知道 This is emb

随机推荐

  • Android:如何在软键盘中的候选视图上制作按钮?

    我想在按钮内制作candidateView 但是 你看到日志猫 请分享代码 我的代码软键盘 java Override public View onCreateCandidatesView LayoutInflater li LayoutI
  • 包的功能列表[重复]

    这个问题在这里已经有答案了 有没有一种简单 友好的方法来列出包的所有功能 而无需下载那些巨大的 PDF 包参考 我需要这个来让我熟悉这个包 找到合适的功能等 I tried rjags但它没有达到我的预期 加载包 例如car包裹 然后使用l
  • 变量总是重置

    我正在使用表单创建类似 mastermind 的游戏 我的问题是我有一个变量 attempts 我希望它在每次用户猜测数字时增加 但它似乎总是重置为零 因此我的尝试次数将始终显示为 1 如果有帮助 这里是我正在使用的代码 black 0 w
  • 如何使用assertTrue?

    I have package com darlik test import org junit Assert public class Test public static void main String args assertTrue
  • LINQ 多对多关系:解决方案?

    到目前为止 LINQ 已经非常优雅 但是为了执行基本的 m2m 查询 它没有提供我可以立即看到的解决方案 更糟糕的是 虽然它适用于任何其他表关系 但 LINQ 没有在我的 m2m 表的类结构中提供关联 所以我可以做类似的事情 artwork
  • justify-items 如何在 display:block 元素上工作

    The MDN 文档 https developer mozilla org en US docs Web CSS justify items of justify items指出 在块级布局中 它在内联轴上对齐其包含块内的项目 现在 我认
  • 导航视图 Sencha Touch 2

    我在 Sencha Touch 2 中的 NavigationView 有问题 当我按下 后退 按钮时 我无法导航多个窗口 我使用 view push 和 view pop 进行导航 view js Ext define MyApp vie
  • 扫描目录中的所有文件并按文件类型返回计数

    我刚刚加入一家 IT 公司并开始使用 ColdFusion 我的经理希望我在 ColdFusion 中编写代码 将扫描任何目录 例如c cf 其中包含数百个文件 包括 jQuery 文件 cfm 文件等 并给出此类文件的计数 我们可以手动选
  • Android N 中的 Java 8 Stream API

    根据谷歌的介绍 http android developers blogspot de 2016 03 first preview of android n developer html 从 Android N 开始 Android API
  • 使用 MySQL 和 PHP 读取部分 json 数据

    我使用一个 CMS 它以 JSON 格式在 MySQL 中保存资源 在一张表中 与来自 MySQL 的正常数据一起 当我循环数据时 我得到一个数组 JSON 数据 但我需要在 JSON 数据中搜索XNCatnCode Trying to l
  • 果冻豆运行设备出现 Listactivity 错误(SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零)

    我的应用程序以启动画面启动 然后打开列表活动行 单击任何行将打开一个包含文本视图 两个按钮 其中一个打开无限图库 另一个打开自定义对话框 和菜单项 关于 首选项 的活动 出口 这个应用程序在姜面包上完美运行 但在运行果冻豆的 Galaxy
  • Cordova 2.0.0 中的 Phonegap 屏幕截图插件

    我已经从 github 设置了屏幕截图插件 位于此处 https github com phonegap phonegap plugins tree master Android Screenshot https github com ph
  • 计算 Graphite 中 groupByNode() 结果的百分比

    我有两组石墨系列 都是这种格式 第二组是相同的 只是它具有 x y 前缀而不是 a b a b ccc a1 hr a b ccc a2 hr a b ccc a3 hr a b ddd a1 hr a b ddd a4 hr 要按我使用的
  • 从具有 x、y 和 z 坐标的点生成网格

    Problem 从 3D 点 带有 x y 和 z 坐标 生成网格 我拥有的是 3D 空间中的点 带有 x y 和 z 坐标 您可以在图 1 中看到它 输出是图像 2 或图像 3 或图像 4 简而言之 它将是网格 如果我有网格 可以提供其材
  • 如何在Bootstrap中实现响应式、独立滚动的窗格?

    我正在开发一个网络应用程序 我希望在较大的屏幕上有两个独立的可滚动区域 左侧的主要内容区域和右侧的较小侧边栏 我已经成功地使用 CSS 实现了这样的布局absolute定位和overflow属性 请参阅这个 JSFiddle http js
  • 生成16 QAM信号

    我知道使用以下方法生成 QPSK 信号的方法 TxS round rand 1 N 2 1 QPSK symbols are transmitted symbols TxS TxS sqrt 1 round rand 1 N 2 1 上面的
  • 如何从 OptaPlanner 升级到 Timefold?

    我们将 OptaPlanner 分叉为 Timefold https timefold ai blog 2023 optaplanner fork 前一段时间 我们经常会收到这样的问题 Timefold 更改所有导入语句和依赖项 如何有效地
  • 如何获取 int (C#) 中的第一个数字?

    在 C 中 获取 int 中第一个数字的最佳方法是什么 我想出的方法是将int转为字符串 找到字符串的第一个字符 然后将其转回int int start Convert ToInt32 curr ToString Substring 0 1
  • 可以使用 PIG 读取的文件格式

    使用PIG可以读取哪些类型的文件格式 如何以不同的格式存储它们 假设我们有 CSV 文件 我想将其存储为 MXL 文件 如何做到这一点 每当我们使用 STORE 命令时 它都会创建目录并将文件存储为part m 00000 我如何更改文件名
  • 在 Emacs 中重复输入变量名的快速方法?

    我刚刚第 N 次输入这种代码 menu add item spamspamspam spamspamspam 我想知道是否有更快的方法 我想要类似于 yasnippet 镜子的行为 除了 我不想创建一个片段 参数顺序不同于 项目到项目 语言