Kubuntu 18.04に同梱されているデフォルトのkileバージョン(Kile 2.9.91)は期待どおりに動作しません。古いバージョンではこれ
$ kile myfile.tex
編集のためにmyfile.tex
を開きます。ただし、現在のバージョンでは、これはhttp://myfile.tex
を開こうとして失敗します。表示されるエラーメッセージは「 http://myfile.tex Host not found」です。これはそれほど驚くことではありません。ファイル名を引用符で囲み、kile ./myfile.tex
とkile file://myfile.tex
を使用しようとしました。最初のものは何も変更せず、2番目と3番目はセグメンテーション違反になりました。
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
ダーティな回避策:realpath
を呼び出して入力ファイルの絶対パスを取得する.bashrc
/.zshrc
に関数を記述します(私がテストしたのはこれら2つだけです)。
function kile-open {
kile $(realpath $1)
}
意図した動作を取り戻すには(一度に1つのファイルに対して、他のパラメーターを使用せずに、bashの知識があれば簡単に改善できます)。これは決して解決策ではなく、今のところ意図した動作を模倣する方法にすぎません。
@ m00amソリューションに触発され、bash
で.bashrc
に以下を追加できます。
kile() { command kile $(realpath "$@") }
コマンドkile myfile.tex
が機能します。個人的には、出力を/dev/null
にリダイレクトし、コマンドをリリースします。
kile() { command kile $(realpath "$@") > /dev/null 2>&1 & }