Giter VIP home page Giter VIP logo

tmuxdir.nvim's Introduction

Python application

tmuxidir is a tmux session workspace plugin for nvim.

tmuxdirlogo

Deprecation Notice

tmuxdir.nvim is no longer actively maintained, you should use telescope-tmuxdir instead.

It turns out that denite.nvim is no longer actively maintained (and developed), so I've replaced it with telescope, which has a strong and active ecosystem of plugins.

tmuxdir workflow

  • You can manage tmux sessions and projects from nvim.
  • A project directory is identified with a root marker (folder or file) in a set of base directories (e.g.,~/repos/).
  • Each project is mapped to a tmux session, so a tmux session acts as a workspace.
  • You can have additional tmux sessions mapped to the same project if you want.

Features

  • Denite source tmux_session for tmux sessions.
  • Denite source tmux_dir for tmux project directories.
  • Any folder can also be statically bookmarked as a project TmuxdirAdd(dir).
  • Automatically discover new projects once a root marker is found.

Screencast

  • :Denite tmux_session and :Denite tmux_dir

tmuxdir_final2_cropped.gif

Installation

Note: tmuxdir requires denite.nvim, pynvim, Neovim 0.3+ and Python3.6+

  • If you use dein:
call dein#add('viniarck/tmuxdir.nvim')
call dein#add('Shougo/denite.nvim')
  • If you use vim-plug:
Plug 'viniarck/tmuxdir.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'Shougo/denite.nvim'

TLDR basic config

let g:tmuxdir_base_dirs = ['~/repos', '~/projects', '~/src'] " Set of base directories to look for your projects

let g:tmuxdir_root_markers = ['.git'] " root markers to identify projects

For more information, key bindings, and available functions, check doc/tmuxdir.txt out.

How to use

  • Tmux sessions:
:Denite tmux_session
  • Tmux project directories:
:Denite tmux_dir

Docs / Release Notes

tmuxdir.txt

tmuxdir.nvim's People

Contributors

viniarck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

adelarsq

tmuxdir.nvim's Issues

Add support for allowing multiple tmux sessions to be mapped to the same project

Use case:

As I user, I'd like to map multiple tmux sessions to the same project, currently it's one-to-one. Multiple session for the same project allow you to have different workspace views of the project at the tmux-session level, so you could for example have one tmux session just for running the project, using the terminal, running tests, and so on, and then another tmux session where you primarily code, I think managing all of this with tmux sessions are easier than managing tmux windows or nvim tabs. This is an additive change, so the existing one-to-one behavior will still be the default one.

Add docs

Add more verbose docs for nvim/vim to explain the functions and configurations

Fix duplicated entries

Since there are multiple configuration options, the entries should be unique, regardless of their origin source (configuration or auto discovery).

Drop vim support

I'll have to drop support for vim because of the dependencies required aren't being maintained anymore and most users of this plugin use nvim. That will simplify the maintenance of this project and to keep the existing quality. So, if you want to use this plugin with vim, please use the version 1.1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.