[Vim問題] 標準ファイラ “Netrw” でファイルを圧縮・解凍する方法は?

標準ファイラ "Netrw" でファイルを圧縮・解凍する方法は?

この記事では、Vim / neovim でプラグインなしで使えるファイラ Netrw で「ファイルを圧縮・解凍する方法」について、ご紹介します。

[解答] mz

Netrwでは、ディレクトリ/フォルダをブラウジング(探索)した後、ファイルを開くのが主な使い方となります。開く対象のファイルが圧縮ファイルの場合には、ファイルを解凍して開くことができます。また逆に、ファイルを圧縮することも可能です。

Netrw ファイルを圧縮・解凍する

次の操作で、ファイルの圧縮・解凍ができます。

キー操作実行する内容
mf対象ファイルを選ぶ(マークする)
mz対象となるファイルを圧縮、または解凍する
* 圧縮ファイルであれば解凍する
* 通常ファイルであれば圧縮する

なお、Vimのヘルプファイルなどでは「解凍」ではなく、「伸長」と翻訳されています。

「伸長」の方が正確だとは思いますが、Windowsなどで「解凍」の方が馴染みがあるユーザーも多いと感じます。そのため、本サイトでは「解凍」と呼ぶ点は、ご了承ください。

解凍/圧縮の仕様

標準状態での圧縮形式は “GZIP” です。こちらは、下記の設定値で変更可能です。

let g:netrw_compress = "gzip"

なお、標準状態での解凍できる形式は、以下の通りに設定されています。

let g:netrw_decompress =  { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf"}

7zip や rar など他の圧縮形式も追加できそうですが、そこまでして利用するものかは微妙ですよね。あくまで圧縮ファイルも扱えるくらいに留めておく方が無難でしょう。

このVimコマンドの補足情報

  • 利用頻度[star rate=1]
  • 便利さ[star rate=3]
  • 覚え易さ[star rate=2]

関連するVimヘルプ

Vim のヘルプでは、下記のように解説されています。

マークファイル: 圧縮と伸長                              netrw-mz {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                      (ローカルマークファイルリスト使用)

マークされたファイルが圧縮されている場合、”mz” はファイルを伸長します。
マークされたファイルが圧縮されていない場合、”mz” はファイルを圧縮します。
圧縮コマンドは g:netrw_compress で設定できます。初期設定は “gzip” です。

伸長には、拡張子と伸長コマンドを関連付けた Dictionary が使われます。
g:netrw_decompress 参照。

正規表現で複数ファイルをマークできることを思い出してください (netrw-mr参照)。
これはたくさんのファイルを圧縮・解凍するのに便利です。

関連設定: g:netrw_compress g:netrw_decompress

pi_netrw – Vim日本語ドキュメント

  g:netrw_compress  =”gzip”
                                    ファイル圧縮コマンド

pi_netrw – Vim日本語ドキュメント

  g:netrw_decompress  = { “.gz” : “gunzip” ,
                                    “.bz2” : “bunzip2” ,
                                    “.zip” : “unzip” ,
                                    “.tar” : “tar -xf”}
                                  拡張子と伸長プログラムを関連付ける辞書

pi_netrw – Vim日本語ドキュメント

こちらは、Vim上では下記のコマンドでヘルプを確認できます。

:help netrw-mz
:help g:netrw_compress
:help g:netrw_decompress

ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。

Vim操作の参考書籍

こちらの書籍が、Vimレベルアップの参考になります。

[temp id=3]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Vim力アップして、そろそろ上級 Vimmer の仲間入りしたいIT系エンジニアの端くれです。読んでくる訪問者の皆様と一緒に、Vim力を上げていくことができる記事が書ければと考えています。