Chạy lệnh bash khi viết một tệp có phần mở rộng cụ thể?


7

Tôi muốn chạy một lệnh bash khi viết một .lesstệp, lưu nó và tạo .csstệp tương ứng có cùng tên và trong cùng một thư mục. Tôi có lệnh bash tạo .csstập tin.

Tôi không quen với vimscript ngoại trừ làm việc với vim và thay đổi một số thứ trong tôi .vimrc, vì vậy tôi không chắc làm thế nào để nó hoạt động.

Tóm lại:

  • Làm cách nào để chạy lệnh bash :w?
  • Làm cách nào để có được thư mục tệp hiện tại (vimscript hoặc bash)?
  • Làm cách nào để có được tên tệp hiện tại (vimscript hoặc bash)?

Đừng làm điều đó trong Vim, thay vào đó hãy sử dụng trình theo dõi như Grunt / Brunch / Gulp.
romainl 11/07/2015

Câu trả lời:


11

Bạn có thể sử dụng autocommands để chạy mọi thứ tự động khi một số sự kiện nhất định xảy ra. Trong trường hợp của bạn, bạn có thể làm điều này:

autocmd BufWritePost *.less !less <afile>

Autocommand này chạy mỗi khi một bộ đệm có tên kết thúc .lessđược viết. Lệnh đang được chạy là lệnh bash và <afile>là tên của tệp đang được viết. Về cơ bản, !lệnh cho phép bạn chạy các lệnh bash trong vim.

Các chủ đề trợ giúp có liên quan:

  • :help :autocmd
  • :help BufWritePost
  • :help :!
  • :help <afile>

GHI CHÚ

Vim không tự động làm mới màn hình khi lệnh bash được chạy. Xem câu trả lời dưới đây để biết thông tin về điều đó: Loại bỏ đầu ra từ autocomand vim

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.