1
Files
flake-nixinator/config/neovim/store/lazy-plugins/winshift.nvim/doc/winshift.txt

119 lines
5.0 KiB
Plaintext

*winshift.txt* WinShift.nvim
Rearrange your windows with ease.
Author: Sindre T. Strøm
==============================================================================
INTRODUCTION *winshift.nvim* *winshift*
WinShift lets you move windows, not only around each other, but also in and
out of rows and columns.
USAGE *Win-Move-mode* *winshift-usage*
Enter Win-Move mode by calling `:WinShift`. This will target your current
window for moving. You can move the window either by using |hjkl| or the arrow
keys. You can move the window to any of the far ends of the viewport by
pressing one of `HJKL`, or shift + any arrow key. Exit Win-Move mode by
pressing `q` / `<esc>` / `<C-c>`.
CONFIGURATION *winshift-config*
Example configuration with default settings:
>
-- Lua
require("winshift").setup({
highlight_moving_win = true, -- Highlight the window being moved
focused_hl_group = "Visual", -- The highlight group used for the moving window
moving_win_options = {
-- These are local options applied to the moving window while it's
-- being moved. They are unset when you leave move mode.
wrap = false,
cursorline = false,
cursorcolumn = false,
colorcolumn = "",
},
keymaps = {
disable_defaults = false, -- Disable the default keymaps
win_move_mode = {
["h"] = "left",
["j"] = "down",
["k"] = "up",
["l"] = "right",
["H"] = "far_left",
["J"] = "far_down",
["K"] = "far_up",
["L"] = "far_right",
["<left>"] = "left",
["<down>"] = "down",
["<up>"] = "up",
["<right>"] = "right",
["<S-left>"] = "far_left",
["<S-down>"] = "far_down",
["<S-up>"] = "far_up",
["<S-right>"] = "far_right",
},
},
---A function that should prompt the user to select a window.
---
---The window picker is used to select a window while swapping windows with
---`:WinShift swap`.
---@return integer? winid # Either the selected window ID, or `nil` to
--- indicate that the user cancelled / gave an invalid selection.
window_picker = function()
return require("winshift.lib").pick_window({
-- A string of chars used as identifiers by the window picker.
picker_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
filter_rules = {
-- This table allows you to indicate to the window picker that a window
-- should be ignored if its buffer matches any of the following criteria.
cur_win = true, -- Filter out the current window
floats = true, -- Filter out floating windows
filetype = {}, -- List of ignored file types
buftype = {}, -- List of ignored buftypes
bufname = {}, -- List of vim regex patterns matching ignored buffer names
},
---A function used to filter the list of selectable windows.
---@param winids integer[] # The list of selectable window IDs.
---@return integer[] filtered # The filtered list of window IDs.
filter_func = nil,
})
end,
})
<
COMMANDS *winshift-commands*
*:WinShift*
:WinShift [direction]
When called without [direction]: starts Win-Move mode
targeting the current window for moving. For how to
use Win-Move mode, see |Win-Move-mode|. With
[direction] perform a one-shot move operation on the
current window, moving it in the given direction.
[direction] can be one of:
`left`, `right`, `up`, `down`, `far_left`,
`far_right`, `far_up`, `far_down`
The `far_` variants will move the window to the far
end of the viewport in the given direction.
:WinShift swap
Swap the current window with another. When this
command is called, you'll be prompted to select the
window you want to swap with. A selection is made by
pressing the character displayed in the statusline of
the target window. The input is case-insensitive.
CAVEATS *winshift-caveats*
Moving through windows with 'winfixwidth' and / or 'winfixheight' can be a bit
wonky. It will work, but it can be a bit hard to follow the movement, and the
fixed window might end up with different dimensions after. This is simply a
consequence of vim being forced to resize the window due to there not being
enough space to adhere to the fixed window's preferred dimensions.
vim:tw=78:ts=8:ft=help:norl: