Откройте файл с программой по умолчанию и подождите, пока приложение не будет завершено

Я хочу открыть текстовый файл из командной строки с помощью приложения по умолчанию. В течение этого времени приложение по умолчанию открывается, терминал должен быть отключен (не может выполнить другую команду). Например, я использую KDE, а по умолчанию читатель .txt – Kate, затем я хочу выполнить kate test.txt и терминал отключается, пока я не kate test.txt Kate.

Что я хочу?

  • выполнить команду, которая запускает текстовый редактор по умолчанию
  • между тем программа c ++ ждет в той конкретной точке, которая выполняет команду, описанную выше
  • когда пользователь готов, сохраняет документ, выходит из текстового редактора по умолчанию (завершается) и выполнение программы c ++ продолжается

  • поиск строки в файлах и ее постепенное замещение
  • Изменить каталог для файлов подсветки синтаксиса Kate
  • Как установить подсветку синтаксиса по умолчанию в Kate
  • Как переключить направление текста на rtl & ltr в kate и kwrite
  • Как сбросить цветные схемы по умолчанию Kate?
  • Как я могу определить, какой словарь kate / KDE используется для проверки орфографии?
  • Как заставить проверку заклинаний Кейт игнорировать пробег слов?
  • Как найти и заменить текст во всех открытых файлах с помощью kate?
  • One Solution collect form web for “Откройте файл с программой по умолчанию и подождите, пока приложение не будет завершено”

    Текстовый редактор по умолчанию в системе обычно хранится в $EDITOR окружения $EDITOR . Например, в моей системе у меня есть:

     $ echo $EDITOR /usr/bin/emacs 

    Таким образом, вы можете просто запустить

     $ $EDITOR test.txt 

    ПРИМЕЧАНИЕ. Это не обязательно тот же редактор, который задан в настройках графической среды. Используйте метод ниже, чтобы получить это.

    В качестве альтернативы, если система настроена на ее использование, вы можете запустить программу по умолчанию, связанную с типом mime, с помощью xdg-open ( open в OSX):

     $ xdg-open test.txt 

    Но это не будет удерживать терминал до тех пор, пока команда не закроется. Тем не менее, вы можете использовать настройку mime, чтобы узнать, какая программа будет открыта, а затем вызвать программу самостоятельно. Чтобы сделать это, получите программу, связанную с типом текста mime:

     $ xdg-mime query default text/plain pluma.desktop;sublime_text.desktop 

    Итак, теперь вы можете разобрать эту строку, чтобы получить имя программы:

     editor=$(xdg-mime query default text/plain | sed 's/\..*//') $editor test.txt 

    ПРИМЕЧАНИЕ. Предполагается, что файл .desktop имеет имя фактического исполняемого файла. Более безопасным способом может быть поиск самого файла рабочего стола и grep из него. Затем запустите программу, которую вы нашли. Вы можете сделать все это с помощью этой команды:

     editor=$(grep -i ^exec $(locate -n 1 $(xdg-mime query default text/plain | cut -d';' -f 1)) | perl -pe 's/.*=(\S+).*/$1/') $editor test.txt 
    Linux и Unix - лучшая ОС в мире.