当前位置: 首页 > news >正文

aidermacs开源程序使用 Aider 在 Emacs 中进行 AI 配对编程

一、软件介绍

文末提供程序和源码下载

       Aidermacs 通过集成 Aider(最强大的开源 AI 配对编程工具之一)为 Emacs 带来了 AI 驱动的开发。如果您缺少 Cursor,但更喜欢生活在 Emacs 中,Aidermacs 提供了类似的 AI 功能,同时保持 Emacs 工作流程。


二、Key Features 主要特点

  • 具有多个后端的智能模型选择
  • 内置 Ediff 集成,用于 AI 生成的更改
  • 来自 Emacs 的增强文件管理
  • 出色的可定制性和灵活的内容添加方式

三、Quick Start 快速开始

  1. Requirements 要求
  • Emacs ≥ 26.1 Emacs ≥ 26.1 版
  • Aider 帮助
  • Transient 短暂的
  1. Download Aidermacs through Melpa or Non-GNU Elpa, or clone manually
    通过 Melpa 或非 GNU Elpa 下载 Aidermacs,或手动克隆
  2. Modify this sample config and place it in your Emacs init.el:
    修改此示例配置并将其放在您的 Emacs init.el 中:
(use-package aidermacs:bind (("C-c a" . aidermacs-transient-menu)):config; Set API_KEY in .bashrc, that will automatically picked up by aider or in elisp(setenv "ANTHROPIC_API_KEY" "sk-..."); defun my-get-openrouter-api-key yourself elsewhere for security reasons(setenv "OPENROUTER_API_KEY" (my-get-openrouter-api-key)):custom; See the Configuration section below(aidermacs-use-architect-mode t)(aidermacs-default-model "sonnet"))
  1. Open a project and run M-x aidermacs-transient-menu or SPC a a (or your chosen binding).
    打开一个项目并运行 M-x aidermacs-transient-menu or SPC a a (或您选择的绑定)。
  2. Add files and start coding with AI!
    添加文件并开始使用 AI 编码!

Spacemacs 太空马克斯

For Spacemacs users: 对于 Spacemacs 用户:

  1. Add aidermacs to your dotspacemacs-additional-packages list in your .spacemacs file:
    将 aidermacs Add to list dotspacemacs-additional-packages in your .spacemacs file:
dotspacemacs-additional-packages '((aidermacs :variablesaidermacs-use-architect-mode taidermacs-default-model "sonnet")
)
  1. Add the keybinding to your dotspacemacs/user-config function in .spacemacs:
    在 .spacemacs : 中将键绑定添加到函数 dotspacemacs/user-config 中:
