vim: Buộc cú pháp cụ thể thông qua đối số dòng lệnh


17

Khi tôi muốn dễ dàng đọc lược đồ PostgreSQL của mình, tôi kết xuất nó stderrvà chuyển hướng nó tới vim:

pg_dump -h localhost -U postgres dog_food --schema-only | vim -

Điều này mang lại:

nhập mô tả hình ảnh ở đây

vim không có lược đồ tô sáng cú pháp, vì nó không có phần mở rộng tên tệp khi đọc từ stdin, vì vậy tôi sử dụng như sau:

:set syntax=sql

Cung cấp cho:

nhập mô tả hình ảnh ở đây

Là nhà phát triển lười biếng, tôi muốn vimsử dụng cú pháp SQL bằng cách chuyển một đối số dòng lệnh, tiết kiệm cho tôi hợp xướng gõ lại set syntax=<whatever>mỗi khi tôi mở nó bằng stdindữ liệu ..

Có cách nào để đặt vimcú pháp bằng cách truyền đối số dòng lệnh không?

Câu trả lời:


23

Bạn có thể dùng:

vim -c 'set syntax=sql' -

2
Lưu ý: Hoạt động cho tôi ngay cả khi không có dấu hai chấm trong lệnh.
Murphy

1
Biến thể ngắn hơn:vim '+set syn=sql' -
Stéphane Chazelas

5
Thông thường, bạn nên sử dụng set filetype=sql(hoặc ft=sqlviết tắt); điều đó cũng sẽ tải các tập tin thụt lề và như vậy và không chỉ là cú pháp tô sáng ...
Martin Tournoij


1

Bạn thậm chí có thể tự động hóa điều đó bằng cách đặt lệnh vào ~/.vimrc:

augroup filetype
  au! StdinReadPre * set filetype=sql
augroup END
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.