All-in-one neovim configuration framework implemented with Lua. It is highly flexible to be customized and extended.
If you don't like the hidden cmdline, you can disable noice.nvim plugin to get the classic UI. Follow this config:
require('one').setup { plugins = { 'noice', disable = true } }
Press <space>o
to open the outline.
Press <space>f
to open the file finder.
Press <space>k
to open the keymap finder.
Press <space>p
to open the keymap finder.
Press <space>d
or <space>D
to open the diagnostic list. See Diagnostic keymaps.
Function signature completion
You can update the one.nvim via plugin manager or commands :OneUpdate one
or :lua one.update('one')
.
Please submit issue when encounter problems after updating.
require('one').setup {}
All config options are optional. You can override default configs. Please read User Config.
Note: One.nvim use lazy.nvim as plugin manager. The lazy.nvim would be installed on start up. So user should not install one.nvim via plugin manager.
lazy.nvim | |
---|---|
Plugins Directory | {DATA_DIR}/plugins |
Default Config | lua/one/config/lazy.lua |
The value of {DATA_DIR}
is :lua print(vim.fn.stdpath('data'))
.
require('one').setup {
config = {
pluginManager = { use = 'lazy' }, -- Default to 'lazy'. Available value: lazy' or 'local'
},
}
When config.pluginManager.use = 'local'
, this plugin manager can only load local plugins. It cannnot install packages from remote.
All plugins can be turned off, overridden default config options, replaced with your favorites. It is highly flexible to be customized and extended.
Read ./doc/plugin.md for plugin definitions and references.
You can even set onlyPlugins = {}
to disable all plugins. Read Debug - Disable other plugins.
You can invoke :OneShowPlugins
to view disabled and enabled plugins.
Just read codes.
.
├── doc/ // Documents
├── lua/
│ └── one/
│ ├── async.lua // async library
│ ├── config/ // Keymaps
│ │ ├── colors.lua // Default color config
│ │ ├── default.lua // Default config
│ │ ├── lazy.lua // Default config for lazy.nvim
│ │ └── symbol.lua // symbols
│ ├── config.lua // Config loader
│ ├── consts.lua // Constants
│ ├── filetype.lua // FileType autocmd
│ ├── one.lua // The one singleton
│ ├── init.lua // The lua required entry point
│ ├── plugins.lua // Plugin loading list
│ ├── util.lua // Utility functions
│ ├── util_spec.lua // Unit test for util.lua
│ ├── keymap/ // Keymaps
│ ├── plugins/ // Available plugins written in lua
│ │ └── themes/ // Color schemas
│ └── plugin-manager/
│ ├── init.lua // Plugin Manager
│ ├── lazy.lua // Wrapper for lazy.nvim
│ └── local.lua // Only load local files
└── scripts/ // scripts for building project
Before opening new Issue/Discussion/PR and posting any comments, please read ./CONTRIBUTING.md.
Copyright 2016-2025 ADoyle (adoyle.h@gmail.com). Some Rights Reserved. The project is licensed under the BSD 3-clause License.
Read the LICENSE file for the specific language governing permissions and limitations under the License.
Read the NOTICE file distributed with this work for additional information regarding copyright ownership.
Other nvim projects created by me.