私は私のコマンドラインが好きです。次のように入力できることが気に入ります。
emacs non-existing-file.txt
その後、emacs
まだ存在しないファイルの編集を開始しますが、保存すると名前がnon-existing-file.txt
。
私はLibreOffice.orgも好きですが、次のように同じことを行う方法を見つけることができませんでしたemacs
。
lowriter non-existing.odt
LibreWriterが開きますが、ファイルは生成されません。代わりにファイルが存在しないと文句を言います。
lowriter
このディレクトリでという名前の新しいファイルを起動しようとしていることをコマンドラインから知る方法はありますかnon-existing.odt
?
ベストアンサー1
この機能は2002年にOpenOfficeを要求するそしてリブレオフィス2011。現時点では、両方のプロジェクトは実装されていません。
解決策は、どこかに空のファイルを作成し、コピーを作成して新しいファイルを作成することです。ただし、これにより、作成日などの元の生成のメタデータが維持されるため、結果は新しい文書を生成するのとは異なります。検証されていません。
#!/bin/sh
# Create a new file if the argument does not exist. Do it only if there is a single
# argument and no option.
if [ $# -eq 1 ]; then
case "$1" in
-*) :;;
*)
if ! [ -e "$" ]; then
basename="${1##*/}"
case "$basename" in
*.*)
extension="${basename##*.}"
cp ~/templates/default."$extension" "$1" || exit $?
esac
fi;;
esac
fi
exec loffice "$@"
空のファイルを変換するとテキスト文書(.odt
)を作成できますが、他の種類の文書は作成できません(Libreoffice 5.1.6.2を使用)。理由はわかりません。
#!/bin/sh
set -e
# Create a new file if the argument does not exist. Do it only if there is a single
# argument and no option.
if [ $# -eq 1 ]; then
case "$1" in
-*) :;;
*)
if ! [ -e "$" ]; then
basename="${1##*/}"
case "$basename" in
*.*)
extension="${basename##*.}"
empty_file=$(mktemp)
unoconv -f "$extension" -o "$1" "$empty_file"
rm -f "$empty_file"
esac
fi;;
esac
fi
exec loffice "$@"