vim "modificável" está desativado

147

Tentando criar um novo arquivo com a árvore nerd. Apertei a atecla para criar um novo arquivo e recebo a mensagem:

E21: Cannot make changes, 'Modifiable' is off

Estou usando o MacVim e Janus (quase pronto)

wesbos
fonte
2
fyi: me, em seguida, aé adicionar um novo arquivo no NERDTree
Leighton

Respostas:

233
:set ma

que é abreviação de

:set modifiable

tornará um buffer modificável. E

:set noma

faz o oposto.

Adam Soltys
fonte
4
+1 nesta resposta. O Google mostra esta página quando você procura a maneira de desativar o sinalizador modificável em um buffer.
Sebastián Grignoli 23/09/12
Alguém sabe como desfazer o que apaguei no NERDTree? como 'dd' e, em seguida, tentei 'u' e nada acontece
betoharres 12/12/14
6
Eu também tive que uso :set buftype: " "para escrever o arquivo após a modificação (depois mensagem era Cannot write, 'buftype' option is set)
Julien Carsique
18

Não estou familiarizado com o NerdTree, mas acho que, digitando aem uma exibição nerdtree, ele é interpretado como "Quero acrescentar algo no buffer do nerdtree", e esse buffer não é modificável.

Você pode verificar a resposta vim e a extensão NERD Tree - adicionando um arquivo que explica como adicionar um arquivo ao Nerdtree.

Xavier T.
fonte
10
Doh, era m, depois a.
Wsbos
1
É isso, verificando a ajuda do NERDTree, não há amapeamento, o que fará com que ele tente anexar novo texto.
sidyll
3

Isso funcionou para mim:

:set buftype=
:w
mipmip
fonte
o que você deve adicionar após o =?
CodeMonkey
Nada. Isso significa atribuir um valor vazio abuftype
mipmip
2

Ok, essa pode não ser a resposta mais informada, pois mal tenho conhecimento prático de vim ou linux, mas encontrei uma solução para o meu problema e pode funcionar para você. Para ser específico, meu problema era duplo:

1) sempre que tentei editar algo neste novo arquivo que criei, obtive a opção Não é possível fazer alterações, 'Modificável' está desativado e ...

2) após a execução: conjunto modificável e tentando salvar, eu receberia um erro e382 de 'não é possível gravar, o buftype está definido. então eu não pude salvar.

Depois de derramar um monte de documentação enigmática inútil, descobri isso:

1) encontre o diretório .vimviews, para mim estava na raiz do meu repositório git, faça um

ls 

dentro dele. eu tenho algo parecido com isto:

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

O que é totalmente inútil para você, pois você possui uma estrutura de arquivos diferente. mas procure o arquivo que está fornecendo o problema. (oh, aliás, esses são, na verdade, nomes de arquivos, o que não é completamente óbvio olhando para eles). encontre aquele que possui o arquivo em questão e exclua esse otário: exemplo:

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

Problema resolvido.

Dallas Caley
fonte
1
Também obtiveram esse problema ao trabalhar com o NerdTree. Isso só funcionou depois de sair da sessão do vim que causou o problema. Eu estou supondo que ele continuava redefinindo essa "visualização".
John John
2

Se você deseja que ocorra um arquivo no NERDTree, é necessário pressionar "m" (para o menu) e depois "a". Simplesmente digitar "a" no buffer do NERDTree será interpretado como "modificar o buffer do NERDTree". Adicionar: ma tornará o buffer do NERDTree modificável, mas isso não criará novos arquivos para você, resultará em informações inconsistentes entre o que o NERDTree exibe e sua hierarquia de arquivos real.

Jeremy Fouriaux
fonte
0

Caso alguém ache isso no google, verifique se você não está tentando abrir um diretório no vim como eu estava (d'oh)

Max Williams
fonte
1
Você pode abrir diretórios no Vim. Por padrão, ele iniciará o Netrw.
Htmldrum 21/03
Você pode, por exemplo, selecionar os arquivos em um diretório, CW fazer algumas alterações ao seu nome e salvá-lo
Karolius
0

Para mim, eu escondi as alterações que incluíam um diretório que eu estava tentando criar um arquivo naquele diretório que eu acabei de esconder. O NERDTree ainda estava mostrando a árvore pré-escondida com esse dir. Usar mum diretório que não existe produziu o erro modificável. Eu deveria ter atualizado a árvore rpara ver que o dir não estava mais lá e por que não pôde ser modificado.

Jadam
fonte