มีตัวเลือกในการใช้การตั้งค่าในแท็บและหน้าต่างทั้งหมดเช่นนำ: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
ในการดำเนินการคำสั่งในหน้าต่างทั้งหมดในแท็บทั้งหมดที่คุณจะต้อง