Skip to content

Instantly share code, notes, and snippets.

@mattst
mattst / MultipleSelectionClearerTopOrBottom.py
Last active August 11, 2019 04:03
An ST plugin to clear multiple selections to the top or bottom selection.
#
# Name: MultipleSelectionClearerTopOrBottom
# Requirements: Plugin for Sublime Text v2 and v3
# Written by: mattst - https://github.com/mattst
# ST Command: multiple_selection_clearer_top_or_bottom
# Arg: pos: "top" or "bottom"
# Context Key: multiple_selection_clearer_top_or_bottom_key
#
# This plugin has been designed to be used with specific keys, those being the
# same ones as the Move Tab In Group plugin. The context key ensures that this
@mattst
mattst / MoveTabInGroup.py
Last active October 27, 2018 16:23
An ST plugin to move the active buffer's tab left and right on the tab bar.
#
# Name: MoveTabInGroup
# Requirements: Plugin for Sublime Text v2 and v3
# Written by: mattst - https://github.com/mattst
# ST Command: move_tab_in_group
# Arg Required: direction: "left" or "right"
# Description: An ST plugin to move the active buffer's
# tab left and right on the tab bar.
#
@mattst
mattst / TestClipTwoMinData.csv
Created November 9, 2018 17:15
FFMPEG libx264 encodes 2 min video, CRFs 18 to 27, all presets except placebo, encode times and file sizes
CRF Preset Time (Secs) Size (MB)
18 ultrafast 13.91 175.13
18 superfast 24.39 149.13
18 veryfast 36.39 87.97
18 faster 55.89 94.50
18 fast 79.71 97.76
18 medium 97.80 94.15
18 slow 145.07 91.47
18 slower 262.72 91.55
18 veryslow 503.44 84.07
@mattst
mattst / Test_CRF_Presets_For_Libx264_Encodes
Created November 9, 2018 17:18
Script to test encode speeds and file sizes for libx264 encodes with a range of CRF values and presets
#!/bin/bash
infile="TestClipTwoMin.mp4"
datafile="TestClipTwoMinData.csv"
crfs=("18" "19" "20" "21" "22" "23" "24" "25" "26" "27")
presets=("ultrafast" "superfast" "veryfast" "faster" "fast" "medium" "slow" "slower" "veryslow")
echo 'CRF,Preset,Time (Secs),Size (MB)' >> "$datafile"
@mattst
mattst / PasteFromHistoryEnhanced.py
Created January 27, 2019 21:22
Enhanced version of the default Sublime Text paste_from_history.py plugin.
#
# My enhanced version of the default ST paste_from_history.py plugin.
#
# Alterations to do the following:
#
# 1) Select the paste to text from an overlay instead of a pop-up menu.
# 2) Allow operation from widgets, i.e. console and input panel.
# 3) Ensure that text copied or cut with my various copy_and_cut_text
# plugins gets added to the ClipboardHistory storage list.
@mattst
mattst / OpenSelectedTextInNewBufferCommand.py
Created March 19, 2019 19:07
ST Plugin OpenSelectedTextInNewBufferCommand
# Command: open_selected_text_in_new_buffer
import sublime
import sublime_plugin
class OpenSelectedTextInNewBufferCommand(sublime_plugin.TextCommand):
"""
A Sublime Text plugin to create a new buffer, possibly in a new window,
which contains the selected text from the current buffer (if any). The
@mattst
mattst / Layouts.sublime-commands
Last active January 24, 2024 22:51
Sublime Text layout additions for the Command Palette
[
// Add all the layouts from: Menu --> View --> Layout
{ "caption": "Set Layout: Single", "command": "set_layout",
"args": { "cols": [0.0, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1]] } },
// Alternative name for the "Set Layout: Single" layout.
{ "caption": "Set Layout: Columns 1", "command": "set_layout",
@mattst
mattst / SublimeTextSettingsExample.py
Last active October 3, 2022 18:37
Settings handing code template / example for Sublime Text plugins.
import sublime
import sublime_plugin
# The global scope ensures that the settings can
# be easily accessed from within all the classes.
global settings
def plugin_loaded():
"""
This module level function is called on ST startup when the API is ready.
@mattst
mattst / JavaC.sublime-build
Created April 26, 2020 09:29
JavaC.sublime-build alternatives
// ~/.config/sublime-text-3/Packages/Java/JavaC.sublime-build
// -----------------------------------------------------------------------------
// ST default JavaC.sublime-build:
{
"shell_cmd": "javac \"$file\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
@mattst
mattst / Default (Windows).sublime-mousemap
Created April 30, 2020 11:20
The default "Default (Windows).sublime-mousemap" file from ST build 3211
[
// Basic drag select
{
"button": "button1", "count": 1,
"press_command": "drag_select"
},
{
"button": "button1", "count": 1, "modifiers": ["ctrl"],
"press_command": "drag_select",
"press_args": {"additive": true}