Vamos criar dois arquivos:
$ echo -n 'test' > test.txt
$ wc test.txt
0 1 4 test.txt
O arquivo test.txt
não contém a nova linha à direita.
$ echo 'test' > test_n.txt
$ wc test_n.txt
1 1 5 test_n.txt
O arquivo test_n.txt
contém a nova linha à direita.
O acima de dois arquivos são obviamente diferentes, mas a visualização dos arquivos em vim
no modo de inserção não contém quaisquer diferenças:
$ vim test.txt
$ vim test_n.txt
Por que não há diferença (nova linha ou alguma distinção especial)?
E o que posso fazer para adicionar ou remover um caractere adicional vim
no modo de inserção ?
Respostas:
O vim possui o modo "eol" (para final de linha) para dizer o que fazer se a última linha do arquivo não possuir um caractere de nova linha . Você pode ver todas as configurações de modo no vim (ou qualquer programa como o vi),
POSIX vi não tem um recurso para isso: os arquivos são ou comprimento zero, ou ter uma nova linha final. Isso ocorre porque o POSIX vi lida apenas com arquivos de texto, que por definição são linhas que terminam com novas linhas. Em uma verificação rápida, nvi e elvis não têm modos para isso. No meu comentário, eu havia esquecido um detalhe do vim: ao contrário do vil, um ": set list" não mostra prontamente a nova linha ausente. Aqui está o que eu vejo no vim:
enquanto no vil:
Para qualquer editor, você pode ler o arquivo, alterar o modo , por exemplo,
e escreva o arquivo para obter uma nova linha no arquivo atualizado. Em vez de mostrá-lo diretamente, você pode modificar a linha de status do vim para mostrar essas informações. Por padrão, ele não parece fazer isso, mas alguns empacotadores personalizaram isso, por exemplo,
Um dos comentários sugere o uso do "?" modificador do
set
comando, por exemplo,o que pode mostrar algo como isto:
mas no modo de inserção, que é substituído por
portanto, a linha de status parece o lugar certo para manter essas informações.
Os recursos já existem há algum tempo:
O
eol
recurso apareceu pela primeira vez no vim 2.4 (julho de 1994), de acordo com um comentário em seu código-fonte.vile's
newline
mode apareceu em julho de 1993 .( nvi, elvis, vim e vile manipulam arquivos binários , além dos arquivos de texto do POSIX vi ).
fonte
:set eol?
verificar se o eol está ativado ou desativado, para que você não precise examinar toda a saída do:set all
.