(defun dotspacemacs/user-config ();; Set leader key for Aidermacs(spacemacs/set-leader-keys "aa" 'aidermacs-transient-menu) ; Example binding SPC a a
)
  1. Open a project and run M-x aidermacs-transient-menu or SPC a a (or your chosen binding).
    打开一个项目并运行 M-x aidermacs-transient-menu or SPC a a (或您选择的绑定)。
  2. Add files and start coding with AI!
    添加文件并开始使用 AI 编码!

四、Usage 用法

Getting Started 开始

The main interface to Aidermacs is through its transient menu system (similar to Magit). Access it with:
Aidermacs 的主要界面是通过其瞬态菜单系统(类似于 Magit)。通过以下方式访问它:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>M-x aidermacs-transient-menu
</code></span></span></span></span>

Or bind it to a key in your config:
或者将其绑定到配置中的键:

(global-set-key (kbd "C-c a") 'aidermacs-transient-menu)

Once the transient menu is open, you can navigate and execute commands using the displayed keys. Here's a summary of the main menu structure:
打开临时菜单后,您可以使用显示的键导航和执行命令。以下是主菜单结构的摘要:

Core 核心
  • a: Start/Open Session (auto-detects project root)
    a :启动/打开会话(自动检测项目根)
  • .: Start in Current Directory (good for monorepos)
    . :从当前目录开始(适用于 monorepos)
  • l: Clear Chat History
    l :清除聊天记录
  • s: Reset Session
    s :重置会话
  • x: Exit Session  x :退出会话
Persistent Modes 持久模式
  • 1: Code Mode  1 :代码模式
  • 2: Chat/Ask Mode
    2 :聊天/询问模式
  • 3: Architect Mode
    3 :建筑师模式
  • 4: Help Mode  4 : 帮助模式
Utilities 公用事业
  • ^: Show Last Commit (if auto-commits enabled)
    ^ :显示上次提交(如果启用了自动提交)
  • u: Undo Last Commit (if auto-commits enabled)
    u :撤消上次提交(如果启用了自动提交)
  • R: Refresh Repo Map
    R :刷新 Repo Map
  • h: Session History
    h : 会话历史记录
  • o: Change Main Model
    o :更改主模型
  • ?: Aider Meta-level Help
    ? : Aider 元级帮助
File Actions 文件作
  • f: Add File (C-u: read-only)
    f :添加文件(C-u:只读)
  • F: Add Current File
    F :添加当前文件
  • d: Add From Directory (same type)
    d :从目录添加(相同类型)
  • w: Add From Window
    w :从窗口添加
  • m: Add From Dired (marked)
    m : 从 Dired 添加(标记)
  • j: Drop File  j : 放置文件
  • J: Drop Current File
    J :删除当前文件
  • k: Drop From Dired (marked)
    k : Drop From Dired (标记)
  • K: Drop All Files
    K :删除所有文件
  • S: Create Session Scratchpad
    S :创建会话暂存器
  • G: Add File to Session
    G :将文件添加到会话
  • A: List Added Files
    A :列出添加的文件
Code Actions 代码作
  • c: Code Change  c : 代码更改
  • e: Question Code
    e : 问题代码
  • r: Architect Change
    r : 架构师变更
  • q: General Question
    q : 一般问题
  • p: Question This Symbol
    p : 质疑此符号
  • g: Accept Proposed Changes
    g :接受建议的更改
  • i: Implement TODO
    i :实施 TODO
  • t: Write Test  t : 编写测试
  • T: Fix Test  T : 修复测试
  • !: Debug Exception
    ! :调试异常

The All File Actions and All Code Actions entries open submenus with more specialized commands. Use the displayed keys to navigate these submenus.
和 All File Actions All Code Actions entries 打开包含更专用命令的子菜单。使用显示的键来导航这些子菜单。

五、文件管理和 AI 交互

使用 Aidermacs 时,您可以灵活地决定 AI 应该读取和编辑哪些文件。以下是一些准则:

  • Editable Files: Add files you want the AI to potentially edit. This grants the AI permission to both read and modify these files if necessary.
    Editable Files(可编辑的文件):添加您希望 AI 可能编辑的文件。这将授予 AI 在必要时读取和修改这些文件的权限。
  • Read-Only Files: If you want the AI to read a file without editing it, you can add it as read-only. In Aidermacs, all add file commands can be prefixed with C-u to specify read-only access.
    只读文件:如果您希望 AI 读取文件而不对其进行编辑,您可以将其添加为只读。在 Aidermacs 中,所有 add file 命令都可以作为前缀 C-u 以指定只读访问权限。
  • Session Scratchpads: Use the session scratchpads (S) to paste notes or documentation that will be fed to the AI as read-only.
    会话暂存器:使用会话暂存器 () S 粘贴注释或文档,这些注释或文档将作为只读馈送到 AI。
  • External Files: The "Add file to session" (G) command allows you to include files outside the current project (or files in .gitignore), as Aider doesn't automatically include these files in its context.
    外部文件: “Add file to session” ( G ) 命令允许您包含当前项目之外的文件(或 中的 .gitignore 文件),因为 Aider 不会自动将这些文件包含在其上下文中。

The AI can sometimes determine relevant files on its own, depending on the model and the context of the codebase. However, for precise control, it's often beneficial to manually specify files, especially when dealing with complex projects.
AI 有时可以根据模型和代码库的上下文自行确定相关文件。但是,为了进行精确控制,手动指定文件通常是有益的,尤其是在处理复杂项目时。

Aider encourages a collaborative approach, similar to working with a human co-worker. Sometimes the AI will need explicit guidance, while other times it can infer the necessary context on its own.
Aider 鼓励一种协作方法,类似于与人类同事一起工作。有时 AI 需要明确的指导,而其他时候它可以自行推断必要的上下文。

Prompt Files Minor Mode Prompt Files Minor 模式

Aidermacs provides a minor mode that makes it easy to work with prompt files and other Aider-related files. When enabled, the minor mode provides these convenient keybindings:
Aidermacs 提供了一个次要模式,可以轻松处理提示文件和其他与 Aider 相关的文件。启用后,minor 模式将提供以下方便的键绑定:

  • C-c C-n or C-<return>: Send line/region line-by-line
    C-c C-n 或 C-<return> :逐行发送/区域
  • C-c C-c: Send block/region as whole
    C-c C-c :将块/区域作为整体发送
  • C-c C-z: Switch to Aidermacs buffer
    C-c C-z :切换到 Aidermacs 缓冲液

The minor mode is automatically enabled for:
次要模式会自动启用:

  • .aider.prompt.org files (create with M-x aidermacs-open-prompt-file)
    .aider.prompt.org 文件(使用 M-x aidermacs-open-prompt-file 创建 )
  • .aider.chat.md files  .aider.chat.md 文件
  • .aider.chat.history.md files  .aider.chat.history.md 文件
  • .aider.input.history files  .aider.input.history 文件

Configuration 配置

Pre-Run Hook

You can use the aidermacs-before-run-backend-hook to run custom setup code before starting the Aider backend. This is particularly useful for:
在启动 Aider 后端之前,您可以使用 aidermacs-before-run-backend-hook to run custom setup code。这特别适用于:

  • Setting environment variables
    设置环境变量
  • Injecting secrets 注入密钥
  • Performing any other pre-run configuration
    执行任何其他运行前配置

Example usage to securely set an OpenAI API key from password-store:
从 password-store 中安全设置 OpenAI API 密钥的示例用法:

(add-hook 'aidermacs-before-run-backend-hook(lambda ()(setenv "OPENAI_API_KEY" (password-store-get "code/openai_api_key"))))

This approach keeps sensitive information out of your dotfiles while still making it available to Aidermacs.
这种方法将敏感信息排除在点文件之外,同时仍可供 Aidermacs 使用。

Default Model Selection 默认模型选择

You can customize the default AI model used by Aidermacs by setting the aidermacs-default-model variable:
您可以通过设置 aidermacs-default-model 变量来自定义 Aidermacs 使用的默认 AI 模型:

(setq aidermacs-default-model "sonnet")

This enables easy switching between different AI models without modifying the aidermacs-extra-args variable.
这样可以在不同的 AI 模型之间轻松切换, aidermacs-extra-args 而无需修改变量。

Note: This configuration will be overwritten by the existence of an .aider.conf.yml file (see details).
注意:此配置将被 .aider.conf.yml 文件的存在覆盖(请参阅详细信息)。

Dynamic Model Selection 动态模型选择

Aidermacs offers intelligent model selection for solo (non-Architect) mode, automatically detecting and integrating with multiple AI providers:
Aidermacs 为单独(非架构师)模式提供智能模型选择,自动检测并与多个 AI 提供商集成:

  • Automatically fetches available models from supported providers (OpenAI, Anthropic, DeepSeek, Google Gemini, OpenRouter)
    自动从支持的提供商(OpenAI、Anthropic、DeepSeek、Google Gemini、OpenRouter)获取可用模型
  • Caches model lists for quick access
    缓存模型列表以便快速访问
  • Supports both popular pre-configured models and dynamically discovered ones
    支持流行的预配置模型和动态发现的模型
  • Handles API keys and authentication automatically from your .bashrc
    自动处理来自 .bashrc 的 API 密钥和身份验证
  • Provides model compatibility checking
    提供模型兼容性检查

The dynamic model selection is only for the solo (non-Architect) mode.
动态模型选择仅适用于 solo (non-Architect) 模式。

To change models in solo mode:
要在 solo 模式下更改模型:

  1. Use M-x aidermacs-change-model or press o in the transient menu
    使用 M-x aidermacs-change-model 或按下 o 瞬态菜单中的
  2. Select from either:  从以下任一选项中选择:
    • Popular pre-configured models (fast)
      流行的预配置模型 (快速)
    • Dynamically fetched models from all supported providers (comprehensive)
      从所有支持的提供商处动态获取模型(全面)

The system will automatically filter models to only show ones that are:
系统将自动筛选模型,仅显示符合以下条件的模型:

  • Supported by your current Aider version
    受当前 Aider 版本支持
  • Available through your configured API keys
    通过您配置的 API 密钥提供
  • Compatible with your current workflow
    与您当前的工作流程兼容

Architect Mode - Separating Code Reasoning and Editing Models
架构师模式 - 分离代码推理和编辑模型

Aidermacs features an experimental mode using two specialized models for each coding task: an Architect model for reasoning and an Editor model for code generation. This approach has achieved state-of-the-art (SOTA) results on aider's code editing benchmark, as detailed in this blog post.
Aidermacs 具有一种实验模式,为每个编码任务使用两个专用模型:用于推理的 Architect 模型和用于代码生成的 Editor 模型。这种方法在 aider 的代码编辑基准测试中取得了最先进的 (SOTA) 结果,如本篇博客文章中所述。

To enable this mode, set aidermacs-use-architect-mode to t. You must also configure the aidermacs-architect-model variable to specify the model to use for the Architect role.
要启用此模式,请设置为 aidermacs-use-architect-mode t 。您还必须配置 aidermacs-architect-model 变量以指定要用于 Architect 角色的模型。

By default, the aidermacs-editor-model is the same as aidermacs-default-model. You only need to set aidermacs-editor-model if you want to use a different model for the Editor role.
默认情况下,the aidermacs-editor-model 与 aidermacs-default-model 相同。如果您想为 Editor 角色使用其他模型,则只需进行设置 aidermacs-editor-model 。

When Architect mode is enabled, the aidermacs-default-model setting is ignored, and aidermacs-architect-model and aidermacs-editor-model are used instead.
启用 Architect 模式后,将忽略该 aidermacs-default-model 设置,并 aidermacs-architect-model 改用 。 aidermacs-editor-model

(setq aidermacs-use-architect-mode t)

You can switch to it persistently by M-x aidermacs-switch-to-architect-mode (3 in aidermacs-transient-menu), or temporarily with M-x aidermacs-architect-this-code (r in aidermacs-transient-menu).
您可以通过 M-x aidermacs-switch-to-architect-mode ( 3 in aidermacs-transient-menu ) 永久切换到它,也可以使用 M-x aidermacs-architect-this-code () ( r in aidermacs-transient-menu )临时切换到它。

You can configure each model independently:
您可以单独配置每个模型:

;; Default model used for all modes unless overridden
(setq aidermacs-default-model "sonnet");; Optional: Set specific model for architect reasoning
(setq aidermacs-architect-model "deepseek/deepseek-reasoner");; Optional: Set specific model for code generation
(setq aidermacs-editor-model "deepseek/deepseek-chat")

The model hierarchy works as follows:
模型层次结构的工作原理如下:

  • When Architect mode is enabled:
    启用 Architect 模式后:
    • The Architect model handles high-level reasoning and solution design
      Architect 模型处理高级推理和解决方案设计
    • The Editor model executes the actual code changes
      Editor 模型执行实际的代码更改
  • When Architect mode is disabled, only aidermacs-default-model is used
    禁用 Architect 模式时,仅使用 aidermacs-default-model
  • You can configure specific models or let them automatically use the default model
    您可以配置特定模型或让它们自动使用默认模型

Models will reflect changes to aidermacs-default-model unless they've been explicitly set to a different value.
模型将反映更改, aidermacs-default-model 除非它们已明确设置为不同的值。

Note: These configurations will be overwritten by the existence of an .aider.conf.yml file (see details).
注意:这些配置将被 .aider.conf.yml 文件的存在覆盖(请参阅详细信息)。

Customize Weak Model 自定义弱模型

The Weak model is used for commit messages (if you have aidermacs-auto-commits set to t) and chat history summarization (default depends on –model). You can customize it using
弱模型用于提交消息(如果已 aidermacs-auto-commits 设置为 t )和聊天历史记录摘要(默认值取决于 –model)。您可以使用

;; default to nil
(setq aidermacs-weak-model "deepseek/deepseek-chat")

You can change the Weak model during a session by using C-u o (aidermacs-change-model with a prefix argument). In most cases, you won't need to change this as Aider will automatically select an appropriate Weak model based on your main model.
您可以在会话期间使用 C-u o aidermacs-change-model 带有 prefix 参数的 () 来更改 Weak 模型。大多数情况下,你不需要更改此设置,因为 Aider 会根据你的主模型自动选择合适的 Weak 模型。

Note: These configurations will be overwritten by the existence of an .aider.conf.yml file (see details).
注意:这些配置将被 .aider.conf.yml 文件的存在覆盖(请参阅详细信息)。

Architect Mode Confirmation
架构师模式确认

By default, Aidermacs requires explicit confirmation before applying changes proposed in Architect mode. This gives you a chance to review the AI's plan before any code is modified.
默认情况下,Aidermacs 需要明确确认,然后才能应用在 Architect 模式下建议的更改。这使您有机会在修改任何代码之前查看 AI 的计划。

If you prefer to automatically accept all Architect mode changes without confirmation (similar to Aider's default behavior), you can enable this with:
如果您希望在不确认的情况下自动接受所有 Architect 模式更改(类似于 Aider 的默认行为),您可以通过以下方式启用此功能:

(setq aidermacs-auto-accept-architect t)

Note: These configurations will be overwritten by the existence of an .aider.conf.yml file (see details).
注意:这些配置将被 .aider.conf.yml 文件的存在覆盖(请参阅详细信息)。

Terminal Backend Selection
终端后端选择

Choose your preferred terminal backend by setting aidermacs-backend:
通过设置 aidermacs-backend 选择您喜欢的终端后端 :

vterm offers better terminal compatibility, while comint provides a simple, built-in option that remains fully compatible with Aidermacs.
vterm 提供更好的终端兼容性,同时 comint 提供与 Aidermacs 完全兼容的简单内置选项。

;; Use vterm backend (default is comint)
(setq aidermacs-backend 'vterm)

Available backends: 可用的后端:

  • comint (default): Uses Emacs' built-in terminal emulation
    comint (默认):使用 Emacs 的内置终端仿真
  • vterm: Leverages vterm for better terminal compatibility
    vterm :利用 vterm 实现更好的终端兼容性

Emacs theme support Emacs 主题支持

The vterm backend will use the faces defined by your active Emacs theme to set the colors for aider. It tries to guess some reasonable color values based on your themes. In some cases this will not work perfectly; if text is unreadable for you, you can turn this off as follows:
vterm 后端将使用活动 Emacs 主题定义的人脸来设置 aider 的颜色。它会尝试根据您的主题猜测一些合理的颜色值。在某些情况下,这不会完美工作;如果文本对您来说不可读,您可以按如下方式关闭此功能:

;; don't match emacs theme colors
(setopt aidermacs-vterm-use-theme-colors nil)

Multiline Input Configuration
多线路输入配置

You can customize keybindings for multiline input, this key allows you to enter multiple lines without sending the command to Aider. Press RET normally to send the command.
您可以自定义多行输入的键绑定,此键允许您输入多行而无需将命令发送给 Aider。按 normally 键 RET 发送命令。

;; Comint backend:
(setq aidermacs-comint-multiline-newline-key "S-<return>")
;; Vterm backend:
(setq aidermacs-vterm-multiline-newline-key "S-<return>")

Remote File Support with Tramp
Tramp 的远程文件支持

Aidermacs fully supports working with remote files through Emacs' Tramp mode. This allows you to use Aidermacs on files hosted on remote servers via SSH, Docker, and other protocols supported by Tramp.
Aidermacs 完全支持通过 Emacs 的 Tramp 模式处理远程文件。这允许通过 SSH、Docker 和 Tramp 支持的其他协议对远程服务器上托管的文件使用 Aidermacs。

When working with remote files:
使用远程文件时:

  • File paths are automatically localized for the remote system
    文件路径会自动为远程系统本地化
  • All Aidermacs features work seamlessly across local and remote files
    所有 Aidermacs 功能都可以在本地和远程文件之间无缝工作
  • Edits are applied directly to the remote files
    编辑将直接应用于远程文件
  • Diffs and change reviews work as expected
    差异和更改审核按预期工作

Example usage: 用法示例:

;; Open a remote file via SSH
(find-file "/ssh:user@remotehost:/path/to/file.py");; Start Aidermacs session - it will automatically detect the remote context
M-x aidermacs-transient-menu

Prompt Selection and History
提示选择和历史记录

Aidermacs makes it easy to reuse prompts through:
Aidermacs 通过以下方式使重用提示变得容易:

  1. Prompt History - Your previously used prompts are saved and can be quickly selected
    提示历史记录 - 您以前使用的提示将被保存,并且可以快速选择
  2. Common Prompts - A curated list of frequently used prompts for common tasks defined in aidermacs-common-prompts:
    常见提示 - 在 aidermacs-common-prompts 中定义的常见任务的常用提示的精选列表:

When entering a prompt, you can:
输入提示时,您可以:

  • Select from your history or common prompts using completion
    使用完成功能从您的历史记录或常见提示中进行选择
  • Still type custom prompts when needed
    在需要时仍键入自定义提示

The prompt history and common prompts are available across all sessions.
提示历史记录和常见提示在所有会话中都可用。

File Watching 文件监视

Enable watching for AI coding instructions in your repository files with aidermacs-watch-files:
使用以下命令 aidermacs-watch-files 在存储库文件中启用对 AI 编码指令的监视:

;; Enable file watching
(setq aidermacs-watch-files t)

When enabled, Aidermacs will will watch all files in your repo and look for any AI coding instructions you add using your favorite IDE or text editor.
启用后,Aidermacs 将监视您的存储库中的所有文件,并查找您使用自己喜欢的 IDE 或文本编辑器添加的任何 AI 编码指令。

Specifically, aider looks for one-liner comments (# ...// ... or -- ..., regardless of the comment style that language supports) that either start or end with AIAI! or AI? like these:
具体来说,aider 会查找以 、 AI! 开头或结尾的 AI 单行注释( # ... 、 或 // ... -- ... ,不管该语言支持的注释样式如何),或者 AI? 像这样:

<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code># Make a snake game. AI!
# What is the purpose of this method AI?// Write a protein folding prediction engine. AI!
</code></span></span></span></span>

Aidermacs will take note of all the comments that start or end with AI. Comments that include AI! with an exclamation point or AI? with a question mark are special. They trigger aider to take action to collect all the AI comments and use them as your instructions.
Aidermacs 将记录所有以 AI .包含 AI! 感叹号或 AI? 问号的注释是特殊的。它们触发 aider 采取行动收集所有 AI 评论并将其用作您的指令。

  • AI! triggers aider to make changes to your code.
    AI! 触发 Aider 以更改您的代码。
  • AI? triggers aider to answer your question.
    AI? 触发 aider 来回答您的问题。

Note: This feature currently only works in the vterm mode.
注意:此功能目前仅在 vterm 模式下有效。

Note: These configurations will be overwritten by the existence of an .aider.conf.yml file (see details).
注意:这些配置将被 .aider.conf.yml 文件的存在覆盖(请参阅详细信息)。

Diff and Change Review Diff 和 Change Review

Control whether to show diffs for AI-generated changes with aidermacs-show-diff-after-change:
控制是否显示 AI 生成的更改的 aidermacs-show-diff-after-change 差异 :

;; Enable/disable showing diffs after changes (default: t)
(setq aidermacs-show-diff-after-change t)

When enabled, Aidermacs will:
启用后,Aidermacs 将:

  • Capture the state of files before AI edits
    在 AI 编辑之前捕获文件状态
  • Show diffs using Emacs' built-in ediff interface
    使用 Emacs 的内置 ediff 接口显示差异
  • Allow you to review and accept/reject changes
    允许您查看和接受/拒绝更改

Re-Enable Auto-Commits 重新启用自动提交

Aider automatically commits AI-generated changes by default. We consider this behavior very intrusive, so we've disabled it. You can re-enable auto-commits by setting aidermacs-auto-commits to t:
默认情况下,Aider 会自动提交 AI 生成的更改。我们认为此行为非常具有侵入性,因此已禁用它。您可以通过设置为 aidermacs-auto-commits t :

;; Enable auto-commits
(setq aidermacs-auto-commits t)

With auto-commits disabled, you must manually commit changes using your preferred Git workflow.
禁用自动提交后,您必须使用首选的 Git 工作流程手动提交更改。

Note: This configuration will be overwritten by the existence of an .aider.conf.yml file (see details).
注意:此配置将被 .aider.conf.yml 文件的存在覆盖(请参阅详细信息)。

Customize Aider Options with aidermacs-extra-args
自定义 aidermacs-extra-args Aider 选项

If these configurations aren't sufficient, the aidermacs-extra-args variable enables passing any Aider-supported command-line options.
如果这些配置还不够,该 aidermacs-extra-args 变量将允许传递任何 Aider 支持的命令行选项。

See the Aider configuration documentation for a full list of available options.
有关可用选项的完整列表,请参阅 Aider 配置文档。

;; Set the verbosity:
(add-to-list 'aidermacs-extra-args "--verbose")

These arguments will be appended to the Aider command when it is run. Note that the --model argument is automatically handled by aidermacs-default-model and should not be included in aidermacs-extra-args.
这些参数将在运行时附加到 Aider 命令中。请注意,该 --model 参数由 aidermacs-default-model 自动处理,不应包含在 aidermacs-extra-args .

Overwrite Configuration with Configuration File
使用配置文件覆盖配置

Aidermacs supports project-specific configurations via .aider.conf.yml files. To enable this:
Aidermacs 通过 .aider.conf.yml 文件支持特定于项目的配置。要启用此功能,请执行以下作:

  1. Create a .aider.conf.yml in your home dir, project's root, or the current directory, defining your desired settings. See the Aider documentation for available options.
    .aider.conf.yml 在主目录、项目的根目录或当前目录中创建一个,以定义所需的设置。有关可用选项,请参阅 Aider 文档。

  2. Tell Aidermacs to use the config file in one of two ways:
    告诉 Aidermacs 以两种方式之一使用配置文件:

    ;; Set the `aidermacs-config-file` variable in your Emacs config:
    (setq aidermacs-config-file "/path/to/your/project/.aider.conf.yml")
    ;; *Or*, include the `--config` or `-c` flag in `aidermacs-extra-args`:
    (setq aidermacs-extra-args '("--config" "/path/to/your/project/.aider.conf.yml"))

Note: You can also rely on Aider's default behavior of automatically searching for .aider.conf.yml in the home directory, project root, or current directory, in that order. In this case, you do not need to set aidermacs-config-file or include --config in aidermacs-extra-args.
注意:您还可以依赖 Aider 的默认行为,即按顺序在主目录、项目根目录或当前目录中自动搜索 .aider.conf.yml 。在这种情况下,您无需在 中设置 aidermacs-config-file 或包含在 --config aidermacs-extra-args 中。

  • Important: When using a config file, all other Aidermacs configuration variables supplying an argument option (e.g., aidermacs-default-modelaidermacs-architect-modelaidermacs-use-architect-mode) are IGNORED. Aider will only use the settings specified in your .aider.conf.yml file. Do not attempt to combine these Emacs settings with a config file, as the results will be unpredictable.
    重要提示:使用配置文件时,所有其他提供参数选项的 Aidermacs 配置变量(例如 aidermacs-default-model , , aidermacs-architect-model aidermacs-use-architect-mode , ) 都将被忽略。Aider 将仅使用您 .aider.conf.yml 文件中指定的设置。不要尝试将这些 Emacs 设置与配置文件结合使用,因为结果将是不可预测的。
  • Precedence: Settings in .aider.conf.yml always take precedence when a config file is explicitly specified.
    优先级:当显式指定配置文件时,中的 .aider.conf.yml 设置始终优先。
  • Avoid Conflicts: When using a config file, do not include model-related arguments (like --model--architect, etc.) in aidermacs-extra-args. Configure all settings within your .aider.conf.yml file.
    避免冲突:使用配置文件时,请勿在 --model --architect aidermacs-extra-args .配置 .aider.conf.yml 文件中的所有设置。

Claude 3.7 Sonnet Thinking Tokens
Claude 3.7 十四行诗思维代币

Aider can work with Sonnet 3.7's new thinking tokens. You can now enable and configure thinking tokens more easily using the following methods:
Aider 可以使用 Sonnet 3.7 的新思维令牌。现在,您可以使用以下方法更轻松地启用和配置 Thinking Tokens:

  1. In-Chat Command: Use the /think-tokens command followed by the desired token budget. For example: /think-tokens 8k or /think-tokens 10000. Supported formats include 80968k10.5k, and 0.5M.
    聊天内命令:使用 /think-tokens 命令后跟所需的令牌预算。例如: /think-tokens 8k 或 /think-tokens 10000 .支持的格式包括 8096 、 、 8k 10.5k 和 0.5M 。

  2. Command-Line Argument: Set the --thinking-tokens argument when starting Aidermacs. For example, you can add this to your aidermacs-extra-args:
    命令行参数:在启动 Aidermacs 时设置 --thinking-tokens 参数。例如,您可以将 this 添加到您的 aidermacs-extra-args :

    (setq aidermacs-extra-args '("--thinking-tokens" "16k"))

These methods provide a more streamlined way to control thinking tokens without requiring manual configuration of .aider.model.settings.yml files.
这些方法提供了一种更简化的方式来控制思维令牌,而无需手动配置 .aider.model.settings.yml 文件。

Note: If you are using an .aider.conf.yml file, you can also set the thinking_tokens option there.
注: 如果您使用的是 .aider.conf.yml 文件,您也可以在此处设置该 thinking_tokens 选项。

Working with Prompt Files
使用提示文件

The .aider.prompt.org file is particularly useful for:
该文件 .aider.prompt.org 特别适用于:

  • Storing frequently used prompts
    存储常用提示
  • Documenting common workflows
    记录常见工作流程
  • Quick access to complex instructions
    快速访问复杂的说明

You can customize which files automatically enable the minor mode by configuring aidermacs-auto-mode-files:
您可以通过配置 aidermacs-auto-mode-files 来自定义哪些文件自动启用 minor 模式:

(setq aidermacs-auto-mode-files'(".aider.prompt.org"".aider.chat.md"".aider.chat.history.md"".aider.input.history""my-custom-aider-file.org"))  ; Add your own files

六、软件下载

夸克网盘分享

本文信息来源于GitHub作者地址:GitHub - MatthewZMD/aidermacs: AI Pair Programming in Emacs with Aider

相关文章:

aidermacs开源程序使用 Aider 在 Emacs 中进行 AI 配对编程

一、软件介绍 文末提供程序和源码下载 Aidermacs 通过集成 Aider&#xff08;最强大的开源 AI 配对编程工具之一&#xff09;为 Emacs 带来了 AI 驱动的开发。如果您缺少 Cursor&#xff0c;但更喜欢生活在 Emacs 中&#xff0c;Aidermacs 提供了类似的 AI 功能&#xff0c;同…...

HarmonyOS NEXT——DevEco Studio的使用(还没写完)

一、IDE环境的搭建 Windows环境 运行环境要求 为保证DevEco Studio正常运行&#xff0c;建议电脑配置满足如下要求&#xff1a; 操作系统&#xff1a;Windows10 64位、Windows11 64位 内存&#xff1a;16GB及以上 硬盘&#xff1a;100GB及以上 分辨率&#xff1a;1280*8…...

使用PageHelper实现分页查询(详细)

一&#xff1a;需求分析与设计 1.1 产品原型 &#xff08;1&#xff09;分页展示&#xff0c;每页展示10条数据&#xff0c;根据员工姓名进行搜索 &#xff08;2&#xff09;业务规则 1.2 接口设计 &#xff08;1&#xff09;操作&#xff1a;查询&#xff0c;请求方式&#xf…...

神经网络基础-从零开始搭建一个神经网络

一、什么是神经网络 人工神经网络&#xff08;Articial Neural Network&#xff0c;简写为ANN&#xff09;也称为神经网络&#xff08;NN),是一种模仿生物神经网络和功能的计算模型&#xff0c;人脑可以看做是一个生物神经网络&#xff0c;由众多的神经元连接而成&#xff0c;…...

数据库原理与应用实验二 题目七

利用sql建立教材数据库,并定义以下基本表: 学生(学号,年龄,性别,系名) 教材(编号,书名,出版社编号,价格) 订购(学号,书号,数量) 出版社(编号,名称,地址) 1定义主码、外码、和价格、数量的取值范围。 2 在三个表中输入若干记录,注意如果输入违反完整…...

如何在 CentOS 7 命令行连接 Wi-Fi?如何在 Linux 命令行连接 Wi-Fi?

如何在 CentOS 7 命令行连接 Wi-Fi&#xff1f;如何在 Linux 命令行连接 Wi-Fi&#xff1f; 摘要 本教程覆盖如何在多种 Linux 发行版下通过命令行连接 Wi-Fi&#xff0c;包括&#xff1a; CentOS 7、Ubuntu、Debian、Arch Linux、Fedora、Alpine Linux、Kali Linux、OpenSU…...

【学习笔记】 强化学习:实用方法论

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 之前的文章参考下面的链接&#xf…...

ElasticSearch深入解析(十):字段膨胀(Mapping 爆炸)问题的解决思路

文章目录 一、核心原理&#xff1a;动态映射的双刃剑1. 动态映射的工作机制2. 映射爆炸的触发条件3. 底层性能损耗 二、典型场景与案例分析1. 日志系统&#xff1a;动态标签引发的灾难2. 物联网数据&#xff1a;设备属性的无序扩展 三、系统性解决方案1. 架构层优化2. 配置层控…...

react18基础速成

1、项目搭建 npx create-react-app my-react-app&#xff08;项目名&#xff09; cd 项目名进入项目目录 终端输入 npm start 启动项目 浏览器查看 项目搭建成功 2、JSX JavaScript语法和HTML语法写在一起就是JSX语法 jsx只能返回一个根元素&#xff0c;即最外层的div&a…...

18、状态库:中央魔法仓库——React 19 Zustand集成

一、量子熔炉的诞生 "Zustand是记忆水晶的量子纠缠体&#xff0c;让状态流无需魔杖驱动即可自洽&#xff01;"霍格沃茨炼金术研究院的工程师挥动魔杖&#xff0c;Zustand 的原子化状态流在空中交织成星轨矩阵。 ——基于《魔法国会》第2025号协议&#xff0c;Zustan…...

PyCharm中全局搜索无效

发现是因为与搜狗快捷键冲突了&#xff0c;把框选的那个勾选去掉或设置为其他键就好了...

【Hive入门】Hive与Spark SQL深度集成:执行引擎性能全面对比与调优分析

目录 引言 1 Hive执行引擎架构演进 1.1 Hive执行引擎发展历程 1.2 执行引擎架构对比 1.2.1 MapReduce引擎架构 1.2.2 Tez引擎架构 1.2.3 Spark引擎架构 2 执行引擎切换与配置指南 2.1 引擎切换配置方法 2.1.1 全局配置 2.1.2 会话级配置 2.2 资源管理配置 2.2.1 T…...

【算法基础】快速排序算法 - JAVA

一、算法基础 1.1 什么是快速排序 快速排序&#xff08;Quick Sort&#xff09;是一种高效的分治排序算法&#xff0c;由英国计算机科学家Tony Hoare于1960年提出。它的核心思想是&#xff1a; 选择一个基准元素&#xff08;pivot&#xff09;将数组分成两部分&#xff1a;小…...

Ubuntu 24.04 通过 update-alternatives 切换GCC版本

在 Ubuntu 中编译项目, 会遇到项目依赖于某个特定版本 GCC 的情况, 例如 Ubuntu 24.04 的默认 GCC 版本是 13, 但是有一些项目需要 GCC11才能正常编译, 在 Ubuntu 24.04 默认的环境下编译会报错. 这时候可以通过 update-alternatives 切换GCC版本. all 展示全部 用--all参数会…...

Linux中的时间同步

一、时间同步服务扩展总结 1. 时间同步的重要性 多主机协作需求&#xff1a;在分布式系统、集群、微服务架构中&#xff0c;时间一致性是日志排序、事务顺序、数据一致性的基础。 安全协议依赖&#xff1a;TLS/SSL证书、Kerberos认证等依赖时间有效性&#xff0c;时间偏差可能…...

数据赋能(209)——质量管理——时效性原则

概述 数据时效性原则在数据收集、处理、分析和应用的过程中确保数据在特定时间范围内保持其有效性和相关性&#xff0c;为决策提供准确、及时的依据。在快速变化的市场环境中&#xff0c;数据时效性对于企业的竞争力和决策效率具有决定性的影响。 原则定义 数据时效性原则&a…...

AnimateCC教学:照片旋转飞舞并爆炸....

1.核心代码: <!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>旋转照片演示</title><script src="https://code.createjs.com/1.0.0/createjs.min.js"></script><script src="http…...

腾讯混元-DiT 文生图

1 混元-DiT所需的模型大小一共是41G https://huggingface.co/Tencent-Hunyuan/HunyuanDiT https://colab.research.google.com/ HunyuanDiT_jupyter.ipynb %cd /content !GIT_LFS_SKIP_SMUDGE1 git clone -b dev https://github.com/camenduru/HunyuanDiT %cd /content/Hun…...

优化高搜索量还是低竞争关键词?SEO策略解析

在2025年的SEO环境中&#xff0c;关键词研究仍然是优化网站排名的基石。然而&#xff0c;一个常见的问题困扰着SEO从业者&#xff1a;在使用谷歌关键词规划师&#xff08;Google Keyword Planner&#xff09;进行关键词研究时&#xff0c;是否应该优先选择月搜索量较高的关键词…...

对比表格:数字签名方案、密钥交换协议、密码学协议、后量子密码学——密码学基础

文章目录 一、数字签名方案1.1 ECDSA&#xff1a;基于椭圆曲线的数字签名算法1.2 EdDSA&#xff1a;Edwards曲线数字签名算法1.3 RSA-PSS&#xff1a;带有概率签名方案的RSA1.4 数字签名方案对比 二、密钥交换协议2.1 Diffie-Hellman密钥交换2.2 ECDH&#xff1a;椭圆曲线Diffi…...

在MySQL中建索引时需要注意哪些事项?

在 MySQL 中建立索引是优化查询性能的重要手段&#xff0c;但不当的索引设计可能导致资源浪费、性能下降甚至拖慢写入速度。 所以我们我们首先要判断对于一个字段或者一些字段要不要建立索引。 适合建立索引的字段通常是&#xff1a; 主键字段&#xff1a;MySQL 会自动为主键…...

dstack 是 Kubernetes 和 Slurm 的开源替代方案,旨在简化 ML 团队跨顶级云、本地集群和加速器的 GPU 分配和 AI 工作负载编排

一、软件介绍 文末提供程序和源码下载 dstack 是 Kubernetes 和 Slurm 的开源替代方案&#xff0c;旨在简化顶级云和本地集群中 ML 团队的 GPU 分配和 AI 工作负载编排。 二、Accelerators 加速器 dstack 支持 NVIDIA 开箱即用的 、 AMD 、 Google TPU 和 Intel Gaudi 加速器…...

Linux 的 epoll 与 Windows 的 IOCP 详解

如果你在搞网络编程或者高性能服务器,一定要搞懂这两个模型——它们都是用来解决“多路复用”问题的工具,让你同时处理大量的网络连接变得高效又可控。 一、什么是“多路复用”? 简单说,就是你手里有很多任务(比如很多客户端的请求),但系统的核心(线程或者进程)资源…...

C# 方法(控制流和方法调用)

本章内容: 方法的结构 方法体内部的代码执行 局部变量 局部常量 控制流 方法调用 返回值 返回语句和void方法 局部函数 参数 值参数 引用参数 引用类型作为值参数和引用参数 输出参数 参数数组 参数类型总结 方法重载 命名参数 可选参数 栈帧 递归 控制流 方法包含了组成程序的…...

Webug4.0靶场通关笔记11- 第15关任意文件下载与第16关MySQL配置文件下载

目录 一、文件下载 二、第15关 任意文件下载 1.打开靶场 2.源码分析 3.渗透实战 三、第16关 MySQL配置文件下载 1.打开靶场 2.源码分析 3.渗透实战 &#xff08;1&#xff09;Windows系统 &#xff08;2&#xff09;Linux系统 四、渗透防御 一、文件下载 本文通过…...

More Effective C++学习笔记

条款1 指针与引用的区别 条款2 尽量使用C风格的类型转换 条款3 不要对数组使用多态 条款4 避免无用的缺省构造函数 条款5 谨慎定义类型转换函数 条款6 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别 条款7 不要重载“&&”,“||”, 或“,” 条款8 理…...

如何设计抗Crosstalk能力强的PCB镀穿孔

一个高速PCB通道通常包含芯片SerDes IP、走线、穿层Via、连接器和Cable。 其中内层走线对于Crosstalk影响甚微&#xff08;请参考什么&#xff1f; Stripline的FEXT为0&#xff01; Why&#xff1f; &#xff09;&#xff0c;而Via与连接器由于其参考路径较差的关系&#xff0c…...

多线程系列三:这就是线程的状态?

1.认识线程的状态 NEW&#xff1a;Thread对象已经创建好了&#xff0c;但还没有调用start方法在系统中创建线程 RUNNABLE&#xff1a;就绪状态&#xff0c;表示这个线程正在CPU上执行&#xff0c;或准备就绪&#xff0c;随时可以去CPU上执行 BLOCKED&#xff1a;表示由于锁竞争…...

生成对抗网络(GAN, Generative Adversarial Network)​

定义​​&#xff1a;一种通过​​对抗训练​​让两个神经网络&#xff08;生成器与判别器&#xff09;相互博弈的深度学习模型&#xff0c;用于生成逼真的数据&#xff08;如图像、音频、文本等&#xff09;。 ​​一、核心思想&#xff1a;对抗博弈​​ GAN的核心是让两个神…...

用可视化学习逆置法

1.逆置法思路 目标&#xff1a;将这个彩色数组向右旋转3步 &#x1f534;1 → &#x1f7e0;2 → &#x1f7e1;3 → &#x1f7e2;4 → &#x1f535;5 → &#x1f7e3;6 → ⚪7我们希望得到 &#x1f535;5 → &#x1f7e3;6 → ⚪7 → &#x1f534;1 → &#x1f7e0;…...

家用服务器 Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南

Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南 本文档总结了我们讨论的所有内容&#xff0c;包括 Ubuntu 服务器配置、硬盘扩容、静态 IP 设置以及 Cloudflare Tunnel 的部署步骤。 目录 硬盘分区与扩容设置静态 IPCloudflare Tunnel 部署SSH 通过 Cloudflare Tunnel常见…...

【C++篇】类和对象(上)

目录 类的定义格式&#xff1a; 内敛函数&#xff1a; 类与struct的区别&#xff1a; 类的访问权限&#xff1a; 类域&#xff1a; 类的实例化&#xff1a; 对象大小&#xff1a; 计算对象的大小时&#xff0c;也存在内存对齐&#xff08;与结构体一样&#xff09;&…...

ES6/ES11知识点 续一

模板字符串 在 ECMAScript&#xff08;ES&#xff09;中&#xff0c;模板字符串&#xff08;Template Literals&#xff09;是一种非常强大的字符串表示方式&#xff0c;它为我们提供了比传统字符串更灵活的功能&#xff0c;尤其是在处理动态内容时。模板字符串通过反引号&…...

ES6入门---第二单元 模块二:关于数组新增

一、扩展运算符。。。 1、可以把ul li转变为数组 <script>window.onloadfunction (){let aLi document.querySelectorAll(ul li);let arrLi [...aLi];arrLi.pop();arrLi.push(asfasdf);console.log(arrLi);};</script> </head> <body><ul><…...

使用python加edge-tts实现文字转语音

文章目录 使用python加edge-tts实现文字转语音1. 使用 Python 安装 Edge-TTS2. 进一步优化3. 使用说明3.1 查看语音列表3.2 单语音转换3.3 批量生成所有语音3.4 改进亮点4. 使用教程最终代码文章创作不易使用python加edge-tts实现文字转语音 Edge-TTS(edge-tts Python 模块)本…...

如何用CSS实现HTML元素的旋转效果:从基础到高阶应用

在网页设计中&#xff0c;元素的动态效果能显著提升用户体验&#xff0c;而旋转效果是其中最常用的交互方式之一。CSS的transform属性提供了强大的旋转功能&#xff0c;结合动画&#xff08;animation&#xff09;和过渡&#xff08;transition&#xff09;&#xff0c;开发者可…...

轻量级RTSP服务模块:跨平台低延迟嵌入即用的流媒体引擎

在音视频流媒体系统中&#xff0c;RTSP&#xff08;Real-Time Streaming Protocol&#xff09;服务模块通常扮演着“视频分发中心”的角色&#xff0c;它将编码后的音视频内容转为标准的流媒体格式&#xff0c;供客户端&#xff08;播放器、云端平台、AI模块等&#xff09;拉流…...

AVInputFormat 再分析

AVInputFormat 是 FFmpeg 中用于描述输入格式&#xff08;如文件容器、设备流等&#xff09;的核心结构体&#xff0c;属于 libavformat 库的一部分。其主要功能是定义解封装&#xff08;demuxing&#xff09;过程中如何解析不同格式的输入数据。以下是其关键特性与使用方式的总…...

wpf CommandParameter 传递MouseWheelEventArgs参数

在 WPF 中通过 CommandParameter 传递 MouseWheelEventArgs 参数时&#xff0c;需结合 ‌事件到命令的转换机制‌ 和 ‌参数转换器‌ 来实现。以下是具体实现方案及注意事项&#xff1a; 一、核心实现方法 1. ‌使用 EventToCommand 传递原始事件参数‌ 通过 Interaction.Tr…...

摆脱养生误区泥沼,拥抱科学养生阳光

在养生的道路上&#xff0c;人们总是满怀热忱地追寻健康之道&#xff0c;然而&#xff0c;诸多似是而非的养生误区却如同泥沼一般&#xff0c;让不少人深陷其中&#xff0c;难以自拔。只有奋力摆脱这些误区的束缚&#xff0c;才能拥抱科学养生的温暖阳光&#xff0c;真正实现身…...

FreeRtos实战从入门到精通--任务创建和删除(动态方法)--事了拂衣去,深藏功与名

FreeRtos是之前的一些聪明的工程师写的免费且开源的嵌入式实时操作系统代码&#xff0c;由于我们实际工作中不需要再去写rtos&#xff0c;我们只需要用就行了&#xff0c;所以博主这里只分享项目工程实战相关的内容&#xff0c;具体rtos源码&#xff0c;可以无需理会&#xff0…...

卷积神经网络进化史:从LeNet-5到现代架构的完整发展脉络

摘要 本文系统梳理卷积神经网络(CNN)从诞生到繁荣的发展历程。从1998年Yann LeCun开创性的LeNet-5出发&#xff0c;重点解析2012年引爆深度学习革命的AlexNet&#xff0c;并详细拆解后续演进的五大技术方向&#xff1a;网络深度化(VGG)、卷积功能强化(ResNet)、检测任务迁移(F…...

《Qt C++ 项目中升级 GCC 版本的完整指南》

Qt C++ 项目中升级 GCC 版本的完整指南 在 Qt C++ 项目中升级 GCC 版本可能会影响编译工具链、Qt 库兼容性以及项目配置。以下是针对不同操作系统的升级步骤和注意事项: 一、为什么需要升级 GCC 版本? C++ 标准支持:新版本 GCC 支持 C++17/20 等新标准特性性能优化:编译速…...

Baklib赋能企业知识管理数字化转型

Baklib驱动知识智慧转化 在数字化浪潮中&#xff0c;企业知识资产的碎片化与低效流转已成为制约业务创新的核心瓶颈。Baklib作为新一代知识中台&#xff0c;通过构建智能化的知识治理体系&#xff0c;将分散的文档、数据与经验转化为可复用的业务智慧。其核心能力体现在多模态…...

LeetCode240. 搜索二维矩阵 II(巧妙转换)

编写一个高效的算法来搜索m x n矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 题目中最关键的信息就是每行从左到右升序&#xff0c;每列从左到右升序&#xff0c;如果暴力的话就用不到…...

AVFormatContext 再分析二

说明 &#xff1a;将 avfromatContext 的变量依次打印分析&#xff0c;根据ffmpeg 给的说明&#xff0c;猜测&#xff0c;结合网上的文章字节写测试代码分析二。 37 AVInputFormat *iformat; /** * The input container format. * * Demuxing only, set by avfo…...

leetcode0096. 不同的二叉搜索树-medium

1 题目&#xff1a;不同的二叉搜索树 官方标定难度&#xff1a;中 给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xf…...

【科研绘图系列】R语言绘制世界地图(map plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图输出图片系统信息介绍 【科研绘图系列】R语言绘制世界地图(map plot) 加载R包 library(ggmap) library(RColorBrewer) library(pals) …...

【原创】风云扫描王[特殊字符]OCR识别翻译!证件照

&#x1f4e3;文字识别&#xff0c;文字提取&#xff0c;扫描翻译&#xff0c;证件扫描&#xff0c;表格识别&#xff0c;PDF加水印等一体的扫描应用。扫描任何东西&#xff0c;包括文件、纸质笔记、收据和书籍&#xff0c;把它们扫描成清晰的PDF文件和图像。使用OCR技术将图像…...

Fabrice Bellard(个人网站:‌bellard.org‌)介绍

Fabrice Bellard 是法国人&#xff0c;国际知名程序员。 Fabrice Bellard&#xff08;个人网站&#xff1a;‌bellard.org‌&#xff09;是计算机领域最具影响力的程序员之一&#xff0c;其贡献跨越多个技术领域并持续推动开源生态发展。以下是其关键成就与技术贡献的梳理&…...