kubuntu 18.04 附带的默认 kile 版本 (Kile 2.9.91) 行为不符合预期。在旧版本中,
$ kile myfile.tex
会打开myfile.tex
进行编辑。然而,在当前版本中,它尝试打开但失败了http://myfile.tex
。我收到的错误消息是“http://myfile.tex找不到主机”,这并不太令人惊讶。我尝试将文件名括在引号中,使用kile ./myfile.tex
和kile file://myfile.tex
。第一个没有改变任何东西,第二个和第三个导致了段错误。
在 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
答案1
肮脏的解决方法时间:将一个函数写入您的.bashrc
/ .zshrc
(其他人可能会工作,这两个是我测试过的唯一两个)调用realpath
以获取输入文件的绝对路径:
function kile-open {
kile $(realpath $1)
}
要重新获得预期的行为(一次针对一个文件,不使用任何其他参数,只需掌握一些 bash 知识即可轻松改进)。这绝不是一个解决方案,只是暂时模仿预期行为的一种方式。
答案2
受到@m00am 解决方案的启发,bash
您可以将以下内容添加到.bashrc
:
kile() { command kile $(realpath "$@") }
然后命令kile myfile.tex
就可以工作了。我个人甚至将输出重定向到/dev/null
并发布命令:
kile() { command kile $(realpath "$@") > /dev/null 2>&1 & }