Откройте файл из командной строки

Значение по умолчанию kile версия (Kile 2.9.91) поставленный с kubuntu 18.04 не ведет себя как ожидалось. В более старых версиях это

$ kile myfile.tex

открылся бы myfile.tex для редактирования. Однако в текущей версии это пробует и не удается открыться http://myfile.tex. Сообщение об ошибке, которое я получаю, является "Хостом http://myfile.tex, не найденным", который не слишком удивителен. Я пытался перенести имя файла в кавычки, использовать kile ./myfile.tex и kile file://myfile.tex. Первое ничего не изменило, второе и треть привели к segfault.

Что правильный путь состоит в том, чтобы открыть файлы с помощью командной строки в Kile 2.9.91?

Какие работы, что не делает?

$ kile myfile.tex                         -> Error: http://myfile.tex
$ kile "myfile.tex"                       -> Error: http://myfile.tex
$ kile myfile.txt                         -> Error: http://myfile.txt
$ kile myfile                             -> Error: http://myfile
$ kile Documents/myfile.tex               -> Error: http://documents/myfile.tex

$ kile ~/Documents/myfile.tex             -> Works!
$ kile /home/user/Documents/myfile.tex    -> Works!
$ kile $(realpath myfile.tex)             -> Works!

$ kile ./myfile.tex                       -> segfault
$ kile file://myfile.tex                  -> segfault
7
задан 29 August 2018 в 01:49

2 ответа

Грязное время обходного решения: впишите в функцию Ваш .bashrc/ .zshrc (другие могли бы работать, эти два являются единственными, которые я протестировал), который звонит realpath получить полный путь входного файла:

function kile-open {
    kile $(realpath $1)
}

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

2
ответ дан 23 November 2019 в 06:50

Вдохновленный @m00am решением, в bash можно добавить следующее к .bashrc:

kile() { command kile $(realpath "$@") }

Команда kile myfile.tex будет затем работать. Personnally, я даже перенаправляю вывод к /dev/null и выпуск команда:

kile() { command kile $(realpath "$@") > /dev/null 2>&1 & }
1
ответ дан 23 November 2019 в 06:50

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

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