Tôi đồng ý với mô hình 'Vim không phải là IDE'. Nhưng đôi khi không có IDE. Đây là những gì tôi sử dụng trong những tình huống đó:
: grep,: vimgrep,: Ag,: Ggrep
Cấu trúc lại cấu trúc liên quan nhiều hơn đến các thay thế thông thường mà tôi thường sử dụng : grep trên cây dự án của tôi và sau đó ghi lại macro để thực hiện tái cấu trúc -: g và: s không phải là brainers. Thông thường, nó sẽ cho phép tôi nhanh chóng sửa đổi một số lượng lớn các tệp với rất ít nỗ lực. Thành thật mà nói, tôi sử dụng phương pháp này nhiều hơn bất kỳ phương pháp nào khác.
Tùy thuộc vào quy trình làm việc của bạn, các lệnh tích hợp có thể chậm / bất tiện. Nếu bạn sử dụng git, thì bạn sẽ muốn sử dụng plugin Fugitive tuyệt vời và :Ggrep
lệnh của nó để chỉ tìm kiếm các tệp được chọn vào git. Tôi cũng thích Silver Searcher vì tốc độ của nó.
: argdo,: cdo và: bufdo
: cdo và : argdo rất tiện lợi để thực hiện các lệnh vim trên một tập hợp các tệp.
dòng lệnh
Khi việc xác định danh sách các tệp cần thay đổi khó hơn, :vimgrep
tôi sử dụng dòng lệnh grep / find lệnh để quản lý chặt chẽ hơn danh sách tệp mà tôi cần cấu trúc lại. Lưu danh sách vào tệp văn bản và sử dụng :e
và kết hợp các bản ghi macro để thực hiện các thay đổi tôi cần thực hiện.
Tôi thấy rằng kỹ năng ghi macro của mình càng ít bị hỏng thì tôi thấy Vim càng hữu ích hơn cho việc tái cấu trúc: cảm thấy thoải mái khi lưu / khôi phục từ các thanh ghi, tăng / giảm biến bộ đếm thanh ghi, dọn dẹp / lưu các bản ghi macro vào tệp để sử dụng sau này, v.v.
Cập nhật
Kể từ khi viết thêm video này cho các phương pháp tôi mô tả đã được xuất bản trên vimcasts.org (Tôi khuyến khích bạn xem TẤT CẢ các Vimcast! ). Để tái cấu trúc, hãy xem những cái này:
Vimgolf cũng là một cách tuyệt vời để luyện tập.
Sự phổ biến của các máy chủ Giao thức Máy chủ Ngôn ngữ kể từ khi tôi viết câu trả lời này cũng đã mang lại một số khả năng tái cấu trúc cho Vim (và các trình soạn thảo khác). IMO chúng còn lâu mới có khả năng cân bằng khả năng tái cấu trúc mà bạn sẽ thấy trong IDE được xây dựng có mục đích (tôi sử dụng chúng, và thích coc và ALE hơn). Xem các câu trả lời khác về câu hỏi này để biết thêm thông tin!