Você pode usar ?\w
enter seguido por A
-
?\w
procura de volta pela primeira palavra -
A
coloca você no modo de inserção na última linha que contém o conteúdo
Com arquivos de texto plano, quando os reabro no Vim para adicionar conteúdo, quero ir até o final da última linha de conteúdo e entrar no modo de inserção. Em circunstâncias ideais, um simples GA
após abrir o arquivo cuidaria disso. Infelizmente, eu tenho o hábito de adicionar algumas novas linhas extras no final do arquivo, e está provando um hábito difícil de se livrar.
Dado isso, qual é a maneira mais simples no Vim de dizer "vá para a última linha do arquivo que contém conteúdo, vá para o final dessa linha e entre no modo de inserção"? Eu acho que o cerne da minha pergunta é, como eu expresso o conceito de "última linha que tem conteúdo" para o Vim?
Se você deseja sempre acessar a última linha de um arquivo que não é espaço em branco ou um determinado tipo de arquivo, insira um autocmd no seu ~/.vimrc
. Por exemplo:
:autocmd BufRead *.txt :$;?\S?
Isso vai automaticamente para o final do arquivo e procura por um caractere que não seja espaço em branco, em qualquer arquivo que corresponda ao padrão de glob *.txt
. Você então digita o
por exemplo para adicionar coisas.
A mesma técnica pode ser usada para remover linhas em branco que você deixa no final de buffers quando você os escreve de volta no arquivo, portanto evitando o problema em primeiro lugar. Por exemplo:
:autocmd FileType python autocmd BufWritePre <buffer> :%s/\(\n\s*\)\+\%$//e
Este exemplo faz isso apenas para arquivos reconhecidos como filetype python (por exemplo, sufixo .py).
Eu nunca trabalhei no Vim, mas vou propor alguma lógica: