An Interest In:
Web News this Week
- March 29, 2024
- March 28, 2024
- March 27, 2024
- March 26, 2024
- March 25, 2024
- March 24, 2024
- March 23, 2024
Nvim Remaps Like a Boss
I've slowly adding more and more lua functions into my neovim configuration,
and recently I noticed a pattern for a class of functions that reach out to run
shell commands that can be abstracted away.
Telegraph.nvim
Check out the project readme
for the most up to date details on the plugin itself.
Motivation
I want a simple way to make remaps into shell commands that can open new tmux
windows, popups, or just run a command with context from the editor.
For example I want to make remaps to do things like open the current file in lookatme.
# vim :terminalnnoremap <leader>s <cmd>Telegraph pipx run lookatme {filepath} --live-reload --style gruvbox-dark<cmd># tmux sessionnnoremap <leader><leader>s <cmd>lua require'telegraph'.telegraph({cmd='pipx run lookatme {filepath} --live-reload --style gruvbox-dark', how='tmux'})<CR># tmux popupnnoremap <leader><leader>S <cmd>lua require'telegraph'.telegraph({cmd='pipx run lookatme {filepath} --live-reload --style gruvbox-dark', how='tmux_popup'})<CR>
The main goal here is that remaps become one liners that can just be put
directly in my init.vim
without creating a whole new lua module for each
shell command I want to bind.
how
telegraph
takes in a how
argument to determine where to tun the command.j
term
(default) runs command in the built in terminaltmux
runs command in a new tmux session and joins it.tmux_popup
runs command in a tmux popup window.tmux_popup_session
runs command in a tmux session and displays it in a popupsubprocess
runs command in a subprocess
Format strings
The current set of format strings that can be used with telegraph. Placing
these in braces {}
within your command will get rendered into something with
context from the editor.
cword
- the current word under the cursorcWORD
- the current BIG Word under the cursorcline
- the current line under the cursorfilepath
- the filepath of the current filefilename
- the filename of the current fileparent
- the parent directory of the current filecurrent_session_name
- name of the current tmux sessioncwd
- the current working directory
Give it a
Check out the repo and give
it a star if its something that interests you.
Original Link: https://dev.to/waylonwalker/i-made-a-neovim-plugin-4pid
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To