[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1840":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":32,"discoverSource":33},1840,"tiny-cmdline.nvim","rachartier\u002Ftiny-cmdline.nvim","rachartier","A Neovim plugin that repositions the cmdline as a centered floating window, powered by Neovim's native ui2 system.","",null,"Lua",172,2,0,3,4,15,9,1.43,"MIT License",false,"main",true,[25,26,27,28],"neovim","neovim-plugins","nvim","nvim-plugin","2026-06-12 02:00:33","# 📍tiny-cmdline.nvim\n\n[![Neovim](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNeovim-0.12+-blue.svg)](https:\u002F\u002Fneovim.io\u002F)\n\nA Neovim plugin that repositions the cmdline as a centered floating window, powered by Neovim's native `ui2` system.\n\n\u003Cimg width=\"1085\" height=\"625\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fa8dd229d-dff8-40b5-8727-58fb8fce7c64\" \u002F>\n\n\n## Table of Contents\n\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Highlight Groups](#highlight-groups)\n- [How It Works](#how-it-works)\n- [Integrations](#integrations)\n  - [blink.cmp](#blinkcmp)\n  - [nvim-cmp](#nvim-cmp)\n  - [mini.cmdline](#minicmdline)\n  - [Default (built-in) completion](#default-built-in-completion)\n- [Troubleshooting](#troubleshooting)\n\n## Requirements\n\n- Neovim >= 0.12\n- `cmdheight=0` (better to have for `ui2`)\n- `ui2` must be enabled explicitly:\n  ```lua\n  require(\"vim._core.ui2\").enable({})\n  ```\n\n## Installation\n\nThe plugin is setup-less: it auto-initializes on `UIEnter` with sensible defaults. No `setup()` call is required.\n\nThere are three ways to configure it:\n\n- **Minimal**: just install and set `cmdheight=0`\n- **`vim.g`**: set `vim.g.tiny_cmdline` before the plugin loads (no `setup()` needed)\n- **`setup()`**: explicit call, takes priority over `vim.g`\n\n### vim.pack (Neovim built-in, >= 0.12)\n\nMinimal:\n\n```lua\nvim.o.cmdheight = 0\nvim.pack.add({ \"https:\u002F\u002Fgithub.com\u002Frachartier\u002Ftiny-cmdline.nvim\" })\n```\n\nWith `vim.g`:\n\n```lua\nvim.o.cmdheight = 0\nvim.g.tiny_cmdline = {\n    width = { value = \"70%\" },\n}\nvim.pack.add({ \"https:\u002F\u002Fgithub.com\u002Frachartier\u002Ftiny-cmdline.nvim\" })\n```\n\nWith `setup()`:\n\n```lua\nvim.pack.add({\n    \"https:\u002F\u002Fgithub.com\u002Frachartier\u002Ftiny-cmdline.nvim\",\n    config = function()\n        vim.o.cmdheight = 0\n        require(\"tiny-cmdline\").setup()\n    end,\n})\n```\n\n### lazy.nvim\n\nMinimal:\n\n```lua\n{\n    \"rachartier\u002Ftiny-cmdline.nvim\",\n    init = function()\n        vim.o.cmdheight = 0\n    end,\n}\n```\n\nWith `vim.g`:\n\n```lua\n{\n    \"rachartier\u002Ftiny-cmdline.nvim\",\n    init = function()\n        vim.o.cmdheight = 0\n        vim.g.tiny_cmdline = {\n            width = { value = \"70%\" },\n        }\n    end,\n}\n```\n\nWith `setup()`:\n\n```lua\n{\n    \"rachartier\u002Ftiny-cmdline.nvim\",\n    config = function()\n        vim.o.cmdheight = 0\n        require(\"tiny-cmdline\").setup()\n    end,\n}\n```\n\n## Configuration\n\n\u003Cdetails>\n\u003Csummary>Full default configuration\u003C\u002Fsummary>\n\n```lua\nrequire(\"tiny-cmdline\").setup({\n    -- Cmdline window width\n    width = {\n        value = \"60%\",  -- \"N%\" = fraction of editor columns, integer = absolute columns\n        min = 40,       -- minimum width in columns\n        max = 80,       -- maximum width in columns\n    },\n\n    -- Window position (\"N%\" = fraction of available space, integer = absolute columns\u002Frows)\n    position = {\n        x = \"50%\",  -- horizontal: \"0%\" = left, \"50%\" = center, \"100%\" = right\n        y = \"50%\",  -- vertical:   \"0%\" = top,  \"50%\" = center, \"100%\" = bottom\n    },\n\n    -- Border style for the floating window\n    -- nil inherits vim.o.winborder at setup() time, falling back to \"rounded\"\n    -- Set to \"none\" to disable the border\n    border = nil,\n\n    -- Horizontal offset of the completion menu anchor from the window's left inner edge\n    -- Used to align blink.cmp \u002F nvim-cmp menus with the cmdline window\n    menu_col_offset = 3,\n\n    -- Cmdline types rendered at the bottom of the screen instead of centered\n    -- \"\u002F\" and \"?\" (search) are kept native by default\n    native_types = { \"\u002F\", \"?\" },\n\n    -- Optional callback invoked after every reposition\n    on_reposition = nil,\n})\n```\n\n\u003C\u002Fdetails>\n\n## Highlight Groups\n\n| Group | Default link | Description |\n| --- | --- | --- |\n| `TinyCmdlineNormal` | `MsgArea` | Background of the cmdline window |\n| `TinyCmdlineBorder` | `FloatBorder` | Border of the cmdline window |\n\nOverride them in your colorscheme or config:\n\n```lua\nvim.api.nvim_set_hl(0, \"TinyCmdlineBorder\", { fg = \"#your_color\" })\nvim.api.nvim_set_hl(0, \"TinyCmdlineNormal\", { bg = \"#your_color\" })\n```\n\n## How It Works\n\ntiny-cmdline hooks into Neovim's internal `vim._core.ui2` system, which manages the floating cmdline window introduced in Neovim 0.12. On every `CmdlineEnter` it repositions that window to the center of the editor, and on `CmdlineLeave` it restores the original position so that post-command messages still render correctly at the bottom.\n\nCmdline types listed in `native_types` (search by default) are pinned to the bottom at full width, preserving the native search experience.\n\nThe window position is also updated on `VimResized` and `TabEnter` to stay correctly centered after layout changes.\n\n## Integrations\n\ntiny-cmdline is compatible with the most common completion plugins. The table below summarises compatibility details for each.\n\n| Plugin | Menu repositions on open | Menu repositions on window resize | Extra config required |\n| --- | --- | --- | --- |\n| **blink.cmp** | :heavy_check_mark: with adapter | :heavy_check_mark: with adapter | :heavy_check_mark: see below |\n| **nvim-cmp** | :heavy_check_mark: | :x: (not yet supported) | :x: |\n| **mini.cmdline** | :heavy_check_mark: | :x: (not yet supported) | :x: |\n| **Default (built-in)** | :heavy_check_mark: | :x: (not yet supported) | :x: |\n\n### blink.cmp\n\nblink.cmp manages its own menu position independently. Use the built-in adapter so it follows the repositioned cmdline window:\n\n```lua\nrequire(\"tiny-cmdline\").setup({\n    on_reposition = require(\"tiny-cmdline\").adapters.blink,\n})\n```\n\n\n## Troubleshooting\n\n- **Cmdline stays at the bottom**: Ensure `vim.o.cmdheight = 0` is set before the plugin initializes (use `init` in lazy.nvim, or set it early in your config).\n- **Completion menu misaligned**: Tune `menu_col_offset` to match your border\u002Fpadding.\n- **Border doesn't match the rest of Neovim**: Leave `border = nil` to inherit `vim.o.winborder`.\n- **Search feels different**: `\u002F` and `?` are in `native_types` by default and rendered at the bottom; remove them from that list to also center them.\n","tiny-cmdline.nvim 是一个 Neovim 插件，它利用 Neovim 的原生 `ui2` 系统将命令行重新定位为居中的浮动窗口。其核心功能是通过 Lua 语言编写，提供灵活的配置选项以调整命令行窗口的宽度、位置和边框样式等。该插件支持多种安装方式，并且可以与诸如 `nvim-cmp` 和 `mini.cmdline` 等其他插件无缝集成，从而增强用户体验。适用于需要优化编辑器界面布局或偏好使用浮动窗口进行命令输入的 Neovim 用户。","2026-06-11 02:46:20","CREATED_QUERY"]