作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法强制 Sublime (ST3)打开/重新打开某种具有特定编码的文件?我的问题是:我不希望 ST3 显示特定文件扩展名的内容(即 .log、.dump 和我的任何其他自定义文件)。目前的解决方案是通过 view.set_encoding() 方法手动将编码设置为 Hexadecimal。在此讨论中提出了另一种解决方案。但似乎只在文件打开后设置编码。有什么方法可以自动打开或重新打开那些使用十六进制编码的文件?
注意:我已将 default_encoding 设置为 UTF-8 并回退为十六进制。由于 ST3 将我的自定义文件的内容检测为 UTF-8,因此会显示该内容。我只想让 ST3 显示某种自定义文件的十六进制 View ,并且必须手动更改编码以显示/修改内容。
非常感谢您的帮助,
最佳答案
演示:
代码:
保存@Packages/YourPluginName/YourPluginName.py
import sublime, sublime_plugin
class EventListener( sublime_plugin.EventListener ):
def on_load ( self, view ):
fileExtension = view.window().extract_variables() [ "file_extension" ]
encodingSets = \
{
"log" : "Hexadecimal",
"dump" : "Hexadecimal",
}
if fileExtension in encodingSets:
encoding = encodingSets[ fileExtension ]
view.run_command ( "reopen", { "encoding" : encoding } )
reopen + encoding
命令在
This Thread , 并将其包裹在
on_load
中
EventListener
您可以在其中定义扩展的键值对及其相关编码。
ctrl + z
重置编码.如果您希望这更安全,您可能需要找到一种方法来克服这个漏洞。我研究了禁用撤消堆栈并创建特定于语法的键绑定(bind),但都没有找到任何快速结果。尝试进一步研究这些和类似的主题,也许还可以考虑重新映射您的
ctrl + z
如果您无法找到其他解决方案,请使用命令。
"Hexadecimal"
"UTF-8"
"UTF-16 LE"
"UTF-16 BE"
"Western (Windows 1252)"
"Western (ISO 8859-1)"
"Western (ISO 8859-3)"
"Western (ISO 8859-15)"
"Western (Mac Roman)"
"DOS (CP 437)"
"Arabic (Windows 1256)"
"Arabic (ISO 8859-6)"
"Baltic (Windows 1257)"
"Baltic (ISO 8859-4)"
"Celtic (ISO 8859-14)"
"Central European (Windows 1250)"
"Central European (ISO 8859-2)"
"Cyrillic (Windows 1251)"
"Cyrillic (Windows 866)"
"Cyrillic (ISO 8859-5)"
"Cyrillic (KOI8-R)"
"Cyrillic (KOI8-U)"
"Estonian (ISO 8859-13)"
"Greek (Windows 1253)"
"Greek (ISO 8859-7)"
"Hebrew (Windows 1255)"
"Hebrew (ISO 8859-8)"
"Nordic (ISO 8859-10)"
"Romanian (ISO 8859-16)"
"Turkish (Windows 1254)"
"Turkish (ISO 8859-9)"
"Vietnamese (Windows 1258)"
Packages\Default\Encoding.sublime-menu
*
关于sublimetext - Sublime Text : How to automatically open with specific encoding for some file extensions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946158/
我是一名优秀的程序员,十分优秀!