https://github.com/fielding/vim-chunkwm-navigator
This plugin will allow you to navigate seamlessly between Vim/Neovim splits and native mac os windows managed by chunkwm using a consistent set of hotkeys.
https://github.com/fielding/vim-chunkwm-navigator
chunkwm vim
Last synced: about 1 year ago
JSON representation
This plugin will allow you to navigate seamlessly between Vim/Neovim splits and native mac os windows managed by chunkwm using a consistent set of hotkeys.
- Host: GitHub
- URL: https://github.com/fielding/vim-chunkwm-navigator
- Owner: fielding
- Created: 2017-12-21T23:38:06.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-11-07T04:12:45.000Z (over 7 years ago)
- Last Synced: 2025-04-30T22:15:05.290Z (about 1 year ago)
- Topics: chunkwm, vim
- Language: Vim script
- Size: 7.81 KB
- Stars: 12
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Vim Chunkwm Navigator
==================
This plugin will allow you to navigate seamlessly between Vim/Neovim splits and
native mac os windows managed by chunkwm using a consistent set of hotkeys. The
secret sauce that allows this to work is the combination of [Åsmund Vikane][]'s
[chunkwm][], a tiling window manager, and a hotkey daemon(e.g. [khd][] or
[skhd][]).
This is **oh so heavily** based off [Chris Toomey][]'s [vim-tmux-navigator][].
For educational purposes I have structured the code like [vim-tmux-navigator][]
due to my lack of vimscript experience. I have taken the time to implement
everything as if it were from scratch in a progressive manner (as the need
presented itself) for my educational benefit. In the end, I hope to have
scratched my own itch, while deepening my vim knownledge.
**IMPORTANT: This requires [chunkwm][], or similar window manager and your
hacking on supplied scripts, and a third party hotkey daemon(e.g. [khd][] or
[skhd][])**
Usage
-----
This plugin provides the following mappings which allow you to move between
Vim/Neovim pane splits and native macos windows seamlessly.
- `` => Left
- `` => Down
- `` => Up
- `` => Right
**Note** - Even if you use a modal hotkey daemon, you can bind these to the
default mode.
If you want to use alternate key mappings, see the [configuration section
below][].
Installation
------------
### Vim/Neovim
If you don't have a preferred installation method, I recommend using [vim-plug][].
Assuming you have vim-plug installed and configured, the following steps will
install the plugin:
Add the following line to your `.vimrc` or `init.vim` file
``` vim
Plug 'fielding/vim-chunkwm-navigator'
```
Then run
```
:PlugInstall
```
### readline
`.inputrc`
```
# allow chunkwm to pass through ctrl-h/j/k/l so that vim can switch panes without triggering shell escape characters
'"\C-l":'
'"\C-h":'
'"\C-j":'
'"\C-k":'
```
### Hotkey Daemon or other third party key mapping method
To configure the chunkw side of this customization we must use a third party
hotkey daemon(e.g. [khd][] or [skhd][]). I will try include configurations for
any submitted by others.
#### skhd
For [skhd][] edit any existing bindings to `ctrl - h`, `ctrl - j`, `ctrl -
k`, and `ctrl - l` in `~/.skhdrc` to match the following snippet:
``` skhdrc
ctrl - h -> : if [[ "$(chunkc tiling::query --window name)" != *"vim"* ]]; then chunkc tiling::window --focus west; fi
ctrl - l -> : if [[ "$(chunkc tiling::query --window name)" != *"vim"* ]]; then chunkc tiling::window --focus west; fi
ctrl - j -> : if [[ "$(chunkc tiling::query --window name)" != *"vim"* ]]; then chunkc tiling::window --focus west; fi
ctrl - k -> : if [[ "$(chunkc tiling::query --window name)" != *"vim"* ]]; then chunkc tiling::window --focus west; fi
```
TODO
----
- [ ] Add `previous` to the list of binds/focus change options
- [ ] Correct how it handles the wrapping around from window back in to vim/nvim
- [ ] README: Finish!
- [ ] add confguraton section
- [ ] ~~add khd configuration~~
- [ ] add tidbit about terminal title
[Chris Toomey]: https://github.com/christoomey
[vim-tmux-navigator]: https://github.com/christoomey/vim-tmux-navigator
[Åsmund Vikane]: https://github.com/koekeishiya
[chunkwm]: https://github.com/koekeishiya/chunkwm
[khd]:https://github.com/koekeishiya/khd
[skhd]: https://github.com/koekeishiya/skhd
[vim-plug]: https://github.com/junegunn/vim-plug