Antworten:
Ja da ist! Sie können dies mit :tabdo
und erreichen :windo
. Für Ihren Fall speziell:
:tabdo windo set number
Siehe :help :tabdo
und :help :windo
für weitere Informationen.
:tabdo windo set number
erledigt den Job, aber ich mag es nicht wirklich, da es tatsächlich zu jeder Registerkarte und jedem Fenster wechselt, bevor der Befehl ausgeführt wird. Nach Abschluss der Ausführung gelangen Sie zum letzten Fenster der letzten Registerkarte.
Ich denke, dies ist eine sauberere Möglichkeit, Optionen in allen Fenstern festzulegen, ohne die aktuelle Registerkarte und das aktuelle Fenster zu ändern:
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>)
Beim Ausführen :SetAll number 1
wird die Nummernspalte in allen Fenstern aktiviert, mit Ausnahme derjenigen, die buftype
festgelegt wurden, z. B. Hilfefenster.
Dies ist das gleiche wie ausgeführt wird : :tabdo windo let &number = 1
. Das zweite Argument muss also ein zuweisbarer Ausdruck sein. Stattdessen :set filetype=ini
wäre es :SetAll filetype "ini"
.
:tabdo windo
möglicherweise Autobefehle ausgelöst werden, und die Optionseinstellungen verlangsamen. Die Lösung von Tommy A kann zwar nicht sofort verwendet werden, wird jedoch in Plugins bevorzugt.
:tabdo
ist nicht ausreichend.:help :tabdo
sagt, dass es im aktuellen Fenster jeder Registerkarte funktioniert. Um einen Befehl in allen Fenstern in allen Registerkarten auszuführen, benötigen Sie:tabdo windo set number
.