Pergunta

Quando abro um arquivo de texto no bloco de notas, ele mostra uma linha em branco se não houver um retorno de carro no final da última linha que contém o texto. No entanto, no Vim não mostrar esta linha em branco. Outra coisa que notei é que o editor Vim acrescenta um retorno de carro para a última linha por padrão (mesmo que ele não mostrá-lo). Eu posso dizer, porque se eu abrir um arquivo no bloco de notas que foi criado no Vim, ele mostra uma linha em branco no final do arquivo.

De qualquer forma, eu posso viver com estas duas diferenças, mas eu estou querendo saber se existe uma opção no Vim que permite alternar esse comportamento.

Graças

PS - GVim 7.2

[Update]

Será que isso faz sentido para estar no servidor falha vez?

[Update 2]

Vou reformular isso ... Eu preciso saber quando há um retorno de carro no final do arquivo de linha única (programas de bloco de notas uma linha extra com nenhum texto, com Vim eu não posso dizer). Isto é devido a um programa Progress que lê um arquivo de texto (espera uma única linha, mas com um retorno de carro) e analisa o texto para algum propósito. Se não houver um retorno de carro, Progresso trata a linha como se fosse nulo.

[Solução Solution] Uma maneira que eu encontrei para garantir que há um retorno de carro (mas certifique-se que não adicionar um segundo) é ter a certeza que tenho o fim opção de linha de gravação ligado de (: conjunto EOL) e, em seguida, basta fazer uma escrever / salvar. Isto irá colocar um fim de linha no arquivo se ele não estiver lá. Caso contrário, ele não adicionar um novo.

Foi útil?

Solução

:help endofline

explica como você poderia parar vim de adicionar uma nova linha extra.

Outras dicas

Parece que vim trata de nova linha como um terminador de linha, enquanto trata bloco de notas-lo como um separador de linha: de http://en.wikipedia.org/wiki/Newline

Há também alguma confusão se novas linhas terminar ou linhas separadas. Se uma nova linha é considerada uma separador, não haverá nova linha após a última linha de um arquivo. o convenção geral sobre a maioria dos sistemas é para adicionar uma nova linha, mesmo após a última A linha, ou seja, para tratar a nova linha como uma linha de o Exterminador do Futuro. Alguns programas têm problemas de processamento a última linha de um arquivo se ele não é nova linha terminada. Por outro lado, os programas que esperar nova linha a ser usado como um separador de vontade interpretar uma nova linha final como começando um novo (vazio) A linha. Isso pode resultar em uma contagem de linha diferente que está sendo relatado para o arquivo, mas é de outra maneira geralmente inofensivas.

Se bem me lembro, em sistemas Unix-y um arquivo de texto deve ser terminada com uma nova linha.

Uma opção Vim útil é

set list

Ele vai ajudar você ver todos os finais de linhas caracteres (e possivelmente outros caracteres geralmente invisíveis). Então, você será capaz de ver esta última FimDeLinha diretamente no Vim e não apenas no bloco de notas.

Quando você abrir o arquivo no VIM a linha de status deve dizer [noeol] após o nome do arquivo. Então essa é uma indicação. Como Manni disse, você pode mudar este ajuste usando tanto a opção endofline fora ea opção binary diante. Você pode definir esta como configurações padrão em um arquivo .vimrc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top