2016-04-27 4 views

Antwort

0
  1. öffnen Find Menü
  2. Select Replace...
  3. Sicherstellen, dass der Regular expression Modus
  4. In Find What: Typ (.)(.*?)\1
  5. In Replace With:, $1$2 Typ
  6. Click Replace All Repeat
  7. aktiviert ist, bis es gibt keine weiteren Spiele/doppelte Zeichen
2

A einen Einzeiler für die ST-Konsole ctrl+`:

import collections; content="".join(collections.OrderedDict.fromkeys(view.substr(sublime.Region(0, view.size())))); view.run_command("select_all"); view.run_command("insert", {"characters": content}) 

Wenn Sie ein Plugin drückt Tools >>> New Plugin... schreiben mögen und schreiben:

import sublime 
import sublime_plugin 
from collections import OrderedDict 


class RemoveDuplicateCharactersCommand(sublime_plugin.TextCommand): 
    def remove_chars(self, edit, region): 
     view = self.view 
     content = "".join(OrderedDict.fromkeys(view.substr(region))) 
     view.replace(edit, region, content) 

    def run(self, edit): 
     view = self.view 
     all_sel_empty = True 
     for sel in view.sel(): 
      if sel.empty(): 
       continue 
      all_sel_empty = False 
      self.remove_chars(edit, sel) 
     if all_sel_empty: 
      self.remove_chars(edit, sublime.Region(0, view.size())) 

Und erstellen Sie eine Tastenkombination in Keybindings - User:

{ 
    "keys": ["ctrl+alt+shift+r"], 
    "command": "remove_duplicate_characters", 
}, 

Danach können Sie einfach einen Text auswählen und ctrl+alt+shift+r drücken und die doppelten Zeichen werden entfernt. Wenn Sie keine Auswahl haben, wird sie für die gesamte Ansicht übernommen.

+0

nette Lösung, weniger repetitive manuelle Arbeit als meine nicht-Plugin/Python-basierte Antwort :) –

Verwandte Themen