Como impedir que o Gedit, o Gvim, o Vim e o Nano adicionem o caractere de nova linha do fim do arquivo?

33

Às vezes, quero que a última linha de um arquivo de texto seja uma cadeia de texto simples com o caractere sem nova linha anexado: ... por exemplo. para concatenar outro arquivo para ele.

Vários editores automaticamente modificam meu texto adicionando um caractere de nova linha, mesmo que eu não tenha pressionado Enter .

Remains unmodified: Emacs, SciTE, Kate, Bluefish, Bloco de notas (vinho)

Newline is added: Gedit, Gim, Vim, Nano

Eu gostaria de saber se existe alguma maneira de ajustar o Gedit, o Gvim e o Vim para salvar apenas o que eu digitei ... e até mesmo o Nano pode ser útil

Eu atualmente uso o Gedit, e estou usando o Gvim / Vim .. então seria útil saber como ativar / desativar estes ...

PS . Ao reabrir o mesmo arquivo no Gedit, Gvim e Vim, o posicionamento do fim do arquivo do cursor está no final do texto, ao passo que ele deve realmente aparecer na próxima linha (vazia). Isso é enganoso (mas é por causa do que estou acostumado).

Eu usei um hexeditor para verificar as observações acima.

    
por Peter.O 15.11.2010 / 05:21

3 respostas

41

Para gEdit não parece haver uma maneira de desativar uma nova linha inserida no final.

No entanto, para Vim < img src="https://hostmar.co/software-small"> (e gVim ) você pode - executando a seguinte opção: :set binary . A configuração para binário salvará o arquivo como está e não inserirá uma nova linha no final do documento (a menos que já exista um, no qual ele será retido). A qualquer momento, você pode reverter essa opção com :set nobinary .

Nano é um pouco mais fácil. Você pode iniciar o nano com o sinalizador -L (ou --nonewlines se você for mais do tipo visual). Isso desativará a adição automática da nova linha ao final do arquivo (desde que não tenha sido inserido). O ideal seria configurar esse alias em ~/.bashrc : alias nanon=nano -L , que lançaria o Nano com o sinalizador "sem novas linhas" incluído nele.

Como não sei exatamente o que você está fazendo, indico Por que os arquivos devem terminar com uma nova linha? , o que pode explicar por que eles estão lá. Em suma, alguns aplicativos falharão se não encontrarem um EOL diretamente antes do EOF

    
por Marco Ceppi 15.11.2010 / 06:44
13

Para o gEdit:

Se você estiver usando 12.04 ou 12.10 (outras versões não testadas), você pode definir o comportamento já.

  1. Executar o editor do dconf ( dconf-editor )
  2. Ir para /org/gnome/gedit/preferences/editor
  3. Desmarque ensure-trailing-newline se não quiser incluir novas linhas automaticamente.

Referência | Erro no Launchpad

    
por Ravi Gadhia 03.12.2013 / 07:44
0

Se você quiser apenas escrever um arquivo de linha única, o eco provavelmente é a solução mais fácil:

echo -n "the contents of my file" > myfile
    
por jpillora 03.03.2016 / 09:27