Eso debería funcionar. Probé esa línea yo mismo y funcionó. Podría ser que su opción 'modeline' se haya configurado en 'nomodeline'. Intenta ejecutar esto y mira lo que obtienes.
:verbose set modeline?
Eso le dirá el valor de la opción 'modeline' y, si no es la predeterminada, dónde se configuró por última vez.
Algunas distribuciones de Linux establecen 'nomodeline' en / etc / vimrc o / usr / share / vim / vimrc como medida de seguridad, a pesar de que los problemas de seguridad con 'modeline' se han solucionado durante mucho tiempo.
@duckbrain Es fundamentalmente imposible garantizar que todos los problemas de seguridad se hayan solucionado siempre que sea posible incluir instrucciones incrustadas para que el código las ejecute mirando los datos en los mismos datos. Es por eso que la documentación para el nvi de Keith Bostic siempre ha dicho modelinesque la opción no está implementada y que nunca lo estará. Esto es igual que todos los errores de seguridad derivados de comandos integrados en archivos o instrucciones de macro para ejecutar en PDF, Word, Excel, & c & c & c.
Realmente me quedé perplejo con esto porque la documentación no es del todo cierta.
Resulta que en la versión 8 (y tal vez antes) no puede usar la palabra seten su línea de modo. La documentación describe "la segunda forma" como tal, /* vim: set ai tw=75: */pero esto no funciona. Tienes que usar "la primera forma"// vim: ai tw=75
Nota: Puede usar cualquiera de esos tipos de indicadores de comentarios. O ninguno en absoluto.
Esto no es necesariamente cierto para todas las instalaciones de vim. El formulario con setfunciona bien para mí en vim 8.0 (aunque no en 7.4). También vale la pena señalar que con la segunda forma // vim: ai tw=75, no puede haber otros caracteres al final de la línea, o vim se quejará e ignorará la línea de modelo.
Josh
Esto definitivamente debe informarse como un error (o como documentaciones desactualizadas). Reproduje en 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 [email protected] Übersetzt von [email protected] Riesige Version mit GTK2-GNOME GUI. (Las últimas líneas significan modificado por ... , compilado por ... , versión enorme ... ).
LittleByBlue
Traté de abordarlo en la lista de correo. No estuvieron de acuerdo.
Bruno Bronosky
@BrunoBronosky, ¿tiene un enlace al hilo de correo? Me gustaría leer su razonamiento.
Esto no tiene ningún efecto si modelineno se establece también (que es por defecto en Vim a menos que sea root)
kynan
Gentoo tiene un sistema de amplia set nomodelineen /etc/vimrcdebido a todas las vulnerabilidades con modelines manipulación en vim.
MattBianco
En mi caso, también tuve que establecer modelinesun valor distinto de cero. La ayuda dice que el valor predeterminado es 5, así que eso es lo que configuré y eso me funcionó. Los estados 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.
filetype=conf
Last set from /usr/local/Cellar/vim/8.0.1350/share/vim/vim80/filetype.vim
Puede haber un efecto secundario en alguna parte de mi conf, pero la sintaxis de modeline no compatible es la única que funciona como se esperaba para mí.
/usr/share/vim/vim80/debian.vimdesde vim-commonen distribuciones basadas en Debian se deshabilita modelinepor defecto.
" modelines have historically been a source of security/resource
" vulnerabilities -- disable by default, even when 'nocompatible' is set
set nomodeline
Usted tiene que permitir modelineexplícitamente en su .vimrco ~/.vim/vimrcarchivo.
Respuestas:
Eso debería funcionar. Probé esa línea yo mismo y funcionó. Podría ser que su opción 'modeline' se haya configurado en 'nomodeline'. Intenta ejecutar esto y mira lo que obtienes.
Eso le dirá el valor de la opción 'modeline' y, si no es la predeterminada, dónde se configuró por última vez.
Algunas distribuciones de Linux establecen 'nomodeline' en / etc / vimrc o / usr / share / vim / vimrc como medida de seguridad, a pesar de que los problemas de seguridad con 'modeline' se han solucionado durante mucho tiempo.
fuente
modelines
que la opción no está implementada y que nunca lo estará. Esto es igual que todos los errores de seguridad derivados de comandos integrados en archivos o instrucciones de macro para ejecutar en PDF, Word, Excel, & c & c & c.Describo una lista de verificación de depuración completa en esta otra respuesta .
Realmente me quedé perplejo con esto porque la documentación no es del todo cierta.
Resulta que en la versión 8 (y tal vez antes) no puede usar la palabra
set
en su línea de modo. La documentación describe "la segunda forma" como tal,/* vim: set ai tw=75: */
pero esto no funciona. Tienes que usar "la primera forma"// vim: ai tw=75
Nota: Puede usar cualquiera de esos tipos de indicadores de comentarios. O ninguno en absoluto.
fuente
set
funciona bien para mí en vim 8.0 (aunque no en 7.4). También vale la pena señalar que con la segunda forma// vim: ai tw=75
, no puede haber otros caracteres al final de la línea, o vim se quejará e ignorará la línea de modelo.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 [email protected] Übersetzt von [email protected] Riesige Version mit GTK2-GNOME GUI.
(Las últimas líneas significan modificado por ... , compilado por ... , versión enorme ... ).set modelines=1
(o cualquier valor que no sea 0) en mi ~ / .vimrc lo hizo funcionar para mí.fuente
modeline
no se establece también (que es por defecto en Vim a menos que sea root)set nomodeline
en/etc/vimrc
debido a todas las vulnerabilidades con modelines manipulación en vim.modelines
un valor distinto de cero. La ayuda dice que el valor predeterminado es5
, así que eso es lo que configuré y eso me funcionó. Los estados 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.
en ~ / .vimrc necesita establecer lo siguiente:
fuente
Agregando solo lo siguiente a mi
~/.vimrc
trabajo para mí en mi caja Funtoo Linux:fuente
Dado que esto parece aparecer en las búsquedas:
Yo tuve el mismo problema:
no funcionó, lo que resultó en ft = conf también. sin la línea de modelo en mi ~ / .bash_alias, ft está vacío, por lo que algo cambia.
mientras
trabajó. la última presencia ":" parece ser irrelevante.
Estoy en OSX con una versión elaborada de Vim8, para los registros.
es raro porque de la ayuda modeline tanto
y
Parece ser compatible.
La salida de
con "vim: filetype = sh" es
sin modeline:
con "vim: set filetype = sh"
Puede haber un efecto secundario en alguna parte de mi conf, pero la sintaxis de modeline no compatible es la única que funciona como se esperaba para mí.
fuente
/usr/share/vim/vim80/debian.vim
desdevim-common
en distribuciones basadas en Debian se deshabilitamodeline
por defecto.Usted tiene que permitir
modeline
explícitamente en su.vimrc
o~/.vim/vimrc
archivo.fuente
Lo más probable es que se deba a que la línea de modelo está deshabilitada.
Yo trabajo alrededor de eso por:
En este caso, los comandos predeterminados de la lista blanca incluyen
filetype
.fuente