sublime 插件学习

trim_trailing_white_space.py 插件学习

trim_trailing_white_space.py 插件学习
 
说实话,有点没看明白这个功能
 
#获取匹配结果
     self.view.find_all('[\t ]+$')
 
#获取edit
     view.begin_edit()
     要结束
     view.end_edit()
 
#移除buffer
     view.erase(edit, region)

mark.py 插件学习

mark.py 插件学习
 
#绘制mark
     self.view.add_regions('mark', [s for s in self.view.sel()], 'mark', 'dot', sublime.HIDDEN | sublime.PERSISTENT)
     仅供参考,详细看api

font.py 插件学习

font.py 插件学习
 
#获取配置,保存配置
     s = sublime.load_settings('filename')
     s.get('name')
     s.set('name', value)
     sublime.save_settings('filename')

goto_line.py 插件学习

goto_line.py 插件学习
 
#跳到某一行:
     self.view.show(region)
 
#某一行的region:
     a = self.view.text_point(line)
     sublime.region(a,a)
 
#最后一行:
     line = self.view.line(self.view.size())

duplicate_line.py 插件学习

duplicate_line.py 插件学习
 
 
duplicate_line 的功能:
     #如果没有选中文本,则赋值光标所在行,然后赋值插入到上一行
     #如果选中文本,则赋值选择的文本,插入文本前面
 
 
#判断选中文本与否:
     region = self.view.sel()
     region.begin() == region.end()
     或者 region.empty()
     或者 region.size() == 0
 
#赋值某一行:
     self.view.substr(self.view.line(region/point)) + '\n'
     或者 self.view.full_line(region/point)
 
#插入文本:
     self.view.insert(edit, point, text)

delete_word.py 插件学习

delete_word.py 插件学习
 
 
 
delete_word 的功能如下:
     #如果已经选择一段文本,则直接删除那段文本结束
     #于光标位置向前/向后选择一个单元,然后delete
     #如果光标在空格或者换行符,则忽略空格换行符的,按第二布执行
 
#获取某个位置的字符
view.substr(pt)
 
#获取选中的位置是
for e in reversed(self.view.sel()):
     pt = e.b
 
#判断是否单元的方法是
     classes = 
          sublime.CLASS_WORD_END | sublime.CLASS_PUNCTUATION_END | sublime.CLASS_LINE_START
          sublime.CLASS_SUB_WORD_END
          sublime.CLASS_WORD_START | sublime.CLASS_PUNCTUATION_START | sublime.CLASS_LINE_END
          sublime.CLASS_SUB_WORD_START
          sublime.CLASS_WORD_START | sublime.CLASS_PUNCTUATION_START | sublime.CLASS_LINE_END
          sublime.CLASS_WORD_END | sublime.CLASS_PUNCTUATION_END | sublime.CLASS_LINE_START
     #以上四个判断选择参考 delete_word.py
     self.view.classify(pt) & classes
     
#判断是否选择一段文本的方法是
     e.empty()
 
#删除一段文本
view.run_command('right_delete')
view.run_command('left_delete')
 
#还没有弄清楚的地方是
classes 的原理,部分classes的代码表示(CLASS_PUNCTUATION_END CLASS_SUB_WORD_END)
view.run_command('add_to_kill_ring', {'forward':forward})
 
posted @ 2013-02-16 01:03  liyatang  阅读(492)  评论(0编辑  收藏  举报