web-dev-qa-db-ja.com

Vimでディレクトリ内のファイルの名前を変更できますか?

vim .を使用してvimのディレクトリを開くと、現在のディレクトリのファイルブラウザタイプのインターフェイスが表示されます。そこから、ファイルを参照して編集を開始する必要があります。

このインターフェイスを使用してファイルの名前を変更したい。通常のvimrenameは%s/term1/term2/のように機能しますが、ここで試してみると、E21: Cannot make changes, 'modifiable' is offが返されます。

このシナリオでmodifiableをオンにする方法はありますか、またはこれは単にvimでこのように実行できないことを意味しますか?

10
Questionmark

はい、それはそのように行うことはできません。

その「ファイルブラウザタイプのインターフェース」は、netrwと呼ばれる組み込みプラグインによって提供されます。読み取り専用なので、変更することはできません。

Rを押して、カーソルの下のファイルまたはマークされたファイルの名前を変更することになっています。

見る :help netrw:help netrw-browse-mapsより具体的には:help netrw-R

Vimを使用してファイルの名前を一括変更する場合は、 renameutils パッケージのqmvまたは moreutils パッケージのvidirを試してください(ありがとうございます)。ヘッドアップのためにドミトリーに)。

9
romainl

renamer.vim-vimの機能を使用してファイルのグループの名前を変更する プラグインを確認してください(現在は GitHub でのみ保守されています)。 netrwと同様に、ディレクトリの内容をスクラッチバッファに表示し、そのバッファを編集して、最後に基になるファイルに編集を適用できます。

2
Ingo Karkat

「system()」を使用して、シェルを使用してこのタスクを実行しようとします(もちろん、その場合)。「。vimrc」でこのタスクを実行する関数を作成します。

func! YourFunc() range

    let l:result = system("your Shell command")

    [...]

endfunc

https://github.com/eduardolucioac/groovim/blob/master/.vimrc の「system()」の使用法を参照してください。

[]の

1
Eduardo Lucio

Netrwを使用すると、v143以降のパターンを適用してファイル名を変更できます。手順:ファイルにマークを付け(パターンに基づいてファイルにマークを付けるにはmrを使用)、次にRを押します。最初の名前変更クエリで、strings/-frompat-/-topat-/ どこ -frompat-および-topat-はvimの置換パターンです。 s/にはこれが必要です。例:

s/\(.*\)\.c/\1.cpp/
1
user21497