awesome-repositories.com
博客
MCP
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
jwiegley avatar

jwiegley/use-packageArchived

0
View on GitHub↗
4,465 星标·262 分支·Emacs Lisp·GPL-3.0·8 次浏览jwiegley.github.io/use-package↗

Use Package

This project is a declarative framework and domain-specific language for managing Emacs Lisp packages. It functions as a startup performance optimizer by grouping package installation, variable settings, and keybindings into single blocks to reduce initial boot time.

The system distinguishes itself through a deferred loading framework that delays package execution until specific keys, hooks, or modes are triggered. It uses a macro-based declaration syntax to organize configuration and automate the generation of autoloads, ensuring packages are only loaded when they are actually required.

The project covers broad capability areas including automated package installation from remote archives, dependency management, and conditional loading based on the operating system or environment. It also provides comprehensive keyboard mapping for shortcuts and chords, as well as tools for analyzing loading statistics and modifying mode-line displays.

Features

  • Editor Configuration Management - Organizes package settings into single declarative blocks to keep the editor initialization file maintainable.
  • Package Managers - Provides a declarative framework for managing the installation and configuration of Emacs Lisp packages.
  • Autoload Mechanisms - Implements a deferred-loading framework that generates autoloads to reduce initial editor boot time.
  • Conditional Loading Controls - Determines if a package should be loaded based on the detected operating system and environment state.
  • Custom Load-Path Extensions - Extends the system load path to allow the editor to locate and load external package files.
  • Command Key Bindings - Binds keyboard shortcuts to functions and creates autoloads to defer package loading until invocation.
  • Keyboard Shortcut Mappings - Assigns keys to commands and creates autoloads to ensure packages load only when the shortcut is pressed.
  • Hook Registration - Allows assigning functions to specific events to defer the full loading of a package.
  • Package Dependency Management - Controls the loading order of packages based on the presence or status of other required dependencies.
  • Editor Startup Optimization - Reduces initial boot time by deferring the loading of packages and settings until they are actually needed.
  • Configuration File Loading - Isolates package settings and loading logic into organized blocks for better maintainability.
  • Automated Package Provisioning - Automatically downloads and installs missing packages from remote archives during editor startup.
  • Remote Archive Management - Installs missing packages from remote archives and pins specific packages to designated repositories.
  • Conditional Mod Loading - Implements systems for controlling the loading of software modules based on dependencies and environmental predicates.
  • Configuration Domain-Specific Languages - Implements a declarative syntax for grouping package installation, variable settings, and keybindings.
  • Configuration DSLs - Provides a declarative Lisp macro syntax to group package installation, settings, and keybindings.
  • Package Installations - Provides automated downloading and installation of Emacs Lisp packages from remote archives.
  • Package Dependency Resolution - Ensures required packages are loaded in the correct sequence before dependent packages initialize.
  • Configuration Packages - Groups package settings into single declarative blocks to improve startup performance and configuration cleanliness.
  • Conditional Initialization - Restricts the initialization of modules based on the operating system or presence of system dependencies.
  • Event-Driven Initializers - Registers functions to trigger package loading during specific editor events.
  • Loading Sequence Control - Enforces the specific order in which packages are initialized to maintain system stability.
  • Deferred Plugin Loading - Provides a system that delays the activation of packages until a specific command, hook, or mode is triggered.
  • Magic Byte File Identification - Automatically loads packages by analyzing file headers and magic byte sequences when files are opened.
  • Pattern-Triggered Package Loading - Loads packages automatically if the start of a file matches a predefined regular expression.
  • Variable and Face Customizations - Sets custom variables and visual faces for packages within their specific declaration blocks.
  • Chorded Key Mappings - Maps sequences of keys to functions using a chord-based input system for complex commands.
  • Shebang and Extension Mapping - Establishes loading rules based on file extensions or the interpreter specified in a file's shebang.
  • Keymap Bindings - Binds keys to defined keymaps and ensures the associated package is loaded before executing the keypress.
  • Hierarchical - Binds keyboard shortcuts to entire keymaps while managing deferred package loading.
  • Lifecycle Configuration Hooks - Executes custom code and sets variables immediately before or after a package is loaded.

