Skip to content

Commit bb546e3

Browse files
authored
Merge pull request #284 from djensenius/better-splits
Better split management with neovim
2 parents 123d677 + 15e1a11 commit bb546e3

4 files changed

Lines changed: 72 additions & 19 deletions

File tree

ghostty/config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ adjust-cell-height = 20%
2626
window-colorspace = display-p3
2727
clipboard-read = allow
2828
window-save-state = always
29+
macos-option-as-alt = true

nvim/lua/keys.lua

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,21 @@ vim.keymap.set("n", "<leader>q", ":q<CR>", { silent = true })
4848
vim.keymap.set("", "<leader>sp", ":split<cr>")
4949
vim.keymap.set("", "<leader>sh", ":split<cr>")
5050
vim.keymap.set("", "<leader>sv", ":vsplit<cr>")
51+
vim.keymap.set("", "<leader>sH", "<C-w>H")
52+
vim.keymap.set("", "<leader>sJ", "<C-w>J")
53+
vim.keymap.set("", "<leader>sK", "<C-w>K")
54+
vim.keymap.set("", "<leader>sL", "<C-w>L")
55+
vim.keymap.set("", "<leader>se", "<C-w>=")
56+
vim.keymap.set("", "<leader>sx", ":close<CR>")
57+
vim.keymap.set("", "<leader>sw", "<C-w>x")
58+
vim.keymap.set("", "<leader>sr", "<C-w>r")
59+
vim.keymap.set("", "<leader>sR", "<C-w>R")
60+
61+
-- Split Resize
62+
vim.keymap.set("n", "<M-k>", ":resize +2<CR>")
63+
vim.keymap.set("n", "<M-j>", ":resize -2<CR>")
64+
vim.keymap.set("n", "<M-h>", ":vertical resize -2<CR>")
65+
vim.keymap.set("n", "<M-l>", ":vertical resize +2<CR>")
5166

