ฉันพยายามที่จะย้อนกลับสตริงเพื่อที่จะกลายเป็น'abc defg hij'
'jih gfed cba'
ทางออกที่ฉันมาด้วยคือ
join(reverse(split(l:text, '.\zs')), '')
มีวิธีแก้ปัญหาที่สง่างามกว่านี้หรือฉันควรยึดติดกับสิ่งที่ฉันคิด
1
ขึ้นอยู่กับความหมายของคำว่า "สง่างาม" ไม่มีฟังก์ชั่นภายในเฉพาะสำหรับการย้อนกลับสตริงถ้านั่นคือสิ่งที่คุณกำลังถาม ถ้าคุณหมายถึงการทำมันด้วยการเรียกสองครั้งหรือน้อยกว่าไปยังฟังก์ชั่นภายในและไม่มีคำสั่งเพิ่มเติมนั่นไม่น่าจะเป็นไปได้
—
Sato Katsura
โซลูชันปัจจุบันของคุณมีทั้งสง่างามและเป็นสำนวน
—
romainl
ข้าม '.' ในส่วนแยก
—
Christian Brabandt
@SatoKatsura จริง ๆ แล้วฉันคิดว่ามันมีประสิทธิภาพมากกว่าเพราะโปรแกรม regexp ไม่จำเป็นต้องจับคู่อะไรเลย นอกจากนี้เป็นวิธีที่ต้องการจากเอกสาร
—
Christian Brabandt
@ChristianBrabandt ตามคู่มือ
—
Sato Katsura
split()
โดยไม่มี{keepempty}
ตัวเลือกควรลบรายการเปล่าเดียวที่จุดเริ่มต้นและรายการว่างเปล่าเดียวในตอนท้าย ขณะนี้มันจะลบรายการเปล่าทั้งหมดรวมถึงรายการที่อยู่ตรงกลางของรายการ (ซึ่งมีประโยชน์มากกว่าพฤติกรรมที่เป็นเอกสารหากคุณถามฉัน แต่คุณอาจไม่ได้) vim_dev
ฉันคิดว่านี้ได้รับการกล่าวเมื่อเร็ว ๆ นี้