Vim - Hành động kích hoạt \ script khi lưu \ write?


13

Điều này có thể tốt hơn cho siêu người dùng, nhưng tôi nghĩ là một công cụ giao dịch, nó có thể là một chủ đề tốt hơn ở đây. Tôi thường thấy khi chỉnh sửa trong vim mà tôi thoát ra, chạy một số tập lệnh mà tôi đang kiểm tra và sau đó quay lại vào vim (vâng tôi nhận ra tôi có thể sử dụng lệnh :! Để chạy mọi thứ từ vim) Tôi chỉ tự hỏi liệu có Cách móc thứ gì đó để chạy khi tệp được lưu (: w)?

Câu trả lời:



19

Xem :he :autocmd:he BufWritePost

Dòng này sẽ trông như thế này:

:autocmd BufWritePost /path/to/file/or/pattern !command <afile>

Nếu <afile>điều đó không làm việc sử dụng %:p.


1

Tôi đã có phần "quay lại vim", nhưng tôi không chắc cách tự mình thực hiện lệnh ": w" (sẽ rất tiện lợi, vì điều đó khá phản xạ đối với tôi)

w | silent execute "! myscript" | redraw!

Tôi nghĩ rằng nó có thể tốt hơn cho superuser là tốt.


1

Đây là tự quảng cáo trắng trợn, nhưng tôi đã viết một plugin Vim sẽ kích hoạt một số tập lệnh shell nhất định để chạy sau các autocmdsự kiện Vim cụ thể . Ví dụ, một tập lệnh có tên .bufwritepost.vimhook.shsẽ được chạy (đồng bộ) mỗi khi BufWritePostlệnh được kích hoạt. Sau đó, bạn có thể dễ dàng bao gồm bất kỳ logic tùy ý nào bạn muốn để thực hiện công cụ bên trong tập lệnh đó. Plugin giả định các quy ước đặt tên cụ thể của các tập lệnh này và cũng hỗ trợ các tập lệnh "hook" chỉ kích hoạt các tệp khớp với các tên nhất định hoặc có các phần mở rộng nhất định. Và tất nhiên, bạn có thể tự do chọn bất kỳ autocmdsự kiện nào bạn muốn, mặc dù tôi đã tìm thấy BufWritePostphù hợp với hầu hết các trường hợp sử dụng của mình.

Chi tiết đầy đủ: https://github.com/ahw/vim-hooks

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.