Respuestas:
¡Sí hay! Puede lograr esto con :tabdo
y :windo
. Para su caso específicamente:
:tabdo windo set number
Ver :help :tabdo
y :help :windo
para más información.
:tabdo windo set number
hace el trabajo, pero realmente no me gusta ya que en realidad cambia a cada pestaña y ventana antes de ejecutar el comando. Cuando termine de ejecutarse, terminarás en la última ventana de la última pestaña.
Creo que esta es una forma más limpia de establecer opciones en todas las ventanas sin cambiar la pestaña y la ventana actuales:
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>)
La ejecución :SetAll number 1
habilitará la columna de números en todas las ventanas, excepto las que se han buftype
configurado, como las ventanas de ayuda.
Esto es lo mismo que ejecutar: :tabdo windo let &number = 1
. Entonces, el segundo argumento debe ser una expresión asignable. En lugar de :set filetype=ini
, lo sería :SetAll filetype "ini"
.
:tabdo windo
puede activar los comandos automáticos y ralentizar la configuración de las opciones. Si bien la solución de Tommy A no se puede usar de fábrica, es la que se prefiere en los complementos.
:tabdo
No es suficiente.:help :tabdo
dice que funciona en la ventana actual de cada página de pestaña. Para ejecutar un comando en todas las ventanas en todas las pestañas que necesitará:tabdo windo set number
.