【问题标题】:Sublime Text: Create a folder with multiple children files with one commandSublime Text:使用一个命令创建一个包含多个子文件的文件夹
【发布时间】:2017-03-12 19:22:08
【问题描述】:
是否可以创建一个命令来创建一个文件夹和多个具有相同名称和不同扩展名的子文件?
例如,我会打开命令并输入名称“desktop-header”
结果将是创建以下内容
桌面标题(文件夹)
- desktop-header.js
- desktop-header.php
- _desktop-header.sass
我一直关注BEM,最终需要手动创建所有块。
我什至不确定要搜索什么来看看是否有答案。
谢谢!
【问题讨论】:
标签:
macros
sublimetext2
sublimetext3
sublimetext
【解决方案1】:
是的,您可以在 a 命令中编写任意 python 代码。只需选择 Tools > Developer > New Plugin... 并粘贴以下代码。这将创建一个文件夹,其中包含 3 个文件,相对于当前视图。
import os
import sublime
import sublime_plugin
class CreateBemFilesCommand(sublime_plugin.WindowCommand):
def run(self):
window = self.window
view_path = window.active_view().file_name()
if not view_path:
sublime.error_message("Save your file first.")
return
base_folder_path, _ = os.path.split(view_path)
def on_done(name):
folder_path = os.path.join(base_folder_path, name)
# add your file names
file_names = [
name + ".js",
name + ".php",
"_" + name + ".sass"
]
file_paths = [
os.path.join(folder_path, file_name)
for file_name in file_names
]
# create the folder
os.makedirs(folder_path, exist_ok=True)
# create the files
for file_path in file_paths:
with open(file_path, "a"):
pass
# open the files in Sublime Text
window.open_file(file_path)
window.show_input_panel(
"Input the folder name", "", on_done, None, None)
然后像这样创建一个键绑定:
{
"keys": ["alt+shift+b"],
"command": "create_bem_files",
},