Как открыть несколько Терминальных Вкладок и открытых файлов в каталоге изменения и Vim?

Я задаю этот вопрос, потому что я попробовал много решений, которые я нашел, и они все не работали:

  • gnome-terminal --save-config=... результаты по ошибке, что эта опция не более возможна
  • gnome-terminal --tab -- 'vim ~/Files/file.txt' для создания сценария оболочки приводит к ошибке, моя система находится на немецком языке, но это, кажется, похоже There was an error creating the child process for this terminal Failed to execute child process "vim ~/Files/file.txt" (No such file or directory) и делает только использование просто vim без файла для открытия работ
  • использование менеджера сеансов просто открывает Terminal автоматически, но без любых вкладок
  • и gnome-terminal --tab -- 'cd ~/Files/' не работает также (ошибка как та выше)

Версия # GNOME Terminal 3.28.2 using VTE 0.52.2 +GNUTLS -PCRE2. Возможно, существуют ошибки в моих способах решить его, или Вы знаете другого (лучшее) альтернатива?

Спасибо за помощь!

3
задан 20 January 2019 в 15:57

2 ответа

Самое близкое я могу найти это, сделало бы, это включает создание нескольких сценариев. gnome-terminal изменился за эти годы и -x и --command опции были в большой степени удержаны от использования. Ваш лучший выбор состоит в том, чтобы создать профили для каждой из вкладок, которые Вы хотите выполнить и использовать:

gnome-terminal --tab-with-profile=Something1 --tab-with-profile=Something2

Если Вы используете материал как ~ или * в Ваших командах вероятно, что они не будут оценены, так как это - на самом деле задание оболочки (удар) тогда как gnome-terminal, таким образом, это могло бы помочь создать фактический сценарий где-нибудь и сказать gnome-terminal использовать это.

1
ответ дан 1 December 2019 в 17:26

Скрипт открывает новые вкладки:

  1. сохраняет в pathtabs.list список (foo-test) путей к новым вкладкам терминала;
  2. создает новый script autotab.sh в xdotool-ФОРМАТИТЬ любой список путей, добавив controlshiftt ярлыки и cds для команд;
  3. autotab.sh полезен для формата xdotool <любой-список-путей>;
  4. использование: autotab.sh <любой-список-из -paths>;
  5. создает foo_* тестовые каталоги для pathtabs.list;
  6. запускает ./autotab.sh pathtabs.list и сохраняет вывод в новый скрипт maketabs.sh
  7. maketabs.sh полезен для открытия того же набора вкладок/путей из исходного pathtabs.list;

. ..и запускает команды:

  1. сохраняет в pathncommtabs.list список (foo-test) путей и команд для запуска в новых вкладках терминала;
  2. создает новый скрипт autopctab.sh to xdotool-ФОРМАТИРОВАНИЕ любого списка путей и команд, добавление controlshiftt ярлыков, ; и cd s для команд;
  3. autopctab.sh полезен для xdotool формата <список-путей-и-команд> (см. pathncommtabs .list);
  4. использование: autopctab.sh <список-путей-и-команд>; (см. pathncommtabs.list)
  5. запускает ./autopctab.sh pathncommtabs.list и сохраняет список команд в новый скрипт makepctabs.sh
  6. makepctabs.sh полезно открыть тот же набор вкладок/путей/команд из исходного pathncommtabs.list;
#open-several-tabs-with-xdotool-slowly-and-easily
#!/bin/bash
#pathtabs.list
if [ ! -f ~/pathtabs.list ]; then
echo ~/foo_00 > pathtabs.list
echo ~/foo_00/foo_00_1 >> pathtabs.list
echo ~/foo_00/foo_00_2 >> pathtabs.list
echo ~/foo_00/foo_00_2/foo_00_2_1 >> pathtabs.list
fi
echo 'pathtabs.list: has a list of paths for the new tabs'

#mkdirs
if [ ! -d ~/foo_00/ ]; then
mkdir foo_00
mkdir foo_00/foo_00_1
mkdir foo_00/foo_00_2
mkdir foo_00/foo_00_2/foo_00_2_1
fi
echo 'mkdirs: testing foo_*' 

