Cách chèn ngày vào vim


23

Trong vim, bạn có thể thực thi các lệnh với "!". Bạn có thể kết hợp điều đó với "r" để chèn đầu ra vào bộ đệm hiện tại của bạn.

: r! ngày
Thứ Sáu 20 tháng 7 09:39:26 SAST 2012

sẽ chèn ngày vào một tập tin.

Bây giờ khi tôi cố gắng thực hiện một số nội dung thú vị hơn như ngày với định dạng khác nhau +% F. Trên dòng lệnh

$ ngày +% F
2012-07-20

Trong vim

: r! ngày "+% F" tin
nhắn.to.followup.lstF

Mà ra đặt tên của tập tin và đặt F sau nó. một số cách r! date "+% F" đang được mở rộng trong vim và không chạy trên dòng lệnh. Tôi cần làm gì để chạy nó để nó đưa nội dung vào vim.

Có lẽ vim có cách tốt hơn để chèn ngày vào tệp.



Đây là một phản hồi hợp lệ khác bằng cách sử dụng <F3>. Bạn sẽ cần sửa đổi vimrcđể có được bất kỳ định dạng ngày nào bạn muốn, được tự động hóa .
nilon

Câu trả lời:


21

Vim có strftime()chức năng nội bộ . Hãy thử điều này (trong chế độ chèn):

<C-r>=strftime('%F')<CR>

1
Tôi đang chọn câu trả lời của bạn vì đây là cách thích nhất để làm mọi việc.
nelaaro

1
Và ở chế độ bình thường, điều này giống nhau (chèn ngày ở vị trí hiện tại ): "=strftime("%F")<CR>P(Nguồn: vim.wikia.com/wiki/Insert_cản_date_or_time )
erik

19

Tôi tiếp tục thử nghiệm cho đến khi tôi phát hiện ra rằng vim đang mở rộng ký tự "%". Vì vậy, chỉ cần thoát "\%" và mọi thứ hoạt động như tôi mong đợi.

: r! ngày "+ \% F"
2012-07-20

Bây giờ tôi có thể đặt ngày vào các tệp như tôi muốn

: r! ngày "+ \% F" -d "-2 ngày"
2012-07-18


1
+1 Bạn cũng có thể sử dụng với các chương trình khác date, và do đó, nó dễ nhớ hơn so với nội dung "strftime".
toán

10

Một phương pháp khác, không thoát, sử dụng system():

system('date +%F')

Ở chế độ INSERT :

<C-r>=system('date +%F')<CR>

Trong chế độ BÌNH THƯỜNG :

:put=system('date +%F')<CR>

1
<Cr> rất hữu ích, tôi ước mình đã dành nhiều thời gian hơn để đọc trợ giúp trong vim.
nelaaro

1
Không bao giờ là quá muộn.
romainl
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.