2016-07-12 3 views
2

Моя любимая среда питон Developement является:Tmux разделить окно и активировать питон virtualenv

  • Один большой левый сковорода для Vim
  • Два маленьких кастрюль справа для интерактивных консолей

Каждый пан shoud запускает python virtualenv (используя virtualenvwrapper). Так вот список команд, которые я должен ввести для настройки моего окружения:

➜ ~ workon some_env 
➜ ~ tmux splitw -h -l90 
➜ ~ workon some_env 
➜ ~ tmux splitw -v -p50 
➜ ~ workon some_env 

Ввод этих команд в сценарии и снабжаем файл будет, к сожалению, запустить workon some_env три раза на той же сковороде, а не один раз на каждом поддоне.

Довольно просто, но довольно скучно печатать каждый раз, когда я хочу настроить рабочую среду.

я связан ярлык, чтобы разделить окно correcty:

bind a source-file ~/.config/tmux/dev-session 

Этот файл dev-session содержит:

splitw -h -l90 
splitw -v -p50 

Однако, я не могу автоматически запускать workon some_env на каждом поддоне. Я всячески менял проблему, я просто не могу заставить ее работать.

splitw "workon some_env" 
# Exits immediately as `workon` function terminates 

splitw "echo 'workon some_env' | source /dev/stdin" 
# Exits immediately as `source` terminates 

splitw "workon_args=some_env zsh -f .some_custom_zshrc" 
# Where .some_custom_zshrc contains: 
# workon $workon_args 
# Does not work since running `workon some_env` from a script 
# has no effect on the script caller 

splitw "zsh -c 'workon some_env' -i" 
# `workon some_env` seems to be executed in a separate environment 
# and the virtualenv is no more activated within the interactive shell 

Я пробовал еще более экзотические вещи, но здесь я застрял.

ответ

4

Сначала создайте все свои стекла.

Используйте клавиши отправки, чтобы записать свои команды в указанную область и выполнить их с помощью C-m. Например:

tmux send-keys -t development:0.1 "workon some_env" C-m

Если у вас есть три области, то второй и третий будет SESSION_NAME:0.1 и SESSION_NAME:0.2

Вот пример моей конфигурации:

tmux new-session -s development -n editor -d 

tmux split-window -h -t development 

tmux select-pane -t development:0.1 

tmux split-window -v -t development 

tmux send-keys -t development:0.0 "emacs -nw" C-m 

tmux send-keys -t development:0.0 f8 

tmux send-keys -t development:0.1 "ptpython" C-m 

This book имеет отличная глава по настройке сред с использованием Tmux.