Sublime Text

sublime Markdown 图片直接复制

2019-05-06  本文已影响16人  AlexSun1995

需求

sublime 相对VScode有更快的启动速度,这一点是我比较偏爱sublime的原因。 使用sublime编辑markdown的时候,有时候需要频繁插入截图,但是剪切板中的截图不能直接拷贝到文本中,造成markdown插入图片很麻烦。
有一种想法:截图自动保存在本地某一个位置,sublime插件自动找到刚刚获取的截图位置,修改为
的markdown图片形式自动插入到编辑文本中。
幸运的是,有人已经做过这件事情了 https://blog.csdn.net/darkread/article/details/79682380

实现

sublime自定义python插件的方法看这里,介绍相当详细了
https://www.jianshu.com/p/e2558ee1d503
python脚本主要拷贝自https://blog.csdn.net/darkread/article/details/79682380
,此脚本注意以下几点:

  1. 脚本读取当前编辑文件的所在目录下的/image子文件夹,意味着应该把全部截图都放在这里
  2. 图片文件的选择根据编辑时间,脚本自动选择最近编辑的文件。
    脚本:
import sublime
import sublime_plugin
import sys
import os

class SaveImage(sublime_plugin.TextCommand):
    def run(self, edit):
        full = self.view.file_name()
        print("hello world")
        print("full", full)
        [p,f] = os.path.split(full)
        print("path", p)
        print("file",f)
        # 获取剪切板 获取不到图片 不使用
        clipf = sublime.get_clipboard()
        for root,dirs,files in os.walk(os.path.join(p,"image")):
            print("root", root)
            print("dirs", dirs)
            print("files", files)
            mtime=0
            lastfile=""
            for f1 in files:
                (main,ext) = os.path.splitext(f1)
                print("ext",ext)
                if ext and ext.lower() not in [".jpg",".png",".gif",".bmp",".jpeg"]:
                    continue
                mtime1 = os.path.getmtime(os.path.join(root,f1))
                if mtime < mtime1:
                    lastfile = os.path.join(p,"image", f1)
                    mtime=mtime1
            self.flist = files
            self.path = root
            for regoin in self.view.sel():
                self.view.insert(edit,regoin.begin(),"![%s]()"%lastfile)

保存文件名应该和类相同,ctrl + s就可以自动选择sublime的插件目录,文件名为SaveImage.py
ctrl + ` 调出sublime自带的python解释器命令行界面,输入

view.run_command("save_image")

可进行测试,注意到和命令参数为文件/类名称的下划线风格命名。
设置快捷键

{ "keys": ["shift+ctrl+command+p"], "command": "save_image"}

就可以在输入上述快捷点的时候插入图片(快捷点设置为个人喜好)。

上一篇 下一篇

猜你喜欢

热点阅读