2016-05-16 53 views

回答

1

我寫了一個簡單的插件,以滿足你的問題的要求,並具有一些新的特點:

  • 雙向copy & cut命令(從活動文檔不活動的文件,適用於要麼查看
  • 選擇&滾動到插入的文本@不活動的文檔
  • 只有在有確切2個視圖組
  • 執行

Demo


將以下代碼複製到:
Packages/MoveTextToInactiveDocument/MoveTextToInactiveDocument.py

import sublime, sublime_plugin 

LINE_BREAK = "\n" 

class MoveTextToInactiveDocumentCommand(sublime_plugin.TextCommand): 
    def run(self, edit, MODE = "copy"): 

     view = self.view 
     window = view.window() 

     #■■■ Verify Window Groups ■■■# 

     windowGroup_Count = window.num_groups() 

     if windowGroup_Count != 2: 
      return 

     #■■■ Set Active & Inactive Documents ■■■# 

     activeDocument_Group = window.active_group() 

     if activeDocument_Group == 0: 
      activeDocument = window.active_view_in_group(0) 
      inactiveDocument = window.active_view_in_group(1) 
     elif activeDocument_Group == 1: 
      activeDocument = window.active_view_in_group(1) 
      inactiveDocument = window.active_view_in_group(0) 

     #■■■ Verify Selection ■■■# 

     selections = activeDocument.sel() 

     if len(selections) == 0: 
      return 

     #■■■ Move Text From Active Document To Inactive Document ■■■# 

     first_InsertionPoint = inactiveDocument.size() 

     for region in selections: 

      regionText  = activeDocument.substr(region) + LINE_BREAK 
      insertionPoint = inactiveDocument.size() 

      inactiveDocument.insert(edit, insertionPoint, regionText) 

      if MODE.lower() == "cut": 
       activeDocument.erase(edit, region) 

     #■■■ Select & Scroll To Inserted Text ■■■# 

     inactiveDocument_End = inactiveDocument.size() 
     insertedText_Region = sublime.Region(first_InsertionPoint, inactiveDocument_End) 

     inactiveDocument.selection.clear() 
     inactiveDocument.selection.add(insertedText_Region) 

     inactiveDocument.show(inactiveDocument.size()) 
     window.focus_view(activeDocument) 

運行打開用戶sublime-keymap文件來自0的。

添加以下key-bindings

{ 
    "keys": [ "ctrl+super+c" ], 
    "command": "move_text_to_inactive_document", 
    "args": { "MODE": "Copy" } 
}, 

{ 
    "keys": [ "ctrl+super+x" ], 
    "command": "move_text_to_inactive_document", 
    "args": { "MODE": "Cut" } 
}, 

您現在可以使用:

  • 按Ctrl +超+ C來選擇複製到非活動文件
  • 按Ctrl +超+ X削減選擇到不活動的文件
+1

這是偉大的@ Enteleform。謝謝。代碼非常容易理解,因此非常有用。 –

相關問題