Star 历史

jwiegley/use-package 的 Star 历史图表jwiegley/use-package 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Use Package 的开源替代方案

相似的开源项目,按与 Use Package 的功能重合度排序。
  • syl20bnr/spacemacssyl20bnr 的头像

    syl20bnr/spacemacs

    24,560在 GitHub 上查看↗

    Spacemacs is a community-driven configuration for Emacs that integrates modal text editing and a modular system for managing editor features. It implements distinct states for navigation and insertion to separate text manipulation from text entry, combining the efficiency of modal navigation with the extensibility of the Emacs environment. The project distinguishes itself through a layer-based feature composition system, which groups related third-party packages and configurations into modular units. This system includes dependency-based resolution to manage conflicting extensions and a mnemo

    Emacs Lispcommunity-drivenconfigurationemacs
    在 GitHub 上查看↗24,560
  • ruby/rubygemsruby 的头像

    ruby/rubygems

    3,936在 GitHub 上查看↗

    RubyGems is a package manager for the Ruby language, serving as a tool for packaging, distributing, and installing libraries and software extensions. It functions as a dependency resolver and registry client, managing the installation of required libraries and their recursive dependencies to ensure consistent environments across development and production. The system handles the complete package lifecycle, including the building of distributable archives, the compilation of native C extensions for high-performance system integration, and the publishing of stable or prerelease versions to regi

    Rubypackage-managerrubyrubygems
    在 GitHub 上查看↗3,936
  • clibs/clibclibs 的头像

    clibs/clib

    5,133在 GitHub 上查看↗

    clib is a C language package manager and dependency manager used to install, update, and manage external C libraries and executable dependencies from remote repositories. It functions as a distribution tool for structuring source code and metadata to publish C libraries and a development toolkit for maintaining consistent build environments. The project provides a framework for C library distribution and dependency resolution, utilizing manifest files to track required library versions and ensure reproducible builds across different systems. It streamlines the C development workflow by managi

    Ccclibmanager
    在 GitHub 上查看↗5,133
  • pypa/sampleprojectpypa 的头像

    pypa/sampleproject

    5,245在 GitHub 上查看↗

    This project is a reference implementation and tutorial designed to demonstrate the end-to-end workflow of building, versioning, and uploading Python distributions. It serves as a concrete project template and example for configuring metadata and build artifacts for package indices. The repository illustrates how to package software by defining project metadata and dependencies in static configuration files. It covers the process of transforming source trees into versioned archives and platform-specific binary distributions, specifically showing how to build binary wheels and source distribut

    Python
    在 GitHub 上查看↗5,245
查看 Use Package 的所有 30 个替代方案→

常见问题解答

jwiegley/use-package 是做什么的?

This project is a declarative framework and domain-specific language for managing Emacs Lisp packages. It functions as a startup performance optimizer by grouping package installation, variable settings, and keybindings into single blocks to reduce initial boot time.

jwiegley/use-package 的主要功能有哪些?

jwiegley/use-package 的主要功能包括:Editor Configuration Management, Package Managers, Autoload Mechanisms, Conditional Loading Controls, Custom Load-Path Extensions, Command Key Bindings, Keyboard Shortcut Mappings, Hook Registration。

jwiegley/use-package 有哪些开源替代品?

jwiegley/use-package 的开源替代品包括: syl20bnr/spacemacs — Spacemacs is a community-driven configuration for Emacs that integrates modal text editing and a modular system for… ruby/rubygems — RubyGems is a package manager for the Ruby language, serving as a tool for packaging, distributing, and installing… pypa/sampleproject — This project is a reference implementation and tutorial designed to demonstrate the end-to-end workflow of building,… sublimehq/package_control — Package Control is a package manager for the Sublime Text editor designed for discovering, installing, and updating… clibs/clib — clib is a C language package manager and dependency manager used to install, update, and manage external C libraries… wsdjeg/spacevim — SpaceVim is a modular configuration framework designed for managing plugins and settings across Vim and Neovim. It…