Skip to content

Send nvim cursor_line in current buffer as a command to a configurable tmux pane

Notifications You must be signed in to change notification settings

mokanfar/slimux.nvim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 

Repository files navigation

slimux.nvim

Send cursor_line from the current Neovim buffer to a configurable tmux pane.

Example setup (and installation)

Via lazy:

require("lazy").setup({
  {
    'mokanfar/slimux.nvim',
    config = function()
      local slimux = require('slimux')
      slimux.setup({
        target_socket = slimux.get_tmux_socket(),

        -- This is targetting tmux window 2 and will send command there
        target_pane = string.format('%s.2', slimux.get_tmux_window()),
      })
      vim.keymap.set('n', '<leader>r', ':lua require("slimux").capture_current_line_text()<CR>',
        { desc = 'Send cursor_line as cmd to a tmux window' })
    end
  }
})

The target pane that text is sent to follows the standard send-keys format, so e.g. the second pane in the first window would be denoted as 0.1. This target pane can be configured initially in the setup function shown above, but also on the fly via the provided configure_target_socket function, like in the below snippet:

:lua require('slimux').configure_target_pane('0.1')

Additionally, some effort is taken to automatically escape input to send it to its destination intact. The array of escaped strings can be overridden in the above setup function, with the default setting being the below:

escaped_strings = { '\\', ';', '"', '$', '\'' }

For more detail on specifying tmux command targets, check out the documentation included with the project: https://github.com/tmux/tmux/wiki/Advanced-Use#command-targets

Also, a reminder that pane numbers can be shown via prefix + q, which in a standard install will be C-b + q.

About

Send nvim cursor_line in current buffer as a command to a configurable tmux pane

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%