append()
insere várias linhas de texto abaixo da linha especificada como o primeiro argumento. Isso está alinhado com o append
comando ex. Você pode, por exemplo, digitar :append
(e entrar no modo ex) e, em seguida, escrever várias linhas de texto e sair do modo ex (pressionando, <c-c>
por exemplo), as linhas aparecerão após a linha em que o cursor estiver ativado. Em outras palavras, o append
comando significa: acrescentar as linhas de texto que escreverei abaixo da atual.
A função VimScript append()
permite especificadores de linha, o que a torna mais útil que o comando ex. Coisas úteis que costumam surgir são maneiras de injetar trechos de texto no início e no final de um arquivo. por exemplo, para o LaTeX, isso pode ser útil:
call append(line('^'), [ '\documentclass[12pt]{article}'
\ , '\begin{document}'])
call append(line('$'), '\end{document}')
Onde line('$')
está a última linha do arquivo e line('^')
sempre retorna 0
(e eu poderia ter escrito isso sem problemas).
Para obter o comportamento do Vim A
ou de qualquer outro comando de modo normal do Vim, você pode usar normal
. Para que a saída Foo()
apareça no final de uma linha pode ser um pouco mais complicado, uma maneira é usar execute
:
execute ':normal! A' . Foo()
Ou você pode usar anexar e executar J
:
call append(line('.'), Foo())
normal! Jx
(Observe que x
é necessário remover o espaço gerado por J
, mas isso pode não funcionar conforme o esperado se a sequência gerada por Foo()
iniciar com espaços).
A
que de fato anexa o texto à linha atual.