Tôi đang cố gắng đảo ngược một chuỗi, để nó 'abc defg hij'
trở thành 'jih gfed cba'
. Giải pháp tôi đưa ra là
join(reverse(split(l:text, '.\zs')), '')
Có một giải pháp thanh lịch hơn hay tôi nên gắn bó với những gì tôi đã đưa ra?
1
Nó phụ thuộc vào những gì bạn có nghĩa là "thanh lịch". Không có chức năng nội bộ dành riêng để đảo ngược chuỗi, nếu đó là những gì bạn đang hỏi. Nếu bạn có nghĩa là thực hiện nó với hai hoặc ít hơn các cuộc gọi đến các chức năng nội bộ và không có câu lệnh bổ sung nào, thì điều đó dường như cũng không thể thực hiện được.
—
Sato Katsura
Giải pháp hiện tại của bạn đã được cả thanh lịch và thành ngữ.
—
romainl
Bỏ qua '.' trong phần tách.
—
Christian Brabandt
@SatoKatsura thực sự, tôi nghĩ rằng nó hiệu quả hơn, bởi vì công cụ regrec không cần phải phù hợp với bất cứ điều gì. Hơn nữa, đây là cách ưa thích từ tài liệu.
—
Christian Brabandt
@ChristianBrabandt Theo hướng dẫn,
—
Sato Katsura
split()
không có {keepempty}
tùy chọn nên xóa một mục trống duy nhất ở đầu và một mục trống duy nhất ở cuối. Hiện tại, nó sẽ xóa tất cả các mục trống, bao gồm các mục ở giữa danh sách (hữu ích hơn hành vi được ghi lại nếu bạn hỏi tôi, nhưng có lẽ bạn không biết). Tôi nghĩ rằng điều này đã được thảo luận gần đây trên vim_dev
.