web-dev-qa-db-ja.com

コマンドラインからファイルを開く

Kubuntu 18.04に同梱されているデフォルトのkileバージョン(Kile 2.9.91)は期待どおりに動作しません。古いバージョンではこれ

$ kile myfile.tex

編集のためにmyfile.texを開きます。ただし、現在のバージョンでは、これはhttp://myfile.texを開こうとして失敗します。表示されるエラーメッセージは「 http://myfile.tex Host not found」です。これはそれほど驚くことではありません。ファイル名を引用符で囲み、kile ./myfile.texkile 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
6
m00am

ダーティな回避策:realpathを呼び出して入力ファイルの絶対パスを取得する.bashrc/.zshrcに関数を記述します(私がテストしたのはこれら2つだけです)。

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

意図した動作を取り戻すには(一度に1つのファイルに対して、他のパラメーターを使用せずに、bashの知識があれば簡単に改善できます)。これは決して解決策ではなく、今のところ意図した動作を模倣する方法にすぎません。

2
m00am

@ m00amソリューションに触発され、bash.bashrcに以下を追加できます。

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

コマンドkile myfile.texが機能します。個人的には、出力を/dev/nullにリダイレクトし、コマンドをリリースします。

kile() { command kile $(realpath "$@") > /dev/null 2>&1 & }
1
xiawi