从一开始有多少行必须放置各种方向?

saw*_*awa 4 ruby unix vim emacs

注释字符后面有各种方向#,以特定方式解释.

  • UNIX shebang: #!/usr/bin/env ruby
  • 编码的魔术评论(在Ruby 1.9中使用): #coding: UTF-8
  • 冷冻字符串文字pragma: #frozen_string_literal: true
  • 文本编辑器的ruby模式方向(如emacs): #!ruby
  • vim编码方向: #vim:set fileencoding=euc-jp

很明显,它们必须放在文件的开头附近才能正常工作,但是当它们不止一个时,它们不能全部放在第一行.在文件开头有多少行,他们必须放置?它们之间的相对顺序是否相关?决定它们的规则是什么?

如果不是我上面列出的那些,请添加.

Ste*_*fan 5

(这是社区维基的答案.它不完整,所以请添加你的发现.)


#!/usr/bin/env ruby

  • UNIX shebang
  • 必须出现在shell脚本第一行的左边距
  • 由内核解释,一些文本编辑器使用它来确定文件类型

#coding: UTF-8

  • 编码的魔术评论
  • 如果第一行是shebang但是可以松散地格式化,例如,必须出现在第一行或第二行 # -*- coding: utf-8 -*-
  • 由Ruby 1.9+解释

#frozen_string_literal: true

  • Frozen string literal pragma
  • 出现?
  • 由Ruby 2.3解释

# -*- mode: ruby -*-

  • Emacs文件局部变量
  • 如果第一行是shebang,则必须出现在第一行或第二行
  • 由Emacs解释

#vim:set fileencoding=euc-jp

  • Vim模式
  • 必须出现在前五行或最后五行中,尽管此数字可通过modelines设置进行配置
  • 如果modeline设置已启用,则由Vim解释(默认情况下为on,除外root).