##commtabs.list
if [ ! -f ~/commtabs.list ]; then
echo nano newfile1.txt > commtabs.list
echo nano newfile2.txt >> commtabs.list
echo nano newfile3.txt >> commtabs.list
echo nano newfile4.txt >> commtabs.list
fi
echo 'commtabs.list: has a list of commands to run on the new tabs'

#pathtabs.list+commtabs.list+options
if [ ! -f ~/pathncommtabs.list ]; then
cat pathtabs.list |sed 's/.*/cd &;/'|sed '1s/^/c+s+t;/'|\
paste - commtabs.list|tr -d '\t' |sed '$!s/$/;c+s+t/' > pathncommtabs.list
fi
echo 'pathncommtabs.list: integrates pathtabs.list+commtabs.list+cd+;+(new-tab-tokens)'

#autopctab.sh <anypathncommtabs.list>
if [ ! -f ~/autopctab.sh ]; then
echo '#!/bin/bash' > autopctab.sh
echo 'cat $1| sed '\''s/ /#/g'\''| sed '\''s/\(.\)/\1 /g'\''|sed '\''s/#/space/g'\''|\
    sed '\''s/~/asciitilde/g'\''|sed '\''s/_/underscore/g'\''|sed '\''s/c + s + t/control+shift+t/g'\''|\
    sed '\''s/\//slash/g'\''|sed '\''s/\./period/g'\''|sed '\''s/;/Return/g'\''|\
    sed '\''s/.*/xdotool key --delay 18  & Return/'\''' >> autopctab.sh
chmod u+x autopctab.sh
fi
echo 'autopctab.sh: xdotool-format paths+commands+(xdotool-commands)'

#run autopctab.sh <pathncommtabs.list>
#makepctabs.sh
if [ ! -f ~/makepctabs.sh ]; then
echo '#!/bin/bash' > makepctabs.sh
./autopctab.sh pathncommtabs.list >> makepctabs.sh
chmod u+x makepctabs.sh
fi
echo 'makepctabs.sh: run xdotool command lines to OPEN new tabs AND RUN commands with pathncommtabs.list'

#autotab.sh <anytabs.list>
if [ ! -f ~/autotab.sh ]; then
echo '#!/bin/bash' > autotab.sh
echo 'cat $1|sed '\''s/.*/cd &/'\''|sed '\''s/ /#/g'\''|\
    sed '\''s/\(.\)/\1 /g'\''|sed '\''s/#/space/g'\''|\
    sed '\''s/~/asciitilde/g'\''|sed '\''s/_/underscore/g'\''|\
    sed '\''s/\//slash/g'\''|sed '\''s/\./period/g'\''|\
    sed '\''s/.*/xdotool key --delay 18 control+shift+t space c d space asciitilde Return & Return c l e a r Return/'\'''  >> autotab.sh
chmod u+x autotab.sh
fi
echo 'autotab.sh: xdotool-format ONLY paths+(xdotool-commands)'

#run autotab.sh <pathtabs.list>
#maketabs.sh
if [ ! -f ~/maketabs.sh ]; then
echo '#!/bin/bash' > maketabs.sh
./autotab.sh pathtabs.list >> maketabs.sh
chmod u+x maketabs.sh
fi
echo 'maketabs.sh: run xdotool command lines ONLY to open new tabs with pathtabs.list'

#run-maketabs?
#./maketabs.sh

#remove-maketabs.sh?

#remove-autotab.sh?
#rm autotab.sh

#remove-pathtabs.list?
#rm pathtabs.list

#run-makepctabs?
#./makepctabs.sh

#remove-makepctabs.sh?
#rm makepctabs.sh

#remove-autopctab.sh?
#rm autopctab.sh

#remove-pathncommtabs.list?
#rm pathncommtabs.list

#remove-dirs?
#rm -r foo_0?

#echo See also 'https://askubuntu.com/a/380320'
#echo '        https://www.semicomplete.com/projects/xdotool/'
#echo '        https://github.com/jordansissel/xdotool'
0
ответ дан 9 November 2020 в 01:15

Другие вопросы по тегам:

Похожие вопросы: