มีตัวเลือกในการใช้การตั้งค่าในแท็บและหน้าต่างทั้งหมดเช่นนำ:set numberไปใช้กับแท็บที่เปิดอยู่ทั้งหมดหรือไม่
มีตัวเลือกในการใช้การตั้งค่าในแท็บและหน้าต่างทั้งหมดเช่นนำ:set numberไปใช้กับแท็บที่เปิดอยู่ทั้งหมดหรือไม่
คำตอบ:
ใช่แล้ว! คุณสามารถทำได้ด้วยและ:tabdo :windoสำหรับกรณีของคุณโดยเฉพาะ:
:tabdo windo set number
ดู:help :tabdoและ:help :windoสำหรับข้อมูลเพิ่มเติม
:tabdo windo set numberทำให้งานเสร็จ แต่ฉันไม่ชอบจริง ๆ เพราะมันสลับไปยังแต่ละแท็บและหน้าต่างก่อนเรียกใช้คำสั่ง หลังจากเสร็จสิ้นการทำงานคุณจะสิ้นสุดในหน้าต่างสุดท้ายของแท็บสุดท้าย
ฉันคิดว่านี่เป็นวิธีที่สะอาดกว่าในการตั้งค่าตัวเลือกในหน้าต่างทั้งหมดโดยไม่ต้องเปลี่ยนแท็บและหน้าต่างปัจจุบัน:
function! s:set_all(option, val, ...) abort
  let val = eval(a:val)
  for t in range(1, tabpagenr('$'))
    for w in range(1, tabpagewinnr(t, '$'))
      if gettabwinvar(t, w, '&buftype') !=# ''
        continue
      endif
      call settabwinvar(t, w, '&'.a:option, val)
    endfor
  endfor
endfunction
command! -complete=option -nargs=+ SetAll call s:set_all(<f-args>)
การรัน:SetAll number 1จะเปิดใช้งานคอลัมน์ตัวเลขในทุกหน้าต่างยกเว้นคอลัมน์ที่buftypeตั้งไว้เช่นหน้าต่างวิธีใช้
:tabdo windo let &number = 1แห่งนี้เป็นเช่นเดียวกับการทำงาน: ดังนั้นอาร์กิวเมนต์ที่สองจะต้องเป็นนิพจน์ที่กำหนดได้ แทนที่จะ:set filetype=iniเป็น:SetAll filetype "ini"เช่นนั้น
:tabdo windoอาจเรียกใช้คำสั่งอัตโนมัติและชะลอการตั้งค่าตัวเลือก ในขณะที่วิธีการแก้ปัญหาของ Tommy A ไม่สามารถใช้งานได้ทันที แต่เป็นสิ่งที่ต้องการในปลั๊กอิน
                    
:tabdoไม่เพียงพอ:help :tabdoบอกว่ามันทำงานในหน้าต่างปัจจุบันของแต่ละหน้าแท็บ:tabdo windo set numberในการดำเนินการคำสั่งในหน้าต่างทั้งหมดในแท็บทั้งหมดที่คุณจะต้อง