This repo contains an opinionated implementation of Tmux and Neovim. The intention of this repo was for testing new plugins and setups in isolation. Setup not intended for use or reference of a good approach :).
Tmux command prefix: C-a
Review Key Bindings for a list of common and custom key bindings made available in this config.
Review bindings:
<leader>
: the bound leader key (ctrl-a
)
Binding | Description |
---|---|
ctrl <leader> $ |
Name a session |
ctrl <leader> s |
Change session |
`ctrl | ` |
ctrl <leader> - |
Add horizontal split |
ctrl <leader> z |
Focus on highlighted split |
ctrl <leader> , |
Name tab |
ctrl <leader> c |
Add new tab |
shift left |
Switch to next left tab |
shift right |
Switch to next right tab |
ctrl shift left |
move tab to the left |
ctrl shift right |
Move tab to the right |
ctrl <leader> = |
Show buffers |
ctrl <leader> f |
Select and open a file listed as a path on active screen |
ctrl <leader> u |
Select and open a URL listed on the active screen |
ctrl <leader> shift T |
Plugin: tmux-pane-focus: Show options menu |
Binding | Description |
---|---|
ctrl v |
Highlight current line |
shift v |
Enter visual mode and highlight area |
g c |
Toggle comment |
ctrl + |
Increment number |
ctrl - |
Decrement number |
Command | Description |
---|---|
:Tabularize /<char> |
add tabs based on inputted character for alignment |
:StripWhitespace |
Strips tailing whitespace |
:Mason |
Show installed linters and LSP servers |
:WhichKey |
Show keyboard shortcuts, shows when starting commands |
Plugins installed via TPM as part of docker build process.
Plugin | Description |
---|---|
tpm | Tmux Plugin Manager |
tmux-sensible | basic tmux settings everyone can agree on |
tmux-resurrect | Persists tmux environment across system restarts. |
tmux-continuum | Continuous saving of tmux environment. Automatic restore when tmux is started. Automatic tmux start when computer is turned on. |
tmux-open | Tmux key bindings for quick opening of a highlighted file or URL |
tmux-fpp | Quickly open any path on your terminal |
tmux-yank | Copying to system clipboard |
tmux-fzf-session-switch (Deactivated) | Switch session using FZF popup |
tmux-pane-focus | Pane focus |
Neovim config built on top of LazyVim template utilising the modular framework for improved readability.
Kickstart installs and configures a selection of standard plugins.
Custom plugins added by adding a <plugin>.lua
file to the ./config/nvim/lua/custom/plugins/
.
Plugin | Description |
---|---|
better-whitespace.lua | Highlight and remove trailing whitespaces |
colorizer.lua | Colour highlighter |
editorconfig.lua | Editorconfig support |
focus.lua | Pane select focus resize |
fzf.lua | FZF support |
go.lua | GO support |
ident-blankline.lua | Indentation guides |
jqx.lua | JQ support |
lastplace.lua | Open files with cursor in place where file closed |
null-ls.lua | ARCHIVED: Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. |
rainbow-delimiters.lua | Rainbow parentheses |
tabular.lua | Reformat text by tabs |
trouble.lua | A pretty list for showing diagnostics, references, telescope results, quickfix and location lists to help you solve all the trouble your code is causing. |
ts-autotag.lua | Use treesitter to autoclose and autorename html tag |
undotree.lua | Undotree visualizes the undo history and makes it easy to browse and switch between different undo branches |
Plugins to review:
Plugin | Description |
---|---|
guihua.lua | Guihua: A Lua Gui and util library for nvim plugins |
dial.lua | Increment/Decrement different types, still in dev |
octo.lua | GitHub support. Looking to show PR comments in vim |
Custom configuration overriding default kickstart and custom plugins.
Change | Local Path | Original Src |
---|---|---|
Changes code complete to use enter | ./config/nvim/lua/kickstart/plugins/cmp.lua |
Default |
Installed via Treesitter and Mason plugins installed as part of default kickstart config.
Testing setup based on running stack within Docker container for isolation and experimentation.
Build local container with default latest
tag:
docker-compose build
# docker build -t test-nvim-tmux -f build/Dockerfile .
docker-compose run -it tmux-nvim
# docker run -it test-nvim-tmux:latest
Run tmux
to start new tmux session.
tmux
Start vim:
vim
Currently base image using latest Python image as tool chain requires it.
Software | Description |
---|---|
Tmux | wget: Terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal. |
Neovim | wget: hyperextensible Vim-based text editor |
Bison | apt: dependency for nvim build |
Git | pre-installed on docker image: Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. |
Python | pre-installed on docker image: Python interpreter |
FZF | apt: A command-line fuzzy findeR |
Ripgrep | apt: ripgrep recursively searches directories for a regex pattern while respecting your gitignore |
NodeJS | apt: required for installing linters |
Vale | wget: A markup-aware linter for prose built with speed and extensibility in mind. |