2016-05-16 47 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。谢谢。代码非常容易理解,因此非常有用。 –

相关问题