LINUX.ORG.RU

Разворачивание окружения

 , , ,


0

0

я хочу окружение разворачивать типа:

в директории с проектом

$./.workspace.sh
#1 window
cd djangoexample;st -e /bin/bash -c "./manage.py runserver"

# 2 window 
cd djangoexample;st"

# 3 window
vim

И чтобы чилды(./manage.py runserver) не закрывались после С-с или завершения работы. Чтобы можно было в одном теге(тилинг вм) развернуть нужные мне вещи(запустить дебаг сервер, сделать соединение с дб и тд)


Ответ на: комментарий от Kroz

да есть уже в tmux. Есть даже с https://github.com/saysjonathan/dwm.tmux

Но там есть несколько проблем

  1. Как сделать подтверждение на закрытие window?
  2. Как перемещать окна между панелями?
SESSION="djangoexample"

if [[ ! -z $(tmux ls |grep ${SESSION}) ]]; then
	tmux a -t ${SESSION}
else
	# set up tmux
	tmux start-server

	# create a new tmux session, starting vim from a saved session in the new window
	tmux new-session -d -s $SESSION -n vim #"vim -S ~/.vim/sessions/kittybusiness"

	# 1st window
	tmux selectp -t 1 
	tmux send-keys "cd $dj/${SESSION};vim" C-m

	# 2st window
	tmux split-window -t :.0
	tmux swap-pane -s :.0 -t :.1
	tmux select-layout main-vertical
	HEIGHT=$(($(tmux display-message -p '#{pane_height}')))
	tmux resize-pane -t :.0 -x $(( ${HEIGHT} * 2 ))
	tmux send-keys "cd $dj/${SESSION}/${SESSION};clear;./manage.py runserver 0.0.0.0:8000" C-m

	# 3rd window
	tmux split-window -t :.0
	tmux swap-pane -s :.0 -t :.1
	tmux select-layout main-vertical
	HEIGHT=$(($(tmux display-message -p '#{pane_height}')))
	tmux resize-pane -t :.0 -x $(( ${HEIGHT} * 2 ))
	tmux send-keys "cd $dj/${SESSION}/${SESSION};clear" C-m

	# swap 3 window to 1
	tmux select-pane -t 2
	tmux swap-pane -s :. -t :.0 \; select-pane -t :.0

	# Finished setup, attach to the tmux SESSION!
	tmux attach-session -t $SESSION
fi

Думал, может ну его в болото, этот tmux? Может проще терминалы пооткрывать на нужных на одном-двух тегах(пользуюсь dwm). Или на одном теге сделать и применить раскладку https://dwm.suckless.org/patches/fibonacci/

Xwo
() автор топика
Последнее исправление: Xwo (всего исправлений: 2)
Ответ на: комментарий от Xwo

Как сделать подтверждение на закрытие window?

https://unix.stackexchange.com/questions/96123/how-to-add-tmux-confirm-prompt...

Как перемещать окна между панелями?

У меня по Alt+Ctrl+U/I

# Move pane to the next/prev window
bind-key -n M-C-U join-pane -t :-1
bind-key -n M-C-I join-pane -t :+1

Думал, может ну его в болото, этот tmux?

Ты с ним разберись разочек. Его можно приручить.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 2)
Ответ на: комментарий от Kroz

confirm-prompt не поддерживает subsequent command. Это значит, что надо как-то confirm-prompt одной командой засунуть

  1 # Kill pane
  0 bind -n M-c kill-pane -t :. \;\
  1 →       select-layout main-vertical \;\
  2 →       run "tmux resize-pane -t :.0 -x \"$(echo \"#{window_width}/1.8/1\" | bc)\"" \;\
  3 →       select-pane -t :.+

Но как это сделать хз, я пробовал и так и эдак - безрезультатно. А если не подтверждать закрытие, на M-c то и дело будут закрываться окна случайным нажатием. Не продакшен решение это :) А unbind M-c не работает в tmux

# Move pane to the next/prev window bind-key -n M-C-U join-pane -t :-1 bind-key -n M-C-I join-pane -t :+1

Спасибо, попробую

Xwo
() автор топика
Последнее исправление: Xwo (всего исправлений: 1)
Ответ на: комментарий от Xwo

Слушай, но с подтверждением же - две кнопки. Так сделай не bind -n , а через префикс. Те же две кнопки (ну, ладно, другие, но всё равно две).

А я вообще стараюсь этим не пользоваться. Забиндил себе F12=exit в inputrc, мне хватает.

Kroz ★★★★★
()
Ответ на: комментарий от azelipupenko

Надо какой-то скрипт наваять для Tampermonkey, чтобы когда на лоре сообщение появлялось, в котором упоминается слово Emacs, - сразу отвечал человеку: - "ПОШЕЛ В ЖО#У!!!"

Xwo
() автор топика
Последнее исправление: Xwo (всего исправлений: 2)
Ответ на: комментарий от azelipupenko

Не сомневайся. Хотя, может ты норм идею предлагаешь. Заюзать Имакс, чтобы консольки открывал внутри себя и запускал отдельный терминал, в котором бы запускался vim

Xwo
() автор топика
Ответ на: комментарий от azelipupenko

покажи свой конфиг emacs'a, умник. Более чем уверен, что там конфиг на 10 строк. Я знаю Имаксеров, видел много конфигов. Вы на языке все такие умные, а конфиги всегда дефолтные. Что как бы намекает. Нашел только один вменяемый конфиг

