modeline não funciona no vim

16

Eu tenho um arquivo chamado .aliases para bash e zsh, eu coloquei esta linha

# vim: set filetype=bash: 

mas se eu fizer

: echo &ft

Eu recebo conf

    
por juanpablo 16.08.2011 / 06:17

6 respostas

23

Isso deve funcionar. Eu tentei essa linha e funcionou. Eu poderia ser que a sua opção 'modeline' foi definida como 'nomodeline'. Tente executar isso e veja o que você obtém.

:verbose set modeline?

Isso lhe dirá o valor da opção 'modeline' e, se não for o padrão, onde foi o último set.

Algumas distribuições do Linux definem 'nomodeline' em / etc / vimrc ou / usr / share / vim / vimrc como uma medida de segurança, mesmo que os problemas de segurança com 'modeline' tenham sido corrigidos.

    
por 16.08.2011 / 06:58
11

set modelines=1 (ou qualquer valor não-0) no meu ~ / .vimrc funcionou para mim.

    
por 25.06.2013 / 10:10
10

Eu descrevo uma lista de verificação de depuração completa nesta outra resposta .

Eu estava REALMENTE perplexo com este porque a documentação não é > verdadeiro.

Acontece que na versão 8 (e talvez antes) você não pode usar a palavra set em sua modeline. A documentação descreve "o segundo formulário" como sendo /* vim: set ai tw=75: */ , mas isso não funciona. Você tem que usar "o primeiro formulário" // vim: ai tw=75

Observação: você pode usar um desses tipos de indicadores de comentários. Ou nenhum mesmo.

    
por 02.02.2017 / 05:11
9

em ~ / .vimrc você precisa definir o seguinte:

set nocompatible 
filetype plugin on
set modeline 
    
por 05.06.2013 / 10:43
5

Adicionando apenas o seguinte ao meu ~/.vimrc trabalhado para mim na minha caixa do Funtoo Linux:

set modeline
    
por 11.08.2013 / 02:44
0

Como isso parece surgir nas pesquisas:

Eu tive o mesmo problema:

# vim: set filetype=sh:

não funcionou, resultando em ft = conf também. sem o modeline no meu ~ / .bash_alias, ft está vazio, então algo muda.

enquanto

# vim: filetype=sh:

funcionou. a última presença ":" parece ser irrelevante.

Estou no OSX com uma versão do Vim8, para os registros.

é estranho porque a modeline ajuda tanto

[text]{white}{vi:|vim:|ex:}[white]{options}

e

[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]

parece ser suportado.

A saída de

verbose set ft?

com "vim: filetype = sh" é

filetype=sh
      Last set from modeline

sem modeline:

filetype=

com "vim: definir filetype = sh"

filetype=conf
     Last set from /usr/local/Cellar/vim/8.0.1350/share/vim/vim80/filetype.vim

Pode haver um efeito colateral em algum lugar no meu conf, mas a sintaxe de modelina não compatível é a única que funciona como esperado para mim.

    
por 05.02.2018 / 12:41

Tags