GNU/Linux >> Linux Esercitazione >  >> Linux

Perché Vim aggiunge una nuova riga? È una convenzione?

La convenzione per i file di testo Unix è che ogni riga è terminata da una nuova riga e che le nuove righe sono terminazioni di riga, non separatori di riga.

Quando Vim salva un buffer come file, termina ogni riga con la sequenza di fine riga per quel formato di file, che per Unix è una nuova riga. Vedi

:help 'fileformat'

Se stai utilizzando strumenti di elaborazione del testo Unix, è meglio attenersi a questa convenzione. Tuttavia, se hai bisogno di non inserire una nuova riga alla fine dell'ultima riga di un file, puoi farlo. Vim considera tali file come "binari". Vedi

:help 'binary'
:help edit-binary

Vim 8.0 ora prevede questo con il fixeol opzione. In particolare se lo fai:

:set nofixeol

quindi Vim non lo farà aggiungi un carattere di nuova riga finale alla fine della riga finale se il file non ne aveva già uno.

Potrebbe andare in un plug-in del tipo di file o forse anche nel tuo .vimrc .

(Questo è un miglioramento rispetto a :set binary perché influisce solo sul carattere di interruzione di riga finale, mentre binary cambia anche un sacco di altri comportamenti, che probabilmente non vorrai a meno che tu non stia effettivamente modificando un file binario.)

Un file appena creato avrà ancora un carattere di interruzione di riga finale per impostazione predefinita. Puoi cambiarlo (e cambiare un file che ha già una nuova riga finale per non averne una) facendo inoltre:

:set noeol

Questo deve essere impostato specificamente per ogni file che desideri modificare:il caricamento di un file in un buffer imposterà sempre eol in modo che corrisponda allo stato corrente del file.


Vim non sta aggiungendo nulla che non ci hai messo tu stesso.

Un carattere "newline" è not una "nuova riga" ed entrambi gli esempi sono perfettamente normali:

  • nel primo, il file contiene solo una riga, quindi ottieni un carattere di "nuova riga",
  • nella seconda, il file contiene due righe in modo da ottenere due caratteri "newline".

Linux
  1. Casella occupata Leggi file riga per riga?

  2. Sostituire Newline con Nul?

  3. Rimuovere la barra rovesciata + le sequenze di nuova riga?

  4. Perché l'aggiunta di due punti interrompe questo schema Grep?

  5. Vai all'inizio o alla fine del file in Vim [Suggerimento rapido]

Riduci le dimensioni del PDF con questo trucco da riga di comando

Come leggere un file riga per riga in Bash

Editor VIM

Perché usare shm_open?

Ansible decommentare la riga nel file

Perché vim non ricorda la mia posizione in un file tra le esecuzioni?