1. 程式人生 > >sublime text 插件 -- 獲取文件名到剪貼板

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

image pytho 一個 代碼 sel 顯示 base 操作 img

  日常開發使用 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 是個漂亮又強大的開發工具,值得花時間去折騰。

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