:set number
应用于所有打开的选项卡吗?#1 楼
就在这里!您可以使用:tabdo
和:windo
完成此操作。具体针对您的情况::tabdo windo set number
有关更多信息,请参见
:help :tabdo
和:help :windo
。#2 楼
: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的解决方案不能直接使用,但它是插件中首选的解决方案。
–卢克·赫米特(Luc Hermitte)
17年4月12日在8:00
评论
:tabdo是不够的。 :help:tabdo表示它在每个标签页的当前窗口中运行。要在所有选项卡的所有窗口中执行命令,您需要:tabdo windo set number。
–加里约翰
17年4月12日在0:13
有道理!我会更新。
– Tumbler41
17年4月12日在1:42