Vim は、zip ファイル内の透過的なファイル編集をサポートしています。実行するだけです:
vim file.zip
zip アーカイブ内のファイルのリストが表示されます。編集したいものを選択し、必要なものを変更して、:x で終了します
vim
の場合 次のように応答します:
変更できません。「変更可能」はオフです
.. :set modifiable
を実行するだけです または :set ma
(ソース:https://stackoverflow.com/questions/5745506/vim-modifiable-is-off)
アーカイブを解凍する前に、アーカイブ内のファイルの名前を知っていますか? /tmp
に解凍する関数を作成できます zip の編集、更新:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
それが言うように、使用法は次のとおりです:
zipedit myarchive.zip myfile.txt
これにより、指定されたファイルがアーカイブから解凍され、/tmp
に保存されます 、 vi
で編集します 次に、パスを「ジャンク」しながら、アーカイブに追加します。 bash
を想定して、.bash_profile に追加します。 ...
編集: 以下は、アーカイブ内のサブフォルダーで動作するバージョンです... フォルダー名の前にスラッシュを使用しないでください (つまり、myfolder/file.txt
を使用します) /myfolder/file.txt
ではない )。アーカイブにまだ存在しないファイルを編集すると、アーカイブが作成されます。また、zip ファイルへの絶対パスで機能するかどうかもわかりません。親戚に付き合うのが一番です。
zipedit(){
echo "Usage: zipedit archive.zip folder/file.txt"
curdir=$(pwd)
unzip "$1" "$2" -d /tmp
cd /tmp
vi "$2" && zip --update "$curdir/$1" "$2"
# remove this line to just keep overwriting files in /tmp
rm -f "$2" # or remove -f if you want to confirm
cd "$curdir"
}
ご質問ありがとうございます。私もこれを使うことになるでしょう!
別の編集:テストされていませんが、その vim
を読みました と emacs
どちらも jar ファイルを直接編集しますか?
短い答え:いいえ
それがラッパーなら、あなたは これらのコマンドを呼び出します。とにかく、私が考えることができる最善の方法は、 file-roller
を使用してファイルを開くことです 、X 環境にいる場合、セットアップによっては、単純なダブルクリックで機能する場合があります。次に、圧縮ファイルをダブルクリックして開き、編集することができます:
$ file-roller b3.zip
編集したファイルを保存すると、次のダイアログが表示されます:
このためのスクリプトを作成することもできますが、複数のファイルを含む圧縮アーカイブがある場合は複雑になります。それが必要かどうか教えてください。何か料理できるかもしれません。