J'ai un fichier appelé .aliases
bash 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é .aliases
bash 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.
modelines
que 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 set
dans 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.
set
fonctionne 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.
modeline
n'est pas également défini (ce qui est par défaut dans Vim sauf si vous êtes root)
set nomodeline
en /etc/vimrc
raison de toutes les vulnérabilités avec la manipulation des modelines dans vim.
modelines
une 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 ~/.vimrc
travail 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.vim
from vim-common
sur les distributions basées sur Debian désactive modeline
par 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 modeline
explicitement dans votre fichier .vimrc
ou ~/.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
.