SiriBlog

siriyang的个人博客


  • 首页

  • 排行榜

  • 标签115

  • 分类37

  • 归档319

  • 关于

  • 搜索

Pythonista中文文档:editor

发表于 2020-03-26 更新于 2021-10-29 分类于 计算机 , 技术 , Python 阅读次数: Valine:
本文字数: 3.6k 阅读时长 ≈ 3 分钟

Pythonista中文文档

editor — 用于编辑Pythonista文本编辑器的功能函数


  editor模块提供对您当前正在编辑的脚本的访问。您可以获取并设置所选范围,并替换给定范围内的文本。

  请注意:到目前为止,无效的选择和文本操作函数的输入值(例如,超出范围的输入值)将被默认忽略。这可能会在将来的版本中更改。

  与可定制操作菜单(v1.1中的新增功能)结合使用时,该模块特别有用。您可以将库中的任何脚本添加到菜单中,无论当前正在编辑哪个脚本,都可以直接从编辑器中快速运行它。该菜单可通过设置进行编辑(编辑器>操作菜单)。

  这为扩展Pythonista应用本身的功能提供了很多非常有趣的可能性。为了给您一些启发,以下几段代码可以用作操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 在StackOverflow中搜索所选文本

import editor
import webbrowser

text = editor.get_text()
s = editor.get_selection()
selection = text[s[0]:s[1]]
if len(selection) > 0:
from urllib import quote
q = quote(selection)
search_url = 'http://stackoverflow.com/search?q=' + q
webbrowser.open(search_url)
else:
from console import alert
i = alert('No Selection', 'Do you want to open the StackOverflow homepage?', 'StackOverflow')
if i == 1:
webbrowser.open('http://stackoverflow.com')

  此示例在弹出的问答网站StackOverflow中搜索所选文本。如果未选择任何文本,则会弹出一个对话框,询问是否应打开主页。

  顺便说一句,该webbrowser模块同样可以运行自定义应用程序的URL方案。例如,这样你就可以用webbrowser.open('tweetbot:///post?text=Hello)打开TweetBot。

  以下示例显示了如何使用get_line_selection()便捷功能注释/取消注释选定的行。它不需要您全选所需要注释掉的整行,它可以在您当前选中的所有行上起作用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 注释/取消注释选定的行

import editor

text = editor.get_text()
selection = editor.get_line_selection()
selected_text = text[selection[0]:selection[1]]
is_comment = selected_text.strip().startswith('#')
replacement = ''
for line in selected_text.splitlines():
if is_comment:
if line.strip().startswith('#'):
replacement += line[line.find('#') + 1:] + '\n'
else:
replacement += line + '\n'
else:
replacement += '#' + line + '\n'

editor.replace_text(selection[0], selection[1], replacement)
editor.set_selection(selection[0], selection[0] + len(replacement) - 1)

  editor模块提供以下功能:

editor.get_path()

  返回编辑器中当前打开的脚本的绝对文件路径。

  如果当前没有打开任何脚本,则返回None。


editor.get_text()

  返回当前正在编辑的脚本的整个文本。

  请注意,这可能与从get_path()返回的文件读取有所不同,因为可能尚未保存所有更改。


editor.get_selection()

  将选定的范围以(start,end)形式的元组返回。

  如果当前在编辑器中没有打开文件,则返回None。


editor.get_line_selection()

  以形式(start,end)的元组返回属于当前选择的所有行的范围

  如果当前在编辑器中没有打开文件,则返回None。


editor.set_selection(start, end=None, scroll=False)

  在编辑器中设置所选范围。

  开始和结束必须是整数。如果end为None,则插入光标将定位在开始位置而不选择任何文本。


editor.replace_text(start, end, replacement)

  使用replacement替换给定范围内的文本。

  要插入/追加文本,可以将范围长度设为0(即start==end)。

  用户可以使用常规撤消键撤消所有更改。每个单独的调用都是单个撤消步骤,无论受影响的字符数是多少。


editor.make_new_file([name, content])

  创建一个新文件,然后在编辑器中将其打开。

  如果已经存在具有给定名称的文件,则会自动给文件名添加数字后缀。 content是包含新文件内容的字符串。如果省略,将创建一个空文件。

  当前文件将在打开新文件之前自动保存。


editor.open_file(name, new_tab=False)

  在编辑器中打开具有给定名称的文件。

  名称可以是相对于脚本库的根目录的路径文件名,也可以是绝对路径。

  .py扩展名可以省略。当前在编辑器中已打开的文件将被自动保存。


editor.apply_ui_theme(ui_view, theme_name=None)

  使用给定的UI主题设置ui.View(及其后代)的样式。

  如果theme_name为None(默认值),则使用当前选择的主题。否则,它应该是设置中显示的主题名称。


editor.present_themed(ui_view, theme_name=None, **kwargs)

  使用给定的UI主题设置ui.View(及其后代)的样式(通过 apply_ui_theme()),并显示视图。

  除了title_bar_color和title_color基于主题自动设置的之外,kwargs参数都传递给ui.View.present()。


editor.annotate_line(lineno, text=’’, style=’warning’, expanded=True, filename=None, scroll=False)

  在标签中用标签注释代码行。

  lineno是文件中从1开始计算的行号。

  样式可以是‘success’, ‘warning’ 或 ‘error’。

  如果expanded为False,则仅显示一个图标;点击图标可显示注释文本。否则,文本将立即显示。

  如果filename为None,则在编辑器中当前打开的文件中注释该行。

  无效的文件名和行号将被忽略。


editor.clear_annotations(filename=None)

  删除所有通过annotate_line()添加的注释。

-------- 本文结束 感谢阅读 --------
相关文章
  • Pythonista中文文档:scene
  • Pythonista中文文档:cb
  • Pythonista中文文档:contacts
  • Pythonista中文文档:canvas
  • Pythonista中文文档:photos
觉得文章写的不错的话,请我喝瓶怡宝吧!😀
SiriYang 微信支付

微信支付

SiriYang 支付宝

支付宝

  • 本文标题: Pythonista中文文档:editor
  • 本文作者: SiriYang
  • 创建时间: 2020年03月26日 - 11时03分
  • 修改时间: 2021年10月29日 - 18时10分
  • 本文链接: https://blog.siriyang.cn/posts/20200326114128id.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
Python Pythonista 文档
Hexo:将博客从GitHub迁移到Coding
Pythonista中文教程:100行代码实现一款远程键盘
SiriYang

SiriYang

努力搬砖攒钱买镜头的摄影迷
319 日志
33 分类
88 标签
RSS
GitHub E-Mail
Creative Commons
Links
  • 友情链接
  • 作品商铺

蜀ICP备19008337号 © 2019 – 2025 SiriYang | 1.7m | 25:41
0%