bash vi mode: O que # - * - mode: ruby ​​- * - # vi: define ft = ruby: significa?

12

Eu estou olhando através de algum código aleatório e, na parte superior, diz o seguinte:

# -*- mode: ruby -*-
# vi: set ft=ruby :

O que isto significa?

Eu sei que é uma pergunta simples, mas não consegui encontrá-la online porque: a) eu nem sei em que idioma esse código está escrito eb) sou muito novo no bash e vi.

michaelsnowden
fonte
1
Esta questão parece não ter nada a ver com o bash.
Michał Politowski 19/01/14

Respostas:

12

Essas linhas são modelos que dizem a um editor (por exemplo, emacs ou vi) para escolher um modo de edição específico para um arquivo. Um modo de edição afeta como o editor, por exemplo, destaca e recua o conteúdo do arquivo.

Você pode ler mais sobre modelines para emacs (que são chamadas de variáveis ​​locais de arquivo) aqui e modelines para vim aqui .

Sami Laine
fonte
1
Não é uma linha mágica.
Romainl
Na verdade, na maioria das vezes é chamado modeline mágico de onde eu venho, apenas para diferenciá-lo da modeline of emacs, que é uma coisa totalmente diferente.
Sami Laine
1
Bem, no Vim é chamado "modeline" e no Emacs é chamado "file-local variables".
romainl
Sugiro uma edição então.
Sami Laine