จับคู่คำเดียวเท่านั้นในบรรทัดโดยใช้รูปแบบ regex


0

ฉันพยายามเขียนฟังก์ชั่นที่ง่ายมากที่จะจับคู่คำเดียวที่จุดเริ่มต้นของบรรทัดเพื่อเขียนร้อยแก้ว มันจะแล้วและย้ายไปลงเส้นcenter +1แต่ฉันมีปัญหากับไวยากรณ์ของ regex

function! Testing()
    let line=getline('.')
    if line =~ ^\w+(\s+|$)
        center
        +1
    else
        center
        +1
    endif
endfunction

ในที่สุดนี้จะเป็นเพราะคำสั่ง if จะมีส่วนเพิ่มเติมที่จะupperwordและindent4วางเคอร์เซอร์ในเครื่องหมายคำพูด

คำตอบ:


0

คุณกำลังมองหา

if line =~ "^\w\+\>"

ก่อน การเรียกร้อง ป้อนคำอธิบายรูปภาพที่นี่


ไม่นี่ไม่ได้ผลิตอะไรเลยเหรอ?
FallenAngel

ที่นี่โดยการแทนที่สายนี้ในตำแหน่งที่เหมาะสมในฟังก์ชั่นของคุณมันจะอยู่กึ่งกลางบรรทัดปัจจุบันอย่างสมบูรณ์เมื่อเรียกใช้ฟังก์ชัน โอ้ แต่ฉันลืม: ฟังก์ชั่นควรจะจบลงด้วยฟังก์ชั่น endfunction ไม่ใช่ "ฟังก์ชั่นสิ้นสุด"
Gombai Sándor

พวกเจ้าเป็นเพียงแค่การคัดลอกมากกว่าข้อผิดพลาดที่ฉันได้แก้ไขมัน มันไม่ทำอะไรเลยยังมีบางอย่างที่ฉันขาดหายไปที่นี่หรือ
FallenAngel

คุณควรให้บรรทัดตัวอย่างที่คุณกำลังลองด้วย ฉันคิดว่าสิ่งที่คุณหมายถึงโดย "คำว่า" จะแตกต่างจากสิ่งที่คำว่ามีความหมายโดยคำ regexp
Gombai Sándor

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