O vim pode avisar sobre um estouro de tabpagemax?

1

Se eu abrir uma coleção de arquivos nas guias do vim usando um padrão glob, eu gostaria de ser avisado se o número de arquivos que correspondem ao padrão exceder o valor de tabpagemax . Por exemplo, se o seguinte,

$ vi -p 'find . -type f -name "*.tex"'

corresponde a mais arquivos do que tabpagemax , apenas% tab_de% documentos abertos são abertos. Eu gostaria de um aviso ou erro neste caso. Pode ser feito?

    
por user7543 23.09.2013 / 22:57

1 resposta

1

Eu não estou encontrando nenhum método em que vim possa emitir um aviso quando o tabpagemax for excedido, então a próxima melhor coisa é verificar, antes de executar vim .

Solução potencial

Aqui estamos executando o primeiro, armazenando os resultados em uma variável, $tfiles . Em seguida, só invocamos vim -p se o número de arquivos encontrados for menor ou igual ao valor $guard , 20.

$ guard=20
$ tfiles=$(find . -type f -name "*.tex")
$ [ $(echo $tfiles | wc -w) -le $guard ] && vim -p $tfiles || echo "too many"

Isso pode ser convertido em um oneliner assim:

$ guard=20; \
tfiles=$(find . -type f -name "*.tex"); \
[ $(echo $tfiles | wc -w) -le $guard ] && vim -p $tfiles || echo "too many"

Exemplo

Quando temos mais de 3 arquivos retornados, recebemos esse tipo de experiência:

$ guard=3; \
  tfiles=$(find . -type f -name "*.txt"); \
  [ $(echo $tfiles | wc -w) -le $guard ] && vim -p $tfiles || echo "too many"
too many

Se tivermos menos de 3 arquivos, eles serão abertos em vim em guias separadas.

    
por 24.09.2013 / 04:16

Tags