P: como posso obter um indicador visual que distinga entre o final do buffer e a parte inferior da janela?
Caso de uso: Eu tenho um buffer com algumas linhas em branco na parte inferior. No entanto, a parte inferior da janela além das linhas em branco também está em branco. Gostaria de saber, visualmente, onde o buffer termina / as linhas em branco param.
O Vim faz isso com caracteres que não são de texto na parte inferior de uma janela (ou seja, as til) para indicar que não há nada no buffer (como linhas em branco) nesse espaço, como na captura de tela abaixo:
Como obter o analógico desse recurso do Vim no Emacs?
EDIT: A resposta de @ glucas parece correta, mas eu adoraria ver uma resposta que não use a franja, pois defino a minha como nulo para economizar espaço na tela em uma pequena tela de laptop.
empty-line
componente dofringe-indicator-list
para indicar onde o final do buffer começa? Por exemplo,(setq fringe-indicator-alist '((empty-line . empty-line)))
adicione componentes adicionais à lista, conforme desejado. Este método, no entanto, requer uma franja para ser visível. Veja também: reddit.com/r/emacs/comments/2kdztw/…Respostas:
Você pode personalizar
indicate-empty-lines
para ativar um marcador de franja nas linhas após o final do arquivo ou ligartoggle-indicate-empty-lines
para ativar e desativar interativamente.Existe um pacote no MELPA que substitui o indicador de franja padrão por ~ para uma aparência mais próxima do que você obtém com o vi. Veja
vi-tilde-fringe
.Atualizada
Uma abordagem alternativa seria usar o modo de espaço em branco para tornar as quebras de linha visíveis. Tente
whitespace-newline-mode
, possivelmente ajustando owhitespace-newline
rosto. Visualmente, essa abordagem é mais ocupada do que o vi, pois você está marcando todas as linhas no buffer, exceto as linhas vazias após o conteúdo, mas obtém um resultado semelhante. (Também pode ser possível configurar o modo de espaço em branco ou um modo derivado personalizado para destacar apenas as linhas vazias no final do conteúdo do buffer.)fonte
Eu escrevi um pacote, char-font-lock , que (entre outros) destaca linhas vazias no final de um buffer.
Ele também destaca a última linha (caso não termine com uma nova linha), espaço no final das linhas, caracteres de tabulação e caracteres não-ascii. Você pode escolher qual das coisas que gostaria de destacar.
Por exemplo:
fonte
Alguém escreveu um pacote que gerencia uma sobreposição que abrange a área após o final do arquivo:
https://github.com/jmickelin/vim-empty-lines-mode
Lembre-se de que, embora essa solução se comporte de maneira mais correta e funcione também nos terminais, ela terá necessariamente menos desempenho e mais bugs do que o indicador de margem.
fonte