http://pages.sachachua.com/.emacs.d/Sacha.html

На нее все Имаксеры молятся.

Xwo
() автор топика
Ответ на: комментарий от Xwo

Не сомневайся.

Ну хорошо. Если у тебя хватит скилла для Tampermonkey, то нет сомнений, что освоив Emacs Lisp ты сможешь такого же бота (который отвечает всякому, упомянувшему Emacs) легко написать и на Emacs Lisp. Так что тебе точно нужен Emacs.

Заюзать Имакс, чтобы консольки открывал внутри себя и запускал отдельный терминал, в котором бы запускался vim

Я предлагаю отказаться от Vim в пользу Emacs. В Vim нет такого мощного языка, как Emacs Lisp, и близко. Так что тебе не помешает Emacs.

azelipupenko
()
Ответ на: комментарий от Xwo

покажи свой конфиг emacs'a, умник.

Ну да, прям вот сейчас взял и показал.

Более чем уверен, что там конфиг на 10 строк.

Ты не прав.

Я знаю Имаксеров, видел много конфигов.

Ну вот видишь, даже знакомые у тебя знают Emacs. Учи.

azelipupenko
()
Ответ на: комментарий от azelipupenko
  1. нет смысла учить яп, который негде применить, кроме как в Имакс
  2. как инструмент для разработки(а именно это и только это мне необходимо) - мне Имакс не понравился. У него именно в этом направлении много проблем. Начиная от производительности, заканчивая отсутствием вменяемых плагинов, которые бы работали должным образом и из которых можно было бы построить окружение, в котором мне было бы комфортно. И да, эксепшены лисповские я увидел, ага
  3. редактирование текста в Имакс ужасное. Если бы это было не так, не появился бы evil
  4. возможно, если бы я не юзал вим и не понял как удобно работать с текстом, я бы юзал имакс и от души радовался его программируемости
Xwo
() автор топика
Ответ на: комментарий от Xwo

нет смысла учить яп, который негде применить, кроме как в Имакс

Выучив Emacs Lisp, Emacs будет основным инструментом для повседневной работы. Ещё вариант - Visual Studio Code. Там JavaScript - выучи его.

Начиная от производительности, заканчивая отсутствием вменяемых плагинов

Плагины появляются не из другого измерения. Их пишут люди. Вот и напиши. А то все хотят готовенькое, да ещё и бесплатно. Как не стыдно?

И да, эксепшены лисповские я увидел, ага

И да, лисповские сигналы (нет там исключений) не раскручивают стек, как в том же цепепе, а позволяют действительно восстановиться, в отличии от. Как раз лиспу в этом равных нет.

редактирование текста в Имакс ужасное. Если бы это было не так, не появился бы evil

Лол. Смешно. Ведь так можно сказать про любой редактор или IDE, кроме Vim. Потому что во многих редакторах и в любых полноценных IDE (а не в опенсорсных наколеночных поделках), включая IDEA и VS, всегда можно включить режим Vim. А редактирование в Emacs шикарное.

возможно, если бы я не юзал вим и не понял как удобно работать с текстом, я бы юзал имакс и от души радовался его программируемости

Ну так освой Emacs и радуйся от души. Заодно и решишь задачу, которую ты поднял в этой теме, ограничившись Emacs.

azelipupenko
()
Ответ на: комментарий от azelipupenko

Когда вообще не пользовался программируемым редактором(хоть vim, хоть emacs) никогда в своей жизни, тогда можно прыгать из одного в другой - хоть еженедельно. А когда посидел в одном из них некоторое время - сделать переход, вопрос не одного месяца. Не в одном из них нет такой киллер фичи, из-за которого стоит менять один на другой. Все вопросы организации работы решаемы и в одном и в другом.

Xwo
() автор топика
Ответ на: комментарий от Xwo

сообщение появлялось, в котором упоминается слово Emacs, - сразу отвечал человеку: - «ПОШЕЛ В ЖО#У!!!»

M-x doctor

ugoday ★★★★★
()
Ответ на: комментарий от Xwo

заканчивая отсутствием вменяемых плагинов,

Мы всё ещё говорим о редакторе с более чем четырьмя тысячами плагинов?

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Мы говорим о том, что есть задача, оглашенная в топике и советовать сменить инструмент, с помощью которого осуществляется разработка, недопустимо.

Xwo
() автор топика

Дядя, ты я смотрю помимо вима еще и с русским не в ладах. Это называется развертыванием, а не разворачиванием. Ванька с села.

StillSteal
()
Ответ на: комментарий от Xwo

Мы говорим о том, что есть задача, оглашенная в топике и советовать сменить инструмент, с помощью которого осуществляется разработка, недопустимо.

Желаю удачи и терпения в решении задачи неподходящими инструментами.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Вне Имакса, конечно же, решить эту задачу невозможно. Да и вообще, любая задача, которая связана с компьютерной инженерией, окроме как в Имаксе не решается. А если решается, то решение диаметрально противоположно понятию «эффективно».

Xwo
() автор топика
Последнее исправление: Xwo (всего исправлений: 1)
Ответ на: комментарий от Xwo

Ох, ну ты явно или уже маразматик или я не знаю. Ты где-то увидел, что я написал, что нет такого слова разворачивание? Но ты идиот полнейший раз не различаешь «развертывание» и «разворачивание» в контесте твоей проблемы. А то что ты приводишь данные ссылки как раз и указывает на то, что ты не видишь между этими словами разницы.

StillSteal
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.