屏幕录制导演
这是我在 <http://colinta.com> 制作屏幕录制的方法。
详细信息
安装次数
- 总数 572
- Win 311
- Mac 142
- Linux 119
2021年8月6日 | 2021年8月5日 | 2021年8月4日 | 2021年8月3日 | 2021年8月2日 | 2021年8月1日 | 2021年7月31日 | 2021年7月30日 | 2021年7月29日 | 2021年7月28日 | 2021年7月27日 | 2021年7月26日 | 2021年7月25日 | 2021年7月24日 | 2021年7月23日 | 2021年7月22日 | 2021年7月21日 | 2021年7月20日 | 2021年7月19日 | 2021年7月18日 | 2021年7月17日 | 2021年7月16日 | 2021年7月15日 | 2021年7月14日 | 2021年7月13日 | 2021年7月12日 | 2021年7月11日 | 2021年7月10日 | 2021年7月9日 | 2021年7月8日 | 2021年7月7日 | 2021年7月6日 | 2021年7月5日 | 2021年7月4日 | 2021年7月3日 | 2021年7月2日 | 2021年7月1日 | 2021年6月30日 | 2021年6月29日 | 2021年6月28日 | 2021年6月27日 | 2021年6月26日 | 2021年6月25日 | 2021年6月24日 | 2021年6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
说明文件
屏幕录制导演
一个可用来指导屏幕录制的ApplicationCommand
。也允许交互式操作,所以你可以自动化一些任务,手动完成其他任务。模拟键盘输入,如果你要求更精细,则可以模拟所有ST2命令。
安装
- 使用软件包控制安装“屏幕录制导演”
或者
打开Sublime Text的包文件夹
- macOS: ~/Library/Application Support/Sublime Text 3/Packages/
- Windows: %APPDATA%/Sublime Text 3/Packages/
- Linux: ~/.Sublime Text 3/Packages/ 或 ~/.config/sublime-text-3/Packages
克隆此仓库
安装命令的快捷键映射(参见Example.sublime-keymap以获取我首选的快捷键)
命令
screencast_bind_source
:将当前窗口设置为“导演”screencast_bind_target
:将当前窗口设置为“屏幕录制”screencast_director_run
:运行当前命令并将“命令光标”移动到下一个命令screencast_director_previous
:将“命令光标”向后移动screencast_director_next
:将“命令光标”向前移动
导演命令和示例
write(*what_to_write)
:这将使用略微随机的延迟写入一些文本,以模仿人类打字。接受多个参数,并在每个参数之间插入换行符。
- write: ['line one', 'line two', 'line three']
delay
:暂停,默认为.1秒。用于write
以模拟打字,但也适用于导演脚本。
- delay: 1500 # pause for 1.5 secs
write_inside
:SublimeText打印匹配的引号,我想在屏幕录制中模拟这一点。此命令使操作变得简单。
- write_inside: "'string in single quotes'"
- write_inside: ["'", "again, using array", "'"]
- write_inside:
- \'
- write: you can nest commands, too!
- \'
go
:将光标向前或向后移动N
个字符。
- go: -10 # go back ten
- write: HI!
- go: 10 # return to previous position
select_all
:显而易见
- select_all
delete
:删除所选文本
- delete
clear
:select_all
、delete
和clear_marks
- clear
set_mark
:设置标记,这样在执行一些疯狂命令之后可以返回某个位置。 goto_mark
:将光标返回到之前保存的位置。
“名称”是可选的,默认为__tmp__
- set_mark # same as set_mark: __tmp__
- set_mark: my_mark_name
- goto_mark # same as goto_mark: __tmp__
- goto_mark: my_mark_name
select_from_mark
:从标记选择到光标位置。使用与set_mark
或goto_mark
相同的名称(默认:tmp)。
- set_mark
- write: "this will be deleted in one second"
- delay: 1000
- select_from_mark
- delete
run_command
:运行任何SublimeText命令!您几乎可以用这个命令做任何事情,所以如果您想创建一个新命令,请考虑使用这个命令。
- write: "I will fix this mitsake."
- delay: 500
- go: -5
- delay: 500
- run_command: [transpose_character]
编写导演命令
我非常欢迎pull requests,增加更多的导演功能!如果您只是查看源代码,这些功能一开始可能会有一点点难以理解。所以,这就开始了。
ScreencastDirector
类包含所有可以在您的director.yaml
文件中使用的命令。当插件加载时(如果您在源代码中跟踪,则是the_director
),会创建一个ScreencastDirector
类的实例。
当您运行screencast_director_run
命令时,您的YAML源文件的条目将被“执行”,这实际上是将工作委托给ScreencastDirector._run
。所有条目都会立即“执行”,也就是说,在这个时候构建命令队列。
让我更清楚地说明:ScreencastDirector方法根据YAML文件中条目的内容向命令队列添加一个或多个函数。
当您将命令添加到队列时,您可以传递delay
参数来控制时间。以下是所有命令中最简单的delay
命令。
def delay(self, delay=100):
def _delay(cursor, e):
pass
self._append_command(_delay, delay)
我们甚至不需要在命令中“睡眠”——这是通过将delay
参数传递给_append_command
来解决的。我们确实需要接受cursor
和e
参数。如果您更改了光标的位臵,您必须返回那个新位臵(或选择)。参数e
是一个sublime.Edit
对象。由于大多数命令都需要做出某种更改,它提供了便利。
让我们看看write
的简化版本。它每隔一个字母输入,并随机延迟每个字母以模拟实际的输入。我们需要调用target_view.replace
来插入文本(如果之前的命令做出选择,这个命令将覆盖它),然后返回我们的新光标位置。
def write(self, what_to_write):
def _write_letter(letter):
def _write(cursor, e):
self.target_view.replace(e, cursor, letter)
return cursor.a + len(letter)
return _write
for letter in what_to_write:
delay = random.randrange(50, 200)
self._append_command(_write_letter(letter), delay=delay)
实际实现做了更多的事情——它支持多个参数,如果参数“看起来”像一个命令,它会执行该条目(也称为“将那些命令添加到队列”——记住,一个条目会添加命令到队列)。
对于您的命令,请记住:
- 对于每个编辑,创建一个新的函数并使用
_append_command
将其添加到队列中。通常,您会从YAML源接受一个delay
参数。 - 实际命令接受两个参数:
cursor
(一个sublime.Region
对象),以及edit
(一个sublime.Edit
对象)。除此之外,您应使用从源文件传入的参数。
如果您遇到困难,请创建一个问题,我将查看。
示例
这些都是无声电影,这只是我的个人喜好。任何屏幕录制应用都可以录制音频,您实际上可以坐下来阅读剧本,同时ScreencastDirector完成所有鼠标输入——零错误输入!
https://media.colinta.com/screencasts/bracketeer.mp4 https://media.colinta.com/screencasts/move_text.mp4 https://media.colinta.com/screencasts/quickfind.mp4 https://media.colinta.com/screencasts/transpose_character.mp4
连ScreencastDirector本身也不是例外!
https://media.colinta.com/screencasts/screencast_director.mp4
不幸的是,我并没有保存大多数这些内容的副本……我通常只使用一个草稿文件。我 建议 您模仿我所说的,而不是我做的:保存您的副本!当您意识到出错并需要重新录制视频时,这非常有用。以下是ScreencastDirector的director.yaml文件:https://github.com/colinta/SublimeScreencastDirector/blob/master/director.yaml