sublime text 插件 -- 獲取文件名到剪貼板


  日常開發使用 sublime text 有好長一段時間了,有時候想拷貝當前正在編輯的文件名時發現沒有很快捷的方法,一般都是先點擊右鍵菜單欄中的 Reveal in Side Bar 對文件進行定位(在左側菜單欄中打開文件所在的目錄樹),然后對在左側顯示的該文件右鍵點擊 Rename,在底部的文件名編輯框中復制到剪貼板。這個過程雖然說不上繁瑣,但實在不太方便,畢竟這兩三個步驟加起來也有好幾秒了,在日常開發中被擠占掉的時間可不少。

  注意到 sublime 右鍵有個 Copy File Path 的功能后,我在想能不能寫個 Copy File Name 的插件呢?於是今天在網上了解了一下 sublime 插件開發相關的資料文檔,便着手開干。首先在 sublime 的 Packages 目錄(可通過 sublime 的 Preferences -> Browse Packages... 打開)下建一個目錄,名稱隨意,如 MyPlugins:

  然后在 MyPlugins 里建一個 python 文件(我試了下,sublime 會自動加載 Packages 目錄下所有的 python 文件,每個文件里只要按相關規范編寫的類都會被自動加載為各種命令,也就是各種插件/功能),如 copy_file_name.py,因為只需要拷貝當前編輯的文件名稱到剪貼板,所以短短幾行代碼:

import sublime
import sublime_plugin
import os


class copyfilenameCommand(sublime_plugin.TextCommand):

    def run(self, edit):
        file_name = self.view.file_name()
        base_name = os.path.basename(file_name)
        sublime.set_clipboard(base_name)
        # print('get_clipboard: ' + sublime.get_clipboard())
copy_file_name.py

  即可實現該功能。通過 ctrl + ` 打開 sublime 的控制台進行測試,在控制下輸入 view.run_command('copyfilename'):

  然后在別的地方 ctrl + v 粘貼一下,會發現粘貼出來的東西就是 sublime 當前正在編輯的文件名。基本功能弄好了,當然要為它添加菜單欄和快捷鍵什么的,首先是右鍵的菜單欄,同樣在 MyPlugins 目錄下新增一個 Context.sublime-menu 文件,輸入如下內容(caption 為菜單欄的名稱,command 為實際執行的命令):

[
    { "caption": "Copy File BaseName",  "command": "copyfilename" }
]
Context.sublime-menu

  保存后即可在右鍵菜單欄中看到 Copy File BaseName 這一項 ^0^(因為使用的是 ubuntu 電腦,這個操作不方便截圖~),當然也可以添加快捷鍵之類的,不過我覺得在菜單欄里已經足夠高效,就沒做這個了。哈哈,以后拷貝文件名稱就簡單多了,一步到位,再也不用像以前那樣 Reveal in Side Bar -> Rename -> 復制 這么繁瑣了~~

  sublime text 是個漂亮又強大的開發工具,值得花時間去折騰。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM