Jawaban:
Ya ada! Anda dapat mencapai ini dengan :tabdo
dan :windo
. Khusus untuk kasus Anda:
:tabdo windo set number
Lihat :help :tabdo
dan :help :windo
untuk informasi lebih lanjut.
:tabdo windo set number
menyelesaikan pekerjaan, tapi saya tidak terlalu suka karena itu benar-benar beralih ke setiap tab dan jendela sebelum menjalankan perintah. Setelah selesai berjalan, Anda akan berakhir di jendela terakhir dari tab terakhir.
Saya pikir ini adalah cara yang lebih bersih untuk mengatur opsi di semua jendela tanpa mengubah tab dan jendela saat ini:
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>)
Menjalankan :SetAll number 1
akan mengaktifkan kolom nomor di semua jendela, kecuali yang telah buftype
ditetapkan, seperti jendela bantuan.
Ini adalah sama dengan menjalankan: :tabdo windo let &number = 1
. Jadi, argumen kedua harus berupa ekspresi yang dapat ditentukan. Alih-alih :set filetype=ini
, itu akan terjadi :SetAll filetype "ini"
.
:tabdo windo
dapat memicu perintah otomatis, dan memperlambat pengaturan opsi. Sementara solusi Tommy A tidak dapat digunakan di luar kotak, itu yang lebih disukai dalam plugin.
:tabdo
Tidak cukup.:help :tabdo
mengatakan bahwa ia beroperasi di jendela saat ini dari setiap halaman tab. Untuk menjalankan perintah di semua jendela di semua tab yang Anda perlukan:tabdo windo set number
.