vim "modificable" está desactivado


Intentando crear un nuevo archivo con nerd tree. Presiono la tecla a para crear un nuevo archivo y recibo el mensaje:

E21: Cannot make changes, 'Modifiable' is off

Estoy usando MacVim y Janus (casi fuera de la caja)

Author: Xavier T., 2011-04-21

5 answers

:set ma

Que es la abreviatura de

:set modifiable

Hará que un buffer sea modificable. Y

:set noma

Hace lo contrario.

 184
Author: Adam Soltys,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-17 20:01:59

No estoy familiarizado con NERDTree, pero supongo que al escribir a en una vista nerdtree, se interpreta como "Quiero agregar algo en el búfer nerdtree", y ese búfer no es modificable.

Puede comprobar la respuesta vim y NERD Tree extension - agregando un archivo que explica cómo agregar un archivo con Nerdtree.

 12
Author: Xavier T.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:28

Ok, esta puede no ser la respuesta más informada, ya que apenas tengo un conocimiento práctico de vim o Linux, Pero he encontrado una solución a mi problema y puede funcionar para usted. Para ser específico, mi problema era doble:

1) cada vez que intenté editar algo en este nuevo archivo que creé, obtuve el No puedo hacer cambios, 'Modificable' está desactivado y...

2) después de ejecutar :set modifiable e intentar guardar, obtendría un error e382 de 'cannot write, buftype is set. así que no pude salvar.

Después de verter a través de montones de documentación críptica inútil me di cuenta de esto:

1) encuentra el .vimviews directorio, para mí estaba en la raíz de mi repositorio git, hacer un

ls 

Dentro de él. tengo algo como esto:

~=+www-halo=+test=+lib=+Halo=+Return2=+HeaderTest.php=
~=+www-halo=+test=+lib=+Halo=+Service=+LandmarkTest.php=
~=+www-halo=+test=+lib=+Halo=+Transaction=+AuthnetTest.php=

Que es totalmente inútil para usted ya que tiene una estructura de archivos diferente. pero busque el archivo que le está dando el problema. (oh, por cierto, estos son de hecho nombres de archivo, que no es completamente obvio al mirar ellos). encuentre el que tiene el archivo en cuestión y elimine ese lechón: ejemplo:

rm ~=+www-halo=+test=+lib=+Halo=+Return2=+HeaderTest.php=

Problema resuelto.

 1
Author: Dallas Caley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-08 23:52:30

Si desea que ocurra un archivo en NERDTree, debe presionar "m" (para el menú) y luego "a". Simplemente introduciendo "a "en NERDTree buffer se interpretará como"modificar NERDTree buffer". Agregar: ma hará que NERDTree buffer sea modificable, pero esto no creará nuevos archivos para usted, conducirá a información inconsistente entre lo que NERDTree muestra y su jerarquía de archivos real.

 1
Author: Jeremy Fouriaux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-07 08:37:22

En caso de que alguien más le pase a Google a esto, compruebe que no está tratando de abrir un directorio en vim como acabo de ser (d'oh)

 0
Author: Max Williams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-29 20:10:27