Neovim在Neovim運行的Neovim的便攜式軟件包管理器運行。
輕鬆安裝和管理LSP服務器,DAP服務器,襯里和格式化器。
:help mason.nvim
最新版本:V1.10.0
:h mason-introduction
mason.nvim
是一個Neovim插件,可讓您輕鬆地管理外部編輯器工具,例如LSP服務器,DAP服務器,襯里和格式化器,並通過一個接口。它可以在Neovim運行的任何地方運行(跨Linux,MacOS,Windows等),只需要一小部分外部要求。
默認情況下,軟件包安裝在Neovim的數據目錄( :h standard-path
)中。可執行文件鏈接到單個bin/
目錄, mason.nvim
在設置過程中將添加到Neovim的路徑中,從而允許Neovim內置(Shell,Terminal等)以及其他第三方插件的無縫訪問。
有關所有可用軟件包的列表,請參見https://mason-registry.dev/registry/list。
:h mason-how-to-use-packages
儘管許多軟件包都是通過Neovim內置的開箱即用的,但建議使用其他第三方插件進一步整合這些插件。建議使用以下插件:
lspconfig
和mason-lspconfig.nvim
nvim-dap
和nvim-dap-ui
null-ls.nvim
或nvim-lint
null-ls.nvim
或formatter.nvim
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
:h mason-requirements
mason.nvim
通過嘗試多種不同的公用事業(例如wget
, curl
和Invoke-WebRequest
都是完美的替代品)來放鬆最低要求。建議的最低要求是:
>= 0.7.0
git(1)
curl(1)
或wget(1)
unzip(1)
tar(1)
或gtar(1)
取決於平台)gzip(1)
請注意, mason.nvim
會定期向外部包裝管理人員(例如cargo
和npm
扣除。根據您的個人用法,其中一些也需要安裝。請參閱:checkhealth mason
以獲取完整列表。
use {
" williamboman/mason.nvim "
}
{
" williamboman/mason.nvim "
}
Plug ' williamboman/mason.nvim '
:h mason-quickstart
require ( " mason " ). setup ()
mason.nvim
在設置過程中被優化為盡可能少的加載。不建議延遲插件或以某種方式推遲設置。
有關可用設置的信息,請參閱“配置”部分。
有關第三方擴展名的列表,請參閱Wiki。
mason-lspconfig.nvim
建議使用lspconfig
:h mason-commands
:Mason
- 打開圖形狀態窗口:MasonUpdate
更新所有託管註冊機構:MasonInstall <package> ...
安裝/重新安裝提供的軟件包:MasonUninstall <package> ...
卸載提供的軟件包:MasonUninstallAll
卸載所有軟件包:MasonLog
在新的選項卡窗口中打開mason.nvim
日誌文件Mason的核心包裝註冊表位於Mason-Org/Mason-Registry。在使用任何軟件包之前,需要下載註冊表。當使用不同的Mason命令(例如:MasonInstall
)時,這會自動為您完成,但也可以通過使用:MasonUpdate
命令手動完成。
如果您要使用梅森的Lua API訪問軟件包,則建議使用:h mason-registry.refresh()
和/或:h mason-registry.update()
函數,以確保您在檢索包裝之前擁有最新的軟件包資訊.
:h mason-settings
調用.setup()
函數時,您可以選擇配置mason.nvim
的某些行為。有關所有可用設置的列表,請參閱默認配置。
例子:
require ( " mason " ). setup ({
ui = {
icons = {
package_installed = " ✓ " ,
package_pending = " ➜ " ,
package_uninstalled = " ✗ "
}
}
})
--- @class MasonSettings
local DEFAULT_SETTINGS = {
--- @since 1.0.0
-- The directory in which to install packages.
install_root_dir = path . concat { vim . fn . stdpath " data " , " mason " },
--- @since 1.0.0
-- Where Mason should put its bin location in your PATH. Can be one of:
-- - "prepend" (default, Mason's bin location is put first in PATH)
-- - "append" (Mason's bin location is put at the end of PATH)
-- - "skip" (doesn't modify PATH)
--- @type ' "prepend" ' | ' "append" ' | ' "skip" '
PATH = " prepend " ,
--- @since 1.0.0
-- Controls to which degree logs are written to the log file. It's useful to set this to vim.log.levels.DEBUG when
-- debugging issues with package installations.
log_level = vim . log . levels . INFO ,
--- @since 1.0.0
-- Limit for the maximum amount of packages to be installed at the same time. Once this limit is reached, any further
-- packages that are requested to be installed will be put in a queue.
max_concurrent_installers = 4 ,
--- @since 1.0.0
-- [Advanced setting]
-- The registries to source packages from. Accepts multiple entries. Should a package with the same name exist in
-- multiple registries, the registry listed first will be used.
registries = {
" github:mason-org/mason-registry " ,
},
--- @since 1.0.0
-- The provider implementations to use for resolving supplementary package metadata (e.g., all available versions).
-- Accepts multiple entries, where later entries will be used as fallback should prior providers fail.
-- Builtin providers are:
-- - mason.providers.registry-api - uses the https://api.mason-registry.dev API
-- - mason.providers.client - uses only client-side tooling to resolve metadata
providers = {
" mason.providers.registry-api " ,
" mason.providers.client " ,
},
github = {
--- @since 1.0.0
-- The template URL to use when downloading assets from GitHub.
-- The placeholders are the following (in order):
-- 1. The repository (e.g. "rust-lang/rust-analyzer")
-- 2. The release version (e.g. "v0.3.0")
-- 3. The asset name (e.g. "rust-analyzer-v0.3.0-x86_64-unknown-linux-gnu.tar.gz")
download_url_template = " https://github.com/%s/releases/download/%s/%s " ,
},
pip = {
--- @since 1.0.0
-- Whether to upgrade pip to the latest version in the virtual environment before installing packages.
upgrade_pip = false ,
--- @since 1.0.0
-- These args will be added to `pip install` calls. Note that setting extra args might impact intended behavior
-- and is not recommended.
--
-- Example: { "--proxy", "https://proxyserver" }
install_args = {},
},
ui = {
--- @since 1.0.0
-- Whether to automatically check for new versions when opening the :Mason window.
check_outdated_packages_on_open = true ,
--- @since 1.0.0
-- The border to use for the UI window. Accepts same border values as |nvim_open_win()|.
border = " none " ,
--- @since 1.0.0
-- Width of the window. Accepts:
-- - Integer greater than 1 for fixed width.
-- - Float in the range of 0-1 for a percentage of screen width.
width = 0.8 ,
--- @since 1.0.0
-- Height of the window. Accepts:
-- - Integer greater than 1 for fixed height.
-- - Float in the range of 0-1 for a percentage of screen height.
height = 0.9 ,
icons = {
--- @since 1.0.0
-- The list icon to use for installed packages.
package_installed = " ◍ " ,
--- @since 1.0.0
-- The list icon to use for packages that are installing, or queued for installation.
package_pending = " ◍ " ,
--- @since 1.0.0
-- The list icon to use for packages that are not installed.
package_uninstalled = " ◍ " ,
},
keymaps = {
--- @since 1.0.0
-- Keymap to expand a package
toggle_package_expand = " <CR> " ,
--- @since 1.0.0
-- Keymap to install the package under the current cursor position
install_package = " i " ,
--- @since 1.0.0
-- Keymap to reinstall/update the package under the current cursor position
update_package = " u " ,
--- @since 1.0.0
-- Keymap to check for new version for the package under the current cursor position
check_package_version = " c " ,
--- @since 1.0.0
-- Keymap to update all installed packages
update_all_packages = " U " ,
--- @since 1.0.0
-- Keymap to check which installed packages are outdated
check_outdated_packages = " C " ,
--- @since 1.0.0
-- Keymap to uninstall a package
uninstall_package = " X " ,
--- @since 1.0.0
-- Keymap to cancel a package installation
cancel_installation = " <C-c> " ,
--- @since 1.0.0
-- Keymap to apply language filter
apply_language_filter = " <C-f> " ,
--- @since 1.1.0
-- Keymap to toggle viewing package installation log
toggle_package_install_log = " <CR> " ,
--- @since 1.8.0
-- Keymap to toggle the help view
toggle_help = " g? " ,
},
},
}
:help mason.nvim
!