5267
-- File operations
5368
vim.api.nvim_create_user_command("CopyFullPath", function()

nvim/lua/plugins/fzf-lua.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ return {
137137
end,
138138
desc = "Live grep",
139139
},
140+
{
141+
"<leader>fG",
142+
function()
143+
require("fzf-lua").git_status()
144+
end,
145+
desc = "Git Status",
146+
},
140147
{
141148
"<leader>fb",
142149
function()

nvim/lua/plugins/which-key.lua

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ return {
2222
{ "<leader><space>i", desc = "Show implementation", icon = "󰈇" },
2323
{ "<leader><space>r", desc = "Show references", icon = "󰈇" },
2424
{ "<leader>P", hidden = true },
25-
{ "<leader>S", desc = "Search & Replace (Flash)" },
25+
{ "<leader>S", desc = "Search & Replace (Flash)", icon = "" },
2626
{ "<leader>_", group = "Comments" },
2727
{ "<leader>w", desc = "Save", icon = "" },
2828
{ "<leader>q", desc = "Quit" },
@@ -35,32 +35,48 @@ return {
3535
{ "<leader>cp", desc = "Copilot Panel", icon = "" },
3636
{ "<leader>cr", desc = "Copy relative path", icon = "" },
3737
{ "<leader>f", group = "Finding & Format" },
38-
{ "<leader>fb", desc = "Buffers" },
39-
{ "<leader>ff", desc = "Files" },
40-
{ "<leader>fr", desc = "References" },
41-
{ "<leader>fd", desc = "Definitions" },
42-
{ "<leader>fg", desc = "Search (grep)" },
38+
{ "<leader>fb", desc = "Buffers", icon = "󰈯" },
39+
{ "<leader>ff", desc = "Files", icon = "󰈞" },
40+
{ "<leader>fG", desc = "Git Status", icon = "󰊢" },
41+
{ "<leader>fr", desc = "References", icon = "󰈇" },
42+
{ "<leader>fd", desc = "Definitions", icon = "󰈇" },
43+
{ "<leader>fg", desc = "Search (grep)", icon = "" },
4344
{ "<leader>fh", desc = "Help", icon = "󰋖" },
44-
{ "<leader>fm", group = "Format" },
45-
{ "<leader>ft", desc = "Todo Comments" },
46-
{ "<Leader>fz", group = "fzf" },
47-
{ "<Leader>fzl", group = "LSP" },
45+
{ "<leader>fm", group = "Format", icon = "󰉼" },
46+
{ "<leader>ft", desc = "Todo Comments", icon = "" },
47+
{ "<leader>fz", group = "fzf", icon = "" },
48+
{ "<leader>fzb", desc = "Buffers", icon = "󰈯" },
49+
{ "<leader>fzf", desc = "Frecency", icon = "󰋚" },
50+
{ "<leader>fzF", desc = "Files", icon = "󰈞" },
51+
{ "<leader>fzg", desc = "Live Grep", icon = "" },
52+
{ "<leader>fzG", desc = "Git Status", icon = "󰊢" },
53+
{ "<leader>fzk", desc = "Keymaps", icon = "󰌋" },
54+
{ "<leader>fzo", desc = "Old Files", icon = "󰋚" },
55+
{ "<leader>fzq", desc = "Quickfix", icon = "󰁨" },
56+
{ "<leader>fzr", desc = "Resume", icon = "" },
57+
{ "<leader>fzu", desc = "Undotree", icon = "󰕌" },
58+
{ "<leader>fzz", desc = "Global", icon = "󰈇" },
59+
{ "<leader>fzl", group = "LSP", icon = "" },
60+
{ "<leader>fzlc", desc = "Declarations", icon = "󰈇" },
61+
{ "<leader>fzlD", desc = "Definitions", icon = "󰈇" },
62+
{ "<leader>fzlr", desc = "References", icon = "󰈇" },
63+
{ "<leader>fzlt", desc = "Type Definitions", icon = "󰈇" },
4864
{ "<leader>fmt", desc = "Format [LSP]" },
4965
{ "<leader>fn", desc = "Notify" },
5066
{ "<leader>g", group = "Git" },
5167
{ "<leader>gL", desc = "LazyGit", icon = "" },
5268
{ "<leader>gR", desc = "Reset buffer", icon = "" },
5369
{ "<leader>gS", desc = "Stage buffer", icon = "" },
5470
{ "<leader>gU", desc = "Reset buffer index", icon = "" },
55-
{ "<leader>gb", desc = "Toggle Line Blame" },
71+
{ "<leader>gb", desc = "Toggle Line Blame", icon = "󰊢" },
5672
{ "<leader>gc", desc = "Commit", icon = "" },
5773
{ "<leader>gh", desc = "Line highlight", icon = "󰘤" },
58-
{ "<leader>gj", desc = "Next hunk", icon = "" },
59-
{ "<leader>gk", desc = "Previous hunk", icon = "" },
74+
{ "<leader>gj", desc = "Next hunk", icon = "󰒭" },
75+
{ "<leader>gk", desc = "Previous hunk", icon = "󰒮" },
6076
{ "<leader>gl", desc = "Toggle number highlight", icon = "󰘤" },
61-
{ "<leader>gp", desc = "Preview hunk", icon = "" },
77+
{ "<leader>gp", desc = "Preview hunk", icon = "󰆷" },
6278
{ "<leader>gr", desc = "Reset hunk", icon = "" },
63-
{ "<leader>gs", desc = "Stage hunk", icon = "" },
79+
{ "<leader>gs", desc = "Stage hunk", icon = "󰆓" },
6480
{ "<leader>gu", desc = "Undo stage hunk", icon = "" },
6581
{ "<leader>h", group = "Git signs" },
6682
{ "<leader>k", hidden = true },
@@ -77,17 +93,31 @@ return {
7793
{ "<leader>p", hidden = true },
7894
{ "<leader>r", group = "Relative line numbering", icon = "󰉻" },
7995
{ "<leader>rn", desc = "Relative line numbering", icon = "󰉻" },
80-
{ "<leader>s", desc = "Session, Source, and Split" },
96+
{ "<leader>s", desc = "Session, Source, and Split", icon = "󰆓" },
97+
{ "<leader>sh", desc = "Split Horizontal", icon = "󰝘" },
98+
{ "<leader>sp", desc = "Split Horizontal", icon = "󰝘" },
99+
{ "<leader>sv", desc = "Split Vertical", icon = "󰝗" },
100+
{ "<leader>sH", desc = "Move Split Left", icon = "" },
101+
{ "<leader>sJ", desc = "Move Split Down", icon = "" },
102+
{ "<leader>sK", desc = "Move Split Up", icon = "" },
103+
{ "<leader>sL", desc = "Move Split Right", icon = "" },
104+
{ "<leader>se", desc = "Equalize Splits", icon = "󰖯" },
105+
{ "<leader>sx", desc = "Close Split", icon = "󰅖" },
106+
{ "<leader>ss", desc = "Start/Stop Session", icon = "󰑋" },
107+
{ "<leader>sr", desc = "Restore Session", icon = "" },
108+
{ "<leader>sw", desc = "Swap With Next", icon = "󰒺" },
109+
{ "<leader>sr", desc = "Rotate Splits Clockwise", icon = "" },
110+
{ "<leader>sR", desc = "Rotate Splits Anti-Clockwise", icon = "" },
81111
{ "<leader>t", group = "Testing & Tree" },
82112
{ "<leader>tF", desc = "Neo-tree Filesystem", icon = "󰉓" },
83113
{ "<leader>tb", desc = "Neo-tree Buffers", icon = "󰉋" },
84114
{ "<leader>tf", desc = "Test file", icon = "󰈔" },
85115
{ "<leader>tg", desc = "Toggle Neo-tree", icon = "󰙅" },
86-
{ "<leader>tl", desc = "Test last" },
87-
{ "<leader>tn", desc = "Test nearest" },
116+
{ "<leader>tl", desc = "Test last", icon = "󰒭" },
117+
{ "<leader>tn", desc = "Test nearest", icon = "󰛣" },
88118
{ "<leader>ts", desc = "Test suite", icon = "󱞊" },
89119
{ "<leader>tt", desc = "Trouble", icon = "󰙅" },
90-
{ "<leader>tv", desc = "Test visit" },
120+
{ "<leader>tv", desc = "Test visit", icon = "󰆷" },
91121
{ "<leader>u", desc = "Undo tree", icon = "󰕌" },
92122
{ "<leader><space>5", desc = "Continue", icon = "" },
93123
{ "<leader><space>0", desc = "Step over", icon = "" },

0 commit comments

Comments
 (0)