vimでファイルを跨いだ置換処理をしたい
1つのファイル内は%s/hoge/fuga/gc
でよくやるけど、multiple fileは忘れやすいのでメモ
iOSProjectを想定しています。Project内を検索してAppDelegate.swift, ViewController.swiftのファイルを取り出して置換したいんす
やりたいこと
- 別々の階層にあるファイルを跨いだ置換処理
やったこと
cd ~/.ghq/github/SwiftHogeProject/SwiftHogeProject vim AppDelegate.swift
2
. ほんで以下のコマンド
:args **/*.swift :args :argdo %s/class/final class/ge | :update
継続と言う文字が表示されるがshift+g
で自動で最後までやってくれる。
ただ、xvimでやっても動かなかった。なんでや。。
フォルダ構成
├── SwiftHogeProject │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift // ここが`Controller/ViewController`とかになってても置換できる。やったね └── SwiftHogeProject.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ └── omatty.xcuserdatad │ └── UserInterfaceState.xcuserstate └── xcuserdata └── omatty.xcuserdatad └── xcschemes ├── SwiftHogeProject.xcscheme └── xcschememanagement.plist