A Neovim plugin that securely loads local configuration files from the current working directory.
nvim-config-local is a Neovim plugin that provides a secure mechanism for loading project-specific Neovim configuration files. It solves the security risk of Vim's native `exrc` feature by tracking file hashes and requiring explicit user trust before sourcing any local config file.
Neovim users who work across multiple projects and need to safely apply different editor settings (like keymaps or plugin configurations) per project directory.
Developers choose this plugin because it restores the convenience of project-local configurations while adding mandatory security checks, preventing automatic execution of potentially malicious code from untrusted files.
Secure load local config files for neovim
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tracks file hashes and only sources trusted files, preventing automatic execution of malicious code from local configs, as it addresses the security risk of Vim's exrc feature.
Prompts users to ignore, view, deny, or allow new config files upon detection, providing granular control over which configurations are loaded, as shown in the README's usage example.
Supports loading from files like .nvim.lua and .nvimrc with configurable options via setup, allowing flexibility in file naming and location.
Emits a User ConfigLocalLoaded event after loading, enabling custom autocommand bindings for extended functionality, as documented in the events section.
Requires re-trusting files after any content or path change, which can be cumbersome in dynamic projects, as stated in the README that 'File has to be marked as trusted each time its contents or path changes.'
Default interactive prompts can disrupt smooth workflow when opening new directories quickly, though a silent mode is available as an option in setup.
Only handles config files in the local or parent directories if enabled, lacking support for remote or environment-based configurations, which might not suit all use cases.