2010-06-16 22 views
5

Tôi có macro mà tôi sử dụng để thay thế các ký tự đặc biệt cho các thực thể html của nó. Tôi muốn lưu nó trong .vimrc của tôi.Làm cách nào để lưu macro bao gồm nhiều tìm kiếm và thay thế vào .vimrc

Theo this, tôi nên sử dụng let @ r = 'macro_text_goes_here'. Vấn đề là vĩ mô của tôi là một loạt các tìm kiếm và thay thế, một cái gì đó như thế này:

:%s:á:\á:Ige 
:%s:é:\é:Ige 
:%s:í:\í:Ige 

Vì vậy, tôi đã cố gắng với^V-nhập, < nhập >, <CR> sử dụng ngắt dòng thật, nhưng nó không bao giờ hoạt động. Ở phía bên kia, nếu tôi đặt văn bản trên thanh ghi và sau đó chạy macro, nó hoạt động như mong đợi.

Trả lời

10

thêm này để vimrc công trình đối với tôi

let @a=':%s/á/\&aacute;/g^M:%s/é/\&eacute;/g^M:%s/í/\&iacute;/g^M' 

lưu ý rằng^M là một nhân vật đặc biệt nhập bằng Ctrl +V, Ctrl +M.

+0

Bạn nói đúng, tôi có khoảng cách giữa^M và đó là lý do tại sao nó không thành công đối với tôi. – Doppelganger

+0

Bạn có thể sử dụng dấu ngoặc kép và '\ ' bên trong chúng nếu bạn không muốn có dữ liệu nhị phân bên trong vimrc của mình. – ZyX

+0

@smi +1 Cảm ơn bạn rất nhiều về Ctrl + V. Nó đã giúp tôi một tấn ^^ – whitesiroi

1

Ok Tôi tìm thấy giải pháp, tôi đã cố gắng với ^M trước đó, nhưng có một số dấu không gian nó không hiệu quả, cú pháp thích hợp cho các ví dụ về các câu hỏi là:

let @r=':%s:á:\&aacute;:Ige^M:%s:é:\&eacute;:Ige^M:%s:í:\&iacute;:Ige^M' 

Don Đừng quên^M cuối cùng, và rằng một khởi động lại vim là cần thiết để tải lại .vimrc.

Các vấn đề liên quan