Skip to content

Conversation

@garbas
Copy link
Owner

@garbas garbas commented Dec 29, 2025

Summary

This PR improves Neovim terminal and tab management with three key enhancements:

1. Vertical Split Terminals

  • Terminals (snacks terminal and claude-code) now open on the right side in vertical split (40% width)
  • Previously used floating windows that covered the entire screen
  • Better workflow for keeping code visible while using terminals

2. Terminal Mode Navigation

  • Added <Esc><Esc> to exit terminal mode (works with vim mode in zsh/claude-code)
  • Added <C-w>h/j/k/l to navigate windows directly from terminal mode
  • Solves the confusion when using vim mode in shell (single Esc exits shell vim, double Esc exits terminal mode)

3. Tab Management with Custom Names

  • Integrated tabby.nvim for custom tab names with :TabRename <name>
  • Added telescope-tabs for fuzzy searching/switching between tabs
  • Tab names persist across sessions
  • New keybindings:
    • <leader>tr - Rename current tab
    • <leader>bt - Browse/switch tabs with Telescope

Test Plan

  • Verify terminals open on right side in vertical split
  • Test <Esc><Esc> exits terminal mode
  • Test <C-w>h/j/k/l navigation from terminal
  • Test tab renaming with <leader>tr
  • Test tab switching with <leader>bt
  • Verify all pre-commit hooks pass
  • Build succeeds with darwin-rebuild

Changes

  • Modified homeConfigurations/profiles/common_neovim.nix: Terminal config, terminal keybindings, tabby/telescope-tabs setup
  • Modified flake.nix: Added telescope-tabs as custom plugin, disabled doCheck for runtime-only dependencies
  • Updated flake.lock: Added telescope-tabs input

@garbas garbas enabled auto-merge (rebase) December 29, 2025 03:36
Configure both snacks terminal and claude-code terminal to open on the
right side in vertical split (40% width) instead of floating windows.

- snacks terminal: add win.position="right" and win.width=0.4
- claude-code: change from floating to position="vertical" with split_ratio=0.4
Add terminal mode keybindings that don't conflict with vim mode in zsh
and Claude Code CLI.

New keybindings:
- <Esc><Esc>: Exit terminal mode (double escape)
- <C-w>h/j/k/l: Navigate windows directly from terminal mode
- <C-w>: Access all window commands from terminal

This solves the issue where single Esc exits shell vim mode but leaves
user stuck in Neovim terminal mode, causing confusion.
…ement

Add comprehensive tab management with custom tab names and telescope
integration for fuzzy searching/switching between tabs.

Changes:
- Add tabby.nvim for custom tab names and beautiful tabline
- Add telescope-tabs as custom plugin for tab browsing
- Configure telescope-tabs to display tab names from tabby.nvim
- Add 'globals' to sessionoptions to persist tab names
- Disable doCheck for telescope-tabs (requires telescope at runtime)

New keybindings:
- <leader>tr: Rename current tab
- <leader>bt: Browse/switch tabs with Telescope
- :TabRename <name>: Direct command to rename tab

Tab names now persist across sessions and can be searched with fuzzy
finding via Telescope.
@garbas garbas force-pushed the neovim-terminal-vertical branch from 61d4451 to c2357bf Compare December 29, 2025 03:43
@garbas garbas merged commit 7f7f8f5 into main Dec 29, 2025
2 checks passed
@garbas garbas deleted the neovim-terminal-vertical branch December 29, 2025 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants