VIM Désactiver Automatique de Saut de ligne En Fin De Fichier
Donc je travaille en PHP boutique, et nous l'utilisons tous différents éditeurs, et nous avons tous à travailler sur windows. J'utilise vim, et tout le monde dans la boutique continue de se plaindre que quand je veux modifier un fichier, il y a un retour à la ligne du bas. J'ai cherché et trouvé que c'est un comportement documenté de vi & vim... mais je me demandais si il y avait un moyen de désactiver cette fonctionnalité. (Il paraîtra sans mieux si je pouvais désactiver pour des extensions de fichier spécifique).
Si quelqu'un sait à ce sujet, ce serait super!
- vous devez leur dire qu'ils sont stupides, il y a vraiment une bonne raison pourquoi vim n'est que: stackoverflow.com/questions/729692/... . Je suppose que c'est n'est pertinente que si vous êtes sur le déploiement de type unix, serveurs, cependant.
- L'officiel de PHP est recommandé d'omettre la dernière
?>
balise de fermeture, juste pour cette raison. - cette question, probablement antérieur superutilisateur... mais il devrait être là.
- La véritable question devrait être: Comment pouvons-nous dire à tous les autres éditeurs que les gens dans votre boutique à l'aide à s'assurer que la dernière ligne du fichier se termine avec une fin de ligne (EOL. 😉
Vous devez vous connecter pour publier un commentaire.
même si le fichier a déjà été enregistré avec de nouvelles lignes à la fin:
vim -b file
et une fois dans vim:
fait.
sinon, vous pouvez ouvrir des fichiers dans vim avec
:e ++bin file
Encore une autre alternative:
Et pour vim 7.4+ vous pouvez également utiliser à la place (de préférence sur votre .vimrc):
(grâce à 罗泽轩 pour ce dernier peu de nouvelles!!!)
set binary
etset noeol
dans votre .vimrcbinary
remplaceexpandtab
, ce qui vous permettra d'obtenir littérale onglets dans votre source.set nofixendofline
pour résoudre le problème dans Vim 7.4+Ajouter la commande suivante à votre .vimrc à son tour de la fin-de-ligne option:
Cependant, PHP lui-même ignore que la dernière fin-de-ligne - il ne devrait pas être un problème. Je suis presque certain que dans votre cas, il y a autre chose qui est de l'ajout du dernier caractère de saut de ligne ou, éventuellement, il y a un problème avec windows/unix de fin de ligne types (
\n
ou\r\n
, etc).Mise à jour:
Une solution alternative pourrait être d'suffit d'ajouter cette ligne à votre .vimrc:
Il y a une autre façon d'aborder cette question si vous utilisez Git pour le contrôle de source. Inspiré par une réponse ici, j'ai écrit mon propre filtre pour une utilisation dans un gitattributes fichier.
Pour installer ce filtre, l'enregistrer en tant que
noeol_filter
quelque part dans votre$PATH
, de le rendre exécutable, et exécutez les commandes suivantes:Pour commencer à utiliser le filtre seulement pour vous-même, mettez la ligne suivante dans votre
$GIT_DIR/info/attributes
:Ce sera assurez-vous de ne pas commettre une nouvelle ligne à eof dans un
.php
fichier, peu importe ce que Vim ne.Et maintenant, le script lui-même:
Je n'ai pas essayé cette option, mais les renseignements qui suivent sont donnés dans le vim système d'aide (c'est à dire aider eol):
Vous pouvez être intéressé par la réponse à une précédente question ainsi: "Pourquoi les fichiers à la fin avec un retour à la ligne".
J'ai ajouté une pointe sur le Vim wiki similaire (bien que différent) problème:
http://vim.wikia.com/wiki/Do_not_auto-add_a_newline_at_EOF
fixeol
option qui peut être désactivé automatiquement préserver toute manquant en fin de vie à la fin du fichier. Ce script devient uneccessary pour Vim 7.4.785 et plus tard.” (Source: la même page wiki.) Merci, je n'étais pas au courant de cette nouvelle option.noeol
etnofixeol
pour atteindre le résultat souhaité.OK, vous d'être sur Windows complique les choses 😉
Comme le 'binaire' option permet de réinitialiser le 'fileformat' option (et l'écriture binaire de " définir écrit toujours avec des fins de ligne unix), il faut sortir le gros marteau et de le faire à l'extérieur!
Comment sur la définition d'un autocommand (:aider autocommand) pour la BufWritePost événement? Cette autocommand est exécuté après chaque fois que vous écrivez un tampon entier. Dans ce autocommand appeler un petit outil externe (php, perl ou quel que soit le script) qui enlève le dernier caractère de saut de ligne de la juste écrit un fichier.
Donc, ce serait ressembler à ce sujet et aller dans votre .fichiers vimrc:
Assurez-vous de lire l'ensemble de la documentation de vim sur autocommands si c'est votre première fois avec autocommands. Il ya quelques mises en garde, par exemple, il est recommandé de supprimer toutes les autocmds dans votre .vimrc dans le cas où votre .vimrc pourrait obtenir de source à plusieurs reprises.
silent
. E. g.silent !your-script <afile>
.J'ai mis en place Blixtor suggestions avec Perl et Python post-traitement, soit en cours d'exécution à l'intérieur de Vim (si il est compilé avec un tel support de la langue), ou via un script Perl externe. Il est disponible comme le PreserveNoEOL plugin sur vim.org.
let g:PreserveNoEOL = 1
dans mon.vimrc
fichier! Dû apprendre vimscript à la figure que de plugin description! 😀INSTALLATION
etCONFIGURATION
. N'avait même pas remarqué laUSAGE
section dans la description, parce qu'il est au-dessus de l'installation 🙂Vous pourriez peut-être chercher à comprendre pourquoi ils se plaignent. Si un fichier php a un saut de ligne après la fin ?>, php va sortie comme une partie de la page. Ce n'est pas un problème, sauf si vous essayez d'envoyer des en-têtes une fois que le fichier est inclus.
Cependant, la ?> à la fin d'un fichier php est facultatif. Pas de fin ?>, pas de problème avec un saut de ligne à la fin du fichier.
- Je ajouter dans .vimrc
et il permet, essayer
Je crois que j'ai trouvé une meilleure solution que l'on a accepté la réponse. Les solutions alternatives n'ont pas de travail pour moi et je ne voulais pas avoir à travailler en mode binaire tout le temps.
Heureusement, cela semble faire le travail et je n'ai pas rencontré de effets secondaires désagréables encore: préserver manquant de fin de ligne à la fin des fichiers texte. Je viens d'ajouter le tout à mon ~/.vimrc.
Serait-il possible pour vous d'utiliser une commande spéciale pour l'enregistrement de ces fichiers?
Si vous ne :ensemble binaire, :w et :ensemble nobinary le fichier sera écrit sans retour à la ligne si il n'y avait rien pour commencer.
Cette séquence de commandes pourrait être mis dans un définis par l'utilisateur commande ou d'une cartographie, bien sûr.
J'ai trouvé ce vimscript plugin est utile pour ce genre de situation.
Ou en lire plus à github