คำถามติดแท็ก vimscript

ภาษาสคริปต์ฝังอยู่ใน Vim สามารถใช้ปรับแต่ง Vim ให้เหมาะกับความต้องการของคุณและสร้างปลั๊กอินได้ เรียกอีกอย่างว่า VimL

1
ฉันจะรวมพจนานุกรมสองเล่มใน Vim ได้อย่างไร
ฉันมีสอง dicts: :let defaults = {'hello': 'world', 'bye': 'jupiter'} :let override = {'hello': 'mars'} ฉันจะรวมกุญแจเข้าด้วยกันอย่างไรoverrideเพื่อที่ฉันจะได้ลงท้ายด้วยพจน์ใหม่เช่น: {'hello': 'mars', 'bye': 'jupiter'}

1
จอแสดงผลที่เป็นกลุ่มส่งออกไปยังข้อความ
ฉันสงสัยว่ามีคำสั่งใดที่คล้ายกัน:TOhtmlหรือไม่ แต่สำหรับข้อความธรรมดาเท่านั้นและแทนการแสดง Vim ทั้งหมด ตัวอย่างเช่นกำหนดจอแสดงผล: มันจะสร้างไฟล์ข้อความต่อไปนี้: 1 B 1 a ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ N <me] [+] 100% 1:1 ~ 1 a ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ N <me] [+] 100% 1:1 …
9 vimscript 

1
วิธีกำหนดโอเปอเรเตอร์ที่อัพเดตในขณะที่กำลังรับอินพุตอยู่
ฉันได้กำหนดการแมปโอเปอเรเตอร์ซึ่งใช้พื้นที่ของข้อความจากนั้นขอสตริงการป้อนข้อมูลจากนั้นจัดพื้นที่กับTabularโดยใช้สตริงอินพุตเป็นอาร์กิวเมนต์ มันทำงานได้เป็นอย่างดี ฉันได้ดำเนินการเช่นนี้โดยใช้vim-operator-userเพื่อช่วยกำหนดผู้ประกอบการใหม่: map \aa <Plug>(operator-align) call operator#user#define('align', 'Align') function! Align(motion_wiseness) let expr = input("align: ") if len(expr) != 0 execute "'[,']Tabularize /".expr endif endfunction function! Getchar() let c = getchar() if c =~ '^\d\+$' let c = nr2char(c) endif return c endfunction จากนั้นฉันสงสัยว่าฉันจะทำให้มันทันสมัยขึ้นหรือไม่ในขณะที่เข้าสู่นิพจน์ปกติเพื่อจัดแนว ปัญหาด้วยวิธีการปัจจุบันคือการที่คุณต้องเลิกทำแล้วทำซ้ำถ้าคุณไม่ได้ใช้การแสดงออกที่ถูกต้อง สำหรับความพยายามโต้ตอบฉันทำนี้: map \== <Plug>(operator-align-interactive) call …
9 vimscript 

1
คำแนะนำหลายบรรทัด
มีวิธีแยกคำสั่งหนึ่งบรรทัดออกเป็นหลายบรรทัดหรือไม่? ตัวอย่างเช่นฉันต้องการแปลง setlocal variable_name = condition1 ? "1" : condition2 ? "0" : condition3 ? "a long string" : "another long string" เข้าไป setlocal variable_name = condition1 ? "1" : condition2 ? "0" : condition3 ? "a long string" : "another long string" แต่เมื่อฉันลองมันเหมือนด้านบนมันเกิดข้อผิดพลาด "อาร์กิวเมนต์ไม่ถูกต้อง"
9 vimscript 

1
Regex ที่ชอบการแข่งขันที่สั้นกว่าในการแข่งขัน? (สิ่งนี้เกี่ยวข้องมากกว่าการไม่โลภ)
ฉันพยายามสร้างสคริปต์เพื่อทำการค้นหาแบบฟัซซีภายในบัฟเฟอร์ แนวคิดหลักคือการใช้การป้อนข้อมูลบางส่วนและแทรก.\{-}ระหว่างคู่ของตัวละครทุกเช่นกลายเป็นfoof.\{-}o.\{-}o วิธีนี้ใช้งานได้ดี แต่มีการจับคู่ที่ไม่เหมาะเป็นจำนวนมาก ฉันคิดว่าการค้นหาที่คลุมเครือควรให้ผลการแข่งขันที่สั้นที่สุดก่อน ลองพิจารณาตัวอย่างต่อไปนี้: public void put() การค้นหาคลุมเครือput(เช่นนั้นp.\{-}u.\{-}t) จะจับคู่สตริงทั้งหมดpublic void putแต่การย่อตัวputภายในนั้นจะมีประโยชน์มากกว่า ผู้ดำเนินการที่ไม่ใช่โลภเก่งในการค้นหาการแข่งขันที่สิ้นสุดก่อนหน้านี้ แต่ฉันต้องการบางสิ่งที่สามารถทำได้ในเวลาเดียวกันต้องการการแข่งขันที่เริ่มต้นในภายหลัง ตามหลักการแล้วมันไม่ควรโลภทั้งสองทิศทาง เป็นไปได้ไหม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.