web-dev-qa-db-fra.com

vim "modifiable" est désactivé

Essayer de créer un nouveau fichier avec nerd tree. J'ai appuyé sur la touche a pour créer un nouveau fichier et je reçois le message:

E21: Cannot make changes, 'Modifiable' is off

J'utilise MacVim et Janus (presque prêt à l'emploi)

118
wesbos
:set ma

qui est court pour 

:set modifiable

rendra un tampon modifiable. Et

:set noma

fait le contraire.

194
Adam Soltys

Je ne connais pas NerdTree, mais je suppose qu’en tapant a dans une vue nerdtree, il est interprété comme "je veux ajouter quelque chose dans le tampon nerdtree", et ce tampon n'est pas modifiable.

Vous pouvez vérifier cette réponse extension de vim et NERD Tree - ajout d’un fichier qui explique comment ajouter un fichier avec Nerdtree.

16
Xavier T.

Si vous voulez créer un fichier dans NERDTree, vous devez cliquer sur "m" (pour le menu), puis sur "a". Entrer simplement "a" dans le tampon NERDTree sera interprété comme "modifier le tampon NERDTree". Ajouter: ma rendra le tampon NERDTree modifiable, mais cela ne créera pas de nouveaux fichiers pour vous, cela entraînera des informations incohérentes entre ce que NERDTree affichera et votre hiérarchie de fichiers réelle.

1
Jeremy Fouriaux

Ok, ce n’est peut-être pas la réponse la plus éclairée, car j’ai à peine une connaissance pratique de vim ou de linux, mais j’ai trouvé une solution à mon problème et cela fonctionnera peut-être pour vous. Pour être précis, mon problème était double:

1) chaque fois que j’essayais d’éditer quelque chose dans ce nouveau fichier que j’avais créé, j’ai le droit de ne pas pouvoir apporter de modifications, le message 'Modifiable' est désactivé et ...

2) après l'exécution: définir modifiable et essayer de sauvegarder, je voudrais obtenir une erreur e382 de «ne peut pas écrire, buftype est défini. donc je ne pouvais pas sauver.

Après avoir jeté un flot de documents cryptiques inutiles, j'ai compris ceci:

1) trouvez le répertoire .vimviews, pour moi c’est à la racine de mon dépôt git, faites un 

ls 

à l'intérieur. J'ai quelque chose comme ça:

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

Ce qui est totalement inutile pour vous puisque vous avez une structure de fichier différente. mais cherchez le fichier qui vous donne le problème. (ah btw, ce sont en fait des noms de fichiers, ce qui n’est pas évident en les regardant). trouvez celui qui a le fichier en question et supprimez-le: exemple:

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

Problème résolu.

1
Dallas Caley

Au cas où quelqu'un d'autre voudrait google à cela, vérifiez que vous n'essayez pas d'ouvrir un répertoire dans vim comme je viens de l'être (d'oh)

0
Max Williams

Cela a fonctionné pour moi:

:set buftype=
:w
0
mipmip