วิธีแทรกวันที่เป็นกลุ่ม


23

ในกลุ่มคุณสามารถรันคำสั่งด้วย "!" คุณสามารถรวมกับ "r" เพื่อแทรกผลลัพธ์ลงในบัฟเฟอร์ปัจจุบันของคุณ

: r! date
Fri 20 ก.ค. 09:39:26 SAST 2012

จะแทรกวันที่ลงในไฟล์

ตอนนี้เมื่อฉันพยายามทำสิ่งที่น่าสนใจเช่นวันที่ด้วยรูปแบบที่แตกต่างกัน +% F บนบรรทัดคำสั่ง

$ date +% F
2012-07-20

ในกลุ่ม

: r! date "+% F"
message.to.followup.lstF

สิ่งใดที่ทำให้ชื่อของไฟล์และทำให้ F หลังจากนั้น วิธีที่ r! date "+% F" ถูกขยายเป็นกลุ่มและไม่ทำงานบนบรรทัดคำสั่ง ฉันต้องทำอะไรเพื่อเรียกใช้เพื่อที่จะทำให้เนื้อหาเป็นกลุ่ม

บางทีเสียงเรียกเข้ามีวิธีที่ดีกว่าในการแทรกวันที่ลงในไฟล์



นี่คืออีกการตอบสนองที่ถูกต้องโดยใช้ <F3> คุณจะต้องแก้ไขของคุณvimrcจะได้รับรูปแบบวันที่คุณต้องการใด ๆ , automatized
nilon

คำตอบ:


21

เป็นกลุ่มมีstrftime()ฟังก์ชั่นภายใน ลองนี้ (ในโหมดแทรก):

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

1
ฉันเลือกคำตอบของคุณเพราะมันเป็นวิธีที่สนุกที่สุดในการทำสิ่งต่าง ๆ
nelaaro

1
และในโหมดปกตินี้จะเหมือนกัน (วันที่แทรกที่ตำแหน่งปัจจุบัน ): "=strftime("%F")<CR>P(ที่มา: vim.wikia.com/wiki/Insert_current_date_or_time )
erik

19

ฉันทำการทดลองต่อไปจนกระทั่งฉันคิดว่าเสียงเรียกดังกล่าวกำลังขยายตัวอักขระ "%" ดังนั้นเพียงแค่หลบหนี "\%" และทุกสิ่งทำงานตามที่ฉันคาดไว้

: r! date "+ \% F"
2012-07-20

ตอนนี้ฉันสามารถใส่วันที่ลงในไฟล์อย่างที่ฉันต้องการ

: r! date "+ \% F" -d "-2 วัน"
2012-07-18


1
+1 ที่คุณสามารถใช้กับโปรแกรมอื่น ๆ ได้dateเช่นกันดังนั้นจึงง่ายต่อการจดจำมากกว่า internat "strftime" - ทุกอย่าง
คณิตศาสตร์

10

วิธีอื่นโดยไม่ต้องหลบหนีโดยใช้system():

system('date +%F')

ในโหมดINSERT :

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

ในโหมดปกติ :

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

1
<Cr> มีประโยชน์มากฉันหวังว่าฉันจะใช้เวลามากขึ้นในการอ่านความช่วยเหลือเป็นกลุ่ม
nelaaro

1
มันไม่สายเกินไป.
romainl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.