iPad で Pythonプログラミングをトレーニング/試行する環境として、iVim は便利です。
iVim
iVim is a project that brings the vim editor to the iOS system. It is open source, please visit the App Support URL. Fo...
しかし、標準ではZIPコマンドを備えていない難点があります。
そこでこの記事では、iVimのPythonモジュールを利用して、ZIPファイルを圧縮・解答する方法について紹介します。
ZIPファイルを解凍するスクリプト
Pythonモジュールを使えば、ivish に実装されていない ZIPコマンドと同様の処理も可能です。
import argparse
import zipfile
parser = argparse.ArgumentParser(description='Unzip for iVim')
parser.add_argument('infile', help='Target zip file')
parser.add_argument('outfile', help='Output file or directory path')
args = parser.parse_args()
with zipfile.ZipFile(args.infile) as f:
f.extractall(args.outfile)
このスクリプトの仕様は省略しますが、次のように実行すればZIPファイルが解凍できます。
:!python3 unzip.py {解凍したいファイルパス} {解凍先ディレクトリパス}
解凍先のディレクトリは、存在しなくても作成してくれます。
ZIPファイルを圧縮するスクリプト
こちらもPythonモジュールを使って、ivish に実装されていない ZIPコマンドと同様の処理も可能を可能にします。
import argparse
import zipfile
parser = argparse.ArgumentParser(description='Zip for iVim')
parser.add_argument('infile', help='Target a file')
parser.add_argument('outfile', help='Output zip file')
args = parser.parse_args()
with zipfile.ZipFile(args.outfile, 'w', compression=zipfile.ZIP_DEFLATED) as f:
f.write(args.infile, arcname=args.infile)
このスクリプトの仕様は省略しますが、次のように実行すればファイルを1つだけ圧縮できます。
:!python3 zip.py {圧縮したいファイルパス} {圧縮先ディレクトリパス}
単純な1ファイルのZIP圧縮にしか対応していません。複数ファイルの圧縮に対応させるには、もう少し工夫が必要です。
もし複数ファイルの圧縮が必要であれば、ロジックを工夫する必要がありますので、ご注意ください。
iVimで圧縮ファイルを解凍できると…?
GitHubなどからダウンロードしてきたファイルを直接解凍できるようになるため、PythonのトレーニングやVimプラグインのインストールが楽になります。
ちなみに、今回のファイルはこちらでも公開してますので、自由に利用してください。
GitHub - vimtry1/ivim-tools: iV
iV. Contribute to vimtry1/ivim-tools development by creating an account on GitHub.
ぜひ色んな使い方をして、iVimでモバイルVimライフを快適にできれば幸いです。
最後まで読んでいただいて、誠にありがとうございました。