331 votes

Comment mettre en place tmux de sorte qu'il démarre avec windows ouvert?

Comment mettre en place tmux de sorte qu'il démarre avec windows ouvert?

310voto

Amjith Points 6850

Vous pouvez écrire un petit script shell qui lance tmux avec les programmes requis. J'ai le texte suivant dans un script shell que j'appelle dev-tmux. Un environnement de dev:

#!/bin/sh 
tmux new-session -d 'vim'
tmux split-window -v 'ipython'
tmux split-window -h
tmux new-window 'mutt'
tmux -2 attach-session -d 

Donc, chaque fois que je veux lancer mon préféré dev environemnt que je peux le faire

$ dev-tmux 

108voto

jasonwryan Points 1843

Vous pouvez vous servir de différentes sessions à partir de votre .tmux.conf comme suit:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

Et puis le format des sessions que vous avez besoin de:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

Ce serait ouvrir 2 fenêtres, dont le second serait nommé foo/bar et serait divisé verticalement en deux (50%) avec foo cours d'exécution au-dessus de la barre. L'accent serait dans la fenêtre 2 (foo/bar), volet supérieur (foo).

Vous pouvez ensuite commencer votre préféré session tmux (dans ce cas, session1) avec le PréfixeMajs

59voto

Hamish Downer Points 4086

Utilisation tmuxinator - il permet d'avoir plusieurs sessions configurées, et vous pouvez choisir celui qui à lancer à un moment donné. Vous pouvez lancer les commandes, en particulier, fenêtres ou volets et de donner des titres à windows. Voici un exemple d'utilisation avec le développement de Django applications.

Exemple de fichier de configuration:

# ~/.tmuxinator/project_name.yml
# you can make as many tabs as you wish...

project_name: Tmuxinator
project_root: ~/code/rails_project
socket_name: foo # Not needed. Remove to use default socket
rvm: 1.9.2@rails_project
pre: sudo /etc/rc.d/mysqld start
tabs:
  - editor:
      layout: main-vertical
      panes:
        - vim
        - #empty, will just run plain bash
        - top
  - shell: git pull
  - database: rails db
  - server: rails s
  - logs: tail -f logs/development.log
  - console: rails c
  - capistrano:
  - server: ssh me@myhost

Voir le fichier lisez-moi du lien ci-dessus pour une explication complète.

20voto

m_majeres Points 21
:~$ tmux new-session "tmux source-file ~/session1"  

session1

neww
split-window -v 'ipython'  
split-window -h  
new-window 'mutt'  

créer un alias .bashrc

:~$ echo `alias tmux_s1='tmux new-session "tmux source-file ~/session1"'` >>~/.bashrc  
:~$ . ~/.bashrc  
:~$ tmux_session1  

16voto

locojay Points 2276

ont un look @ https://github.com/remiprev/teamocil

vous pouvez spécifier votre structure à l'aide de YAML

windows:
  - name: sample-window
    splits:
      - cmd: vim
      - cmd:
        - ipython
        width: 50
      - cmd:
        height: 25

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X