2017-02-14 21 views
0

Допустим, у нас есть этот текст в Sublime Text, и что мы имеем курсор f:Получить слово под курсором с Блистательной

hello blabla.foo youhou 

я хотел бы найти команду, чтобы получить blabla.foo, т.е.

  • поиск предыдущего пробела () перед курсором вхождения
  • поиска следующего пробела после курсора вхождения
  • получить строку между этими двумя вхождений

Это кажется, что view.word(...) не работает:

import sublime, sublime_plugin 

class MyCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
     for region in self.view.sel(): 
      print self.view.substr(self.view.word(region)) 

потому возвращенное слово foo. Как получить полное слово вместо (т. Е. blabla.foo)?

ответ

3

Это потому, что . (полная остановка) распознается как разделитель слов. В ваших Sublime настроек вы можете удалить . (полную остановку) из списка слов разделителей:

По умолчанию: "word_separators": "./\\()\"'-:,.;<>[email protected]#$%^&*|+=[]{}``~?",
Изменения к: "word_separators": "/\\()\"'-:,.;<>[email protected]#$%^&*|+=[]{``~?",

После этого изменения view.word(...) должен возвращать blabla.foo.