← Vim研究所

netrwでファイルをコピー・移動する マーク機能の使い方

2019-12-23 公開 ・ 更新: 2026-08-20

netrwでファイルをコピーしたいだけなのに、いきなりmcを押しても何も起きません。netrwのファイル操作は「マークを付けてから実行する」という、CUIファイラらしい2段階の手順を踏む必要があります。

マークによるコピー・移動はnetrwの機能です。Neovim 0.13でnvim .から開く一覧には入っていません。新しい一覧は読み取り専用で、削除・改名・マークの操作を持ちません。Vim側は変わりません。Neovimで0.13以降を使っていて、この記事の操作が見当たらない場合は:Exploreを打つと従来どおりnetrwが開きます。詳しくはNeovim 0.13でnetrwが標準の一覧から外れる件にまとめています。

目次(10項目)
キーこれだけ覚える
mfカーソル位置のファイルにマークを付ける/外す
mtコピー・移動先のディレクトリを指定(target)
mc / mmマークしたファイルをtargetへコピー/移動
muすべてのマークを外す

マークの付け外し

キー動作
mfカーソル位置のファイルにマークを付ける/外す
muすべてのマークを外す
mr正規表現(*などのワイルドカード)でまとめてマークする
mtコピー・移動先のディレクトリを指定する(target設定)

コピー・移動の手順

ファイルをコピーする場合、次の3ステップを踏みます。

1. コピー先のディレクトリでmtを実行(target指定)
2. コピー元のファイルでmfを実行(マーク)
3. mcを実行(コピー実行)

移動したい場合は最後をmmに変えます。目的地を先に指定してから対象を選ぶ、という順序は最初は戸惑いますが、慣れれば一般的なCUIファイラの操作感と大きくは変わりません。

mtで指定する移動先が深い階層にあると、そこへ辿り着くだけで手数がかかります。よく使う移動先はブックマークに登録しておくとgbだけで飛べるので、target指定と元ファイルの選択を行き来するのが楽になります。

キー動作
mcマークしたファイルをtargetへコピー
mmマークしたファイルをtargetへ移動
mdマークしたファイル同士の差分を表示
mzマークしたファイルを圧縮/展開

表の下2つは方向を自分で選びません。mdは2つ以上マークしたときだけ意味があり、mzはマークしたものが圧縮済みなら解凍、未圧縮なら圧縮、という向きの自動判定で動きます(:help netrw-mz)。同じキーで往復するので、いま何がマークされているかを見てから押すのが安全です。

マークを使わない単純な操作

新規作成や削除、リネームのようにマーク不要の操作もあります。

キー動作
%新規ファイルを作成
d新規ディレクトリを作成
Dカーソル位置(またはマークした)ファイル・ディレクトリを削除
Rファイル・ディレクトリをリネーム

正規表現で複数ファイルをまとめてマークする

1つずつmfを押すのが面倒な場合は、mrでパターンを指定して一括マークできます。

mr *.log

ワイルドカードや正規表現で対象を絞り込めるので、拡張子ごとの一括削除や一括圧縮をしたいときにmfを連打するより早く済みます。

Windowsでの既知の制約

Windows環境では、マークを使ったコピー・移動が正常に動作しないことがあります。これはnetrwが内部的にUnix系のコマンドを前提にした処理を行っているためで、確実な回避策は見つかっていません。Windowsを主に使っていてファイル操作の頻度が高いなら、コピー・移動についてはOS標準のエクスプローラーや、NERDTreeのようなクロスプラットフォーム対応のファイラープラグインに任せたほうが安定します。

要点:「target指定→マーク→実行」の3ステップさえ覚えれば、コピー・移動・差分表示・圧縮まで一通りこなせます。ただしWindowsでのコピー・移動は不安定なので、そこだけは他の手段を用意しておくと安心です。
使ってみて

最初はtargetを指定せずにmcを押して「何も起きない」と戸惑いました。手順の順序さえ覚えてしまえば迷うことはなくなりましたが、複数ファイルを別々の場所に振り分けたいときは、targetを都度切り替える必要があって少し手間がかかります。単純な1対1のコピーなら十分実用的です。

マークの状態を確認する・全部外す

マークしたファイルは一覧の中で強調表示されますが、画面を切り替えたり別のディレクトリを見に行ったりすると、どれにマークが付いているか分からなくなります。mu を押せばすべてのマークが外れるので、迷ったらいったん解除してから付け直すほうが確実です。

マークはディレクトリをまたいで保持されます。これは複数の場所から集めてコピーするための仕様ですが、意図せず前の作業のマークが残っていると、思っていないファイルまで操作の対象になります。操作を実行する前に mu で一度きれいにしておく癖を付けると事故りません。

マークしたファイルにまとめて処理を流す

コピーや移動のほかにも、マークしたファイルを対象にできる操作があります。よく使うのは次の3つです。

me   " マークしたファイルをまとめて開く
mg   " マークしたファイルを vimgrep で検索する
mx   " マークしたファイルに外部コマンドを実行する

mx は実行したいコマンドを聞いてくるので、そこで chmod +x のように打つと、マークした全ファイルに適用されます。ファイル名の入る位置は自動で補われます。mg で検索した結果はquickfixリストに入るので、quickfixウィンドウから順にたどれます。

コピーや移動に使われるコマンド

netrwのファイル操作は、内部でOSのコマンドを呼び出しています。何が使われるかはオプションで確認でき、必要なら差し替えられます。

:echo g:netrw_localcopycmd    " コピーに使うコマンド
:echo g:netrw_localmovecmd    " 移動に使うコマンド
:echo g:netrw_localrmdir      " ディレクトリ削除に使うコマンド

操作が黙って失敗するときは、ここに入っているコマンドが環境に無いか、引数の形が合っていないことがほとんどです。同じコマンドを端末で手打ちしてみると、netrwが出さないエラーメッセージが読めます。

まとめ

netrwのファイル操作はマークして実行する2段階方式です。手順さえ覚えれば移動・コピー・削除・圧縮まで標準機能だけで完結します。Windowsでのコピー・移動の不安定さだけは念頭に置いておくと安心です。圧縮のmzも同じマークをそのまま使うので、圧縮・解凍のために手順を覚え直す必要はありません。

関連記事

← Vim研究所 トップへ戻る