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})