append()insere várias linhas de texto abaixo da linha especificada como o primeiro argumento. Isso está alinhado com o appendcomando 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 appendcomando 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 Aou 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).
Aque de fato anexa o texto à linha atual.