Откройте любой файл .c с помощью Sublime Text с помощью команды терминала.

Поскольку вы запускаете JACK и Pulseaudio при загрузке, попробуйте отложить команду JACK на несколько секунд, чтобы Pulseaudio и другие звуковые элементы были включены и запущены первыми

Простейшим решением будет использование пакета jack2-dbusвместо jackdили jack2. D -Шина управляет совместным использованием аудиооборудования между JACK и Pulseaudio. если модуль Pulseaudio module-jackdbus-detectактивен в /etc/pulse/default.pa. JACK автоматически создаст приемник и источник Pulseaudio при запуске.

Если вы не можете использовать шину D -по какой-либо причине закомментируйте этот раздел в /etc/pulse/default.pa с помощью ' #' в начале каждой строки

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif

Это отключит Pulseaudio от заявлений об использовании любого аудиоустройства, которое может потребоваться для правильного запуска JACK. Затем вы можете запустить JACK с помощью сценария bash, включая команды для загрузки приемника и источника Pulseaudio :

.
#!/bin/bash
<jack start command>
wait 2
pactl load-module module-jack-sink
pactl load-module module-jack-source
3
08.07.2017, 11:24
4 ответа

В обычных условиях это не сработает. Единственный способ, который я мог придумать, - это записывать каждую команду в файл (, например. с scriptи модифицированным PS1 для перезаписи bash по любой команде ), а затем анализировать этот файл журнала в каждой новой строке (, например. дополнительно измените PS1 )для некоторого регулярного выражения, оканчивающегося на.c, чтобы начать возвышенное.

Не похоже, чтобы это стоило потраченного времени, может быть, некоторые alias s="subl "в .bashrcсделают вас более счастливыми, в сочетании с завершением табуляции это уже должно быть немного проще для вас.

10
27.01.2020, 21:07

Вам, вероятно, не следует этого делать, но можно включить функцию command_not_found_handleв сервис, что, в свою очередь, может привести к поломке других вещей или необходимости объединения с любой другой command_not_found_handleфункциональностью, которую вы можете пожелать.

-bash-4.2$ touch foo.c
-bash-4.2$ function command_not_found_handle() { [[ -f "$1" ]] && subl "$1"; }
-bash-4.2$ foo.c
...
-bash-4.2$ bar.c
-bash-4.2$ 

(Одна из причин, по которой это плохая идея, заключается в том, что вы меняете грамматику командной строки из command [args..]на command-or-plainfilethatisrunsomehow [args..].)

4
27.01.2020, 21:07

Как вариант, вы можете использовать привязку readline, вот так:

bind '"\e\C-m":"\C-asubl \C-m"'

Затем комбинация Alt + Enter или Ctrl + Alt + M откроет любой файл в Великолепный редактор. То есть, когда вы хотите открыть файл в Sublime, вы вводите имя файла (test.c, например ), и нажимаете Alt + Enter . Комбинация клавиш может быть изменена по желанию.

Недостаток -автозаполнение bash не работает для имен файлов в первом слове строки.

3
27.01.2020, 21:07

Поскольку вашей целью является(скорее всего)сокращение набора текста, вы можете определить псевдоним или простой сценарий оболочки для возвышенного,

alias s='subl'
#or
alias sb='subl'

Или вы можете проявить фантазию и использовать сценарий оболочки с именем 's' или 'sb'(для сохранения в вашем ~/bin/в вашем PATH ),

#!/bin/bash
subl $*

Любое из приведенных выше действий приводит к сокращению командной строки,

> s myfile.c

Что длиннее желаемого (на 2 символа ),

> myfile.c

Или вы можете проявить фантазию и вставить строку shbang(#!)в качестве первой строки всех ваших .cфайлов, сделать файл исполняемым и вызвать приведенный выше сценарий редактирования. Это означало бы переписать ваши make-файлы так, чтобы сначала предварительно -обработать строку shbang перед компиляцией.

Сохранить как ' myfile.cs'

#!~/bin/subl myfile.cs
#include <stdio.h>
int main() { printf("hello, world\n"); }

Чтобы продемонстрировать, как это будет работать, сохраните следующий файл: ' stuff.cs'

#!/usr/bin/vi stuff.sh
//this is a file
//that you can edit with sublime
int main() { printf("hello, world\n"); }

Затем запустите его,

./fubar.cs

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

4
27.01.2020, 21:07

Теги

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