vim "modificable" está desactivado

147

Intentando crear un nuevo archivo con el árbol nerd. Presioné la atecla para crear un nuevo archivo y recibí el mensaje:

E21: Cannot make changes, 'Modifiable' is off

Estoy usando MacVim y Janus (casi listos para usar)

Wesbos
fuente
2
FYI: my luego aes agregar un nuevo archivo en NERDTree
Leighton

Respuestas:

233
:set ma

que es la abreviatura de

:set modifiable

hará que un búfer sea modificable. Y

:set noma

hace lo contrario

Adam Soltys
fuente
44
+1 a esta respuesta. Google muestra esta página cuando busca la forma de desactivar el indicador modificable en un búfer.
Sebastián Grignoli
¿Alguien sabe cómo deshago lo que eliminé en NERDTree? como 'dd' y luego traté de 'u' y no pasa nada
betoharres
66
También tuve que usar :set buftype: " "para escribir el archivo después de la modificación (luego el mensaje fue Cannot write, 'buftype' option is set)
Julien Carsique
18

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

Puede verificar esa respuesta vim y la extensión NERD Tree, agregando un archivo que explica cómo agregar un archivo con Nerdtree.

Xavier T.
fuente
10
Doh, fue m, luego a.
wesbos
1
Eso es todo, verificando la ayuda para NERDTree no hay amapeo, lo que hará que intente agregar texto nuevo.
sidyll
3

Esto funcionó para mí:

:set buftype=
:w
mipmip
fuente
¿Qué se supone que debes agregar después del =?
CodeMonkey
Nada. Esto significa asignar un valor vacío abuftype
mipmip
2

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íficos, mi problema era doble:

1) cada vez que intenté editar algo en este nuevo archivo que creé, recibí el mensaje No se pueden realizar cambios, 'Modificable' está desactivado y ...

2) después de ejecutar: establecer modificable e intentar guardar, obtendría un error e382 de 'no se puede escribir, buftype está configurado. Así que no pude guardar.

Después de verter montones de documentación críptica inútil, descubrí esto:

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

ls 

dentro de eso. 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=

Lo cual es totalmente inútil para usted ya que tiene una estructura de archivo diferente. pero busca el archivo que te está causando el problema. (oh, por cierto, estos son, de hecho, nombres de archivos, lo cual no es completamente obvio al mirarlos). encuentre el que tiene el archivo en cuestión y elimine ese imbécil: ejemplo:

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

Problema resuelto.

Dallas Caley
fuente
1
También tengo este problema al trabajar con NerdTree. Esto solo funcionó después de salir de la sesión vim que causó el problema. Supongo que siguió restableciendo esta "vista".
John
2

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

Jeremy Fouriaux
fuente
0

En caso de que alguien más le busque en Google esto, verifique que no esté tratando de abrir un directorio en vim como yo era (d'oh)

Max Williams
fuente
1
Puede abrir directorios en Vim. Por defecto, iniciará Netrw.
htmldrum
Por ejemplo, puede seleccionar archivos en un directorio: cw hacer algunos cambios en sus nombres y guardarlos
Karolius
0

Para mí, había ocultado cambios que incluían un directorio en el que estaba tratando de crear un archivo en ese directorio que acababa de almacenar. NERDTree seguía mostrando el árbol preconfigurado con ese directorio. El uso men un directorio que no existe produjo el error modificable. Debería haber actualizado el árbol rpara ver que el directorio ya no estaba allí y por qué no podía modificarse.

Jadam
fuente