博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Emacs中的键盘宏(转)
阅读量:2449 次
发布时间:2019-05-10

本文共 1606 字,大约阅读时间需要 5 分钟。

Emacs中的键盘宏(转)[@more@]

    这 是 我 的 关 于 如 何 在 Emacs 中 让 你 的 手 指少 动 几 次 的 小 技 巧-- 使 用 Emacs 中 的 键盘宏 (keyboard macros)。在 你 编 辑 任 何 文 件 时( 如 C 源 程 序 时) 创 建一 个 键 盘 宏 首 先键 入 `C-x (' , 当 小 缓 冲 器 显 示`Defining kbd macro' 时, 键 入 任何你 想 自 动 录 入 的 字 符。 例 如 你想 录 入 的 如 下:

  int main(int argc, char **argv)

  {

  当 你 结 束 录 入 时 键 入:`C-x )' ,emacs 将 显示`Keyboard macro defined' 。 现 在 你必 须 给你 的 宏 命 名, 以 便你 以 后 调 用 此 宏, 键 入:`M-x name-last-kbd-macro' 时, 会 提示 输入 宏名。 在 我 们 的 例 子 中, 就 叫 做 `main-type' 之 类 的 吧。 现在 打 开 你 的 .emacs 文件, 移 到文 件 尾 部, 键 入:`M-x insert-kbd-macro',当 它 问 你 插 入 宏 的 名 字 时, 键 入 你上 次 取 的 名字。 此 时 emacs 就 会 自 动 插 入 生 成 宏 的 代 码。

现 在 就 可 以 使 用 `M-x < 宏 名>' 来 调 用 你的 宏 了。 不 过 好 象 使 用 起 来 并 不 如 预想的 好, 因 为 使 用 宏是 为 了 减 少 你 的 击 键。 不 过 这 个 问 题 可 以 用 定 义 键 盘(keyboard mapping) 来 解 决。 下 一 步 是 把 此 宏 定 义 到 一 个 功 能 键 上。

依 你 是 否 需 要 此 宏 用 于 所 有 模 式, 你 可以 使 用 全 程 设 置 键 ( global-set-key) 或 定义 键 (define-key)。

下 面 是 一 个 全 程 设 置 键 的 例 子, 需 要 你把 它 加 入 到 ..emacs 的 尾 部。

  (global-set-key "C-cm" 'main-type)

如 此, 以 后 你 调 用emacs 时, 只 要 你 键 入“C-c m” 时, 整 个 代 码 (not really, just this one line) 就 会 显 现。 请注 意 不 能 使 用 已 定 义 键。 最 合 适 组 合 键 是 Control C + .

如 果 你 只 希 望 此 宏 在 C 模 式(cc-mode) 时 使用, 在 你 的 c-mode-common-hook 中 键 入 如下:

(define-key c-mode-base-map "C-cm" 'main-type)

在 第 一 种 模 式 中 的 问 题 是 你 只 有 有 限 的键 用 来 定 义, 很 快 就 会 用 完。 而 且, 当你 编 辑 一个html 文 件时, 你 不 会 不 想 到 在 emacs 中 如 上 例 喷 出 'int main ' 的 方 法。

附 ?给 老 手: 应 该 指 出 的 是 我 只 是 emacs 的 新 手, 到 目 前 我 仅 仅 使 用 了 六 个 月。 如 上 有 误 请 不吝 指 教

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-945109/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-945109/

你可能感兴趣的文章
先知ppt_用先知预测趋势数据–趋势变化点
查看>>
python 股市指标模块_Stockstats –适用于各种股市指标的Python模块
查看>>
dropbox 怎么使用_我的论文写作时间表–使用Dropbox和Python分析
查看>>
python管道和数据共享_将Python和R集成到数据分析管道中-第1部分
查看>>
Python中函数名称前后的下划线用法
查看>>
aws部署django_将Django + Python 3 + PostgreSQL部署到AWS Elastic Beanstalk
查看>>
python播放视频视频流_我如何通过Python视频流使Porn效率提高20倍
查看>>
nginx和uwsgi部署_使用nginx和uWSGI Emperor部署Python Web应用程序
查看>>
深圳新秀租房贵吗_再次根据新秀表现对NBA职业生涯进行预测...
查看>>
传统hpc和非传统hpc_对我的作品的非传统引用-为什么它们很重要
查看>>
静态站点生成器速度测试(Nikola,Pelican,Hexo,Octopress)
查看>>
使用生存分析和git-pandas评估代码质量
查看>>
segment:?co?_如何跟踪用户动作并了解它们:Segment + MixPanel
查看>>
ligo 原理_在LIGO的实验中,Ubuntu被用来检测引力波
查看>>
raspberrypi依赖_RaspberryPi + Slack:我们对办公室懒惰的微薄贡献
查看>>
spark jupyter_在z / OS和Jupyter上运行Spark:快速,灵活地分析大型机数据
查看>>
django查询数据库数据_Django:通过数据库事务更快地运行多个更新查询
查看>>
工业物联网技术与挑战_物联网:趋势与挑战–数据科学视角
查看>>
编程Hokeydex(Python变量和数据类型简介)
查看>>
nonetype_解决Pyvttbl Float和NoneType错误的分步指南
查看>>