J'ai un fichier appelé .aliasesbash et zsh, je mets cette ligne
# vim: set filetype=bash:
mais si je fais
: echo &ft
Je reçois conf
J'ai un fichier appelé .aliasesbash et zsh, je mets cette ligne
# vim: set filetype=bash:
mais si je fais
: echo &ft
Je reçois conf
Réponses:
Cela devrait fonctionner. J'ai essayé cette ligne moi-même et cela a fonctionné. Je pourrais être que votre option «modeline» a été définie sur «nomodeline». Essayez d'exécuter cela et voyez ce que vous obtenez.
:verbose set modeline?
Cela vous indiquera la valeur de l'option 'modeline' et sinon la valeur par défaut, où elle a été définie pour la dernière fois.
Certaines distributions Linux définissent 'nomodeline' dans / etc / vimrc ou / usr / share / vim / vimrc comme mesure de sécurité, même si les problèmes de sécurité avec 'modeline' sont résolus depuis longtemps.
modelinesque l'option n'est pas mise en œuvre et qu'elle ne le sera jamais. C'est comme tous les bogues de sécurité provenant de commandes intégrées à des fichiers ou d'instructions de macro à exécuter en PDF, Word, Excel, etc., etc.
Je décris une liste de contrôle de débogage complète dans cette autre réponse .
J'étais VRAIMENT perplexe sur celui-ci car la documentation n'est pas entièrement vraie.
Il s'avère que dans la version 8 (et peut-être plus tôt), vous ne pouvez pas utiliser le mot setdans votre modélisation. La documentation décrit "le deuxième formulaire" comme étant /* vim: set ai tw=75: */mais cela ne fonctionne pas. Vous devez utiliser "le premier formulaire"// vim: ai tw=75
Remarque: vous pouvez utiliser l'un de ces types d'indicateurs de commentaire. Ou pas du tout.
setfonctionne bien pour moi sur vim 8.0 (mais pas sur 7.4). Il convient également de noter qu'avec le deuxième formulaire // vim: ai tw=75, il ne peut pas y avoir d'autres caractères à la fin de la ligne, ou vim se plaindra et ignorera la modeline.
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48) Inklusive der Korrekturen: 1-1689 Extra-Patches: 8.0.0056 Verändert von pkg-vim-maintainers@lists.alioth.debian.org Übersetzt von pkg-vim-maintainers@lists.alioth.debian.org Riesige Version mit GTK2-GNOME GUI. (Les dernières lignes signifient modifié par ... , compilé par ... , version énorme ... ).
set modelines=1 (ou toute valeur différente de 0) dans mon ~ / .vimrc l'a fait fonctionner pour moi.
modelinen'est pas également défini (ce qui est par défaut dans Vim sauf si vous êtes root)
set nomodelineen /etc/vimrcraison de toutes les vulnérabilités avec la manipulation des modelines dans vim.
modelinesune valeur non nulle. L'aide indique que la valeur par défaut est 5, c'est donc ce que je l'ai défini et cela a fait l'affaire pour moi. Le déclare que,If 'modeline' is on 'modelines' gives the number of lines that is checked for set commands. If 'modeline' is off or 'modelines' is zero no lines are checked.
Ajouter juste ce qui suit à mon ~/.vimrctravail pour moi sur ma boîte Funtoo Linux:
set modeline
Étant donné que cela semble apparaître dans les recherches:
J'ai eu le même problème:
# vim: set filetype=sh:
n'a pas fonctionné, ce qui entraîne également ft = conf. sans la modeline dans mon ~ / .bash_alias, ft est vide, donc quelque chose change.
tandis que
# vim: filetype=sh:
travaillé. la dernière présence ":" ne semble pas pertinente.
Je suis sur OSX avec une version brassée Vim8, pour mémoire.
c'est bizarre parce que la modeline aide à la fois
[text]{white}{vi:|vim:|ex:}[white]{options}
et
[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
semblent être pris en charge.
La sortie de
verbose set ft?
avec "vim: filetype = sh" est
filetype=sh
Last set from modeline
sans modeline:
filetype=
avec "vim: set filetype = sh"
filetype=conf
Last set from /usr/local/Cellar/vim/8.0.1350/share/vim/vim80/filetype.vim
Il peut y avoir un effet secondaire quelque part dans ma conf, mais la syntaxe de modeline non compatible est la seule qui fonctionne comme prévu pour moi.
/usr/share/vim/vim80/debian.vimfrom vim-commonsur les distributions basées sur Debian désactive modelinepar défaut.
" modelines have historically been a source of security/resource
" vulnerabilities -- disable by default, even when 'nocompatible' is set
set nomodeline
Vous devez activer modelineexplicitement dans votre fichier .vimrcou ~/.vim/vimrc.
set modeline
Cela est probablement dû à la désactivation de la modeline.
Je travaille autour de cela en:
Dans ce cas, les commandes par défaut sur liste blanche incluent filetype.