Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is TextMate?
TextMate is a customizable, open-source text editor for macOS, aimed at programmers and anyone who edits code or markup regularly. Its page presents it as a full-featured editor rather than a simple notepad replacement: it supports a large list of programming languages, and its customization runs through "bundles" that add language support, workflows and other behaviors.
What it emphasizes
- Multiple carets: add several insertion points to make the same change in many places at once, swap pieces of code, and similar bulk edits.
- File search: choose what to search and what to look for, then move between matches, extract matched text or preview replacements from the results.
- Version control: see changed files in the file browser and changed lines in the editor, view a diff of the current file, and commit a subset of changes; the page says this works with all major version control systems.
- Scoped settings: attach settings and keyboard shortcuts to detailed scope selectors, which helps when one file mixes languages or a project uses unusual formatting preferences.
- Commands and macros: write custom actions in any language that works with stdin, stdout and environment variables; record scratch macros for immediate replay or save them for reuse.
- Everyday editing extras: snippets with placeholders and transformations, clipboard history, custom themes, live HTML/Markdown preview, foldable code blocks and indented soft wrap.
The page lists TextMate 2.0 as the current download and says it requires macOS 10.12 or later.
Who it suits
TextMate fits a Mac-based developer who wants a native, highly scriptable editor and is willing to shape it through bundles and scoped settings. Someone who prefers a large built-in feature set with little configuration may find a more convention-driven editor faster to start with; the trade-off is that TextMate rewards the time spent customizing it. A concrete test: open a mixed HTML/PHP file and check whether the scoped settings and multiple carets handle the edits you make most often. If they do, download it and try one small bundle before committing.
How does TextMate compare to other macOS text editors like VS Code or BBEdit for everyday coding?
For everyday coding on macOS, TextMate suits people who want a fast, keyboard-driven editor with deep customization and don't need the full IDE experience. VS Code is the better default for most teams, and BBEdit is the stronger pick for heavy text processing and large-file work. The page evidence for TextMate emphasizes multiple carets, file search with jump-to-match and replacement preview, version-control integration in the file browser and editor, scoped settings for mixed-language files, shell-scriptable commands, snippets, bundles, and macros—a feature set aimed at tinkerers and Mac-native workflows rather than built-in debugging or language tooling.
Where each fits in daily work
| Editor | Best everyday scenario | Trade-off to expect |
|---|---|---|
| TextMate | Quick edits, scripting, mixed-language files, custom bundles and macros | You assemble your own tooling; less out-of-the-box project intelligence |
| VS Code | Team projects, debugging, extensions, language servers | Heavier footprint; more configuration surface to manage |
| BBEdit | Large files, regex-heavy search and replace, plain-text processing | Less of a general project IDE feel for app development |
The page's "Scoped Settings" point is the one that matters most day to day: if you regularly edit a file that mixes languages or work across projects with different build and formatting conventions, TextMate's scope selectors let shortcuts and settings follow context instead of forcing one global setup. Its "Commands" feature—actions written in any language that read stdin, write stdout, and use environment variables—is genuinely useful for small automations a developer already runs in the terminal.
A practical way to decide
Take one real task from your week—say, renaming a symbol across a mixed HTML/JavaScript file, or reformatting a 200 MB log. Try it in each candidate. If the task needs debuggers, test runners, and shared workspace settings, choose VS Code. If it is mostly text transformation and huge files, choose BBEdit. If it is fast edits plus personal automation through bundles and macros, TextMate is the fit; see TextMate for its feature overview, Visual Studio Code and BBEdit for the alternatives.
How do I install and set up TextMate bundles for a language it doesn't support out of the box?
TextMate's bundle system is the mechanism for adding support for a language that isn't covered out of the box: you install a bundle, then let it take over syntax highlighting, snippets, and commands for that language's files. The page describes bundles as the editor's customization layer, with support for "a countless number of different languages, markup systems, workflows," so the practical path is to find or build a bundle rather than configure the editor file by file.
How the pieces fit together
- Bundles are the container. A language bundle typically supplies a grammar (for highlighting), snippets, and commands.
- Scoped settings are how you make a bundle behave the way you want: the page notes TextMate associates "detailed scope selectors with key shortcuts, settings, etc.," which is what you use when one file mixes languages or when third-party code needs different formatting.
- Snippets turn recurring code into expandable templates "with placeholders, transformations, and more," adapting to context.
- Commands let you add build, lint, or run actions written in any language that works with stdin, stdout, and environment variables — useful if your language's toolchain isn't wired up.
A workable setup sequence
- Look for an existing bundle for the language before writing one; the ecosystem is large and community bundles are common.
- Install it and open a file of that language. If highlighting is wrong, the grammar isn't matching — check the file's scope rather than editing settings blindly.
- Add scoped settings for anything the bundle doesn't cover: indentation, comment characters, or per-project formatting.
- Add snippets for the constructs you type most, using placeholders so you can tab between fields.
- If the language needs a build or test step, add a command that calls the toolchain through stdin/stdout.
Choosing between finding and building
| Situation | Better route | Trade-off |
|---|---|---|
| Language is established, with an active community | Install an existing bundle | Fast, but quality and maintenance vary |
| Language is new, internal, or a DSL | Write a minimal bundle yourself | More work up front; you control scope and snippets |
| You only need highlighting | A grammar alone may suffice | No snippets or commands, so less automation |
| You need build/lint integration | Add commands alongside the bundle | Requires your toolchain to behave well with stdin/stdout |
A concrete case: a developer adopting an internal configuration language would start with a small grammar for highlighting, add a handful of snippets for common blocks, and attach one command that validates files — leaving scoped settings for later, once real friction appears.
For macOS-specific editor context, the official pages for TextMate are the place to confirm bundle installation details and current version requirements.
Can TextMate handle version control tasks like committing a subset of changes without leaving the editor?
Yes. TextMate builds version control into the editor rather than requiring a separate terminal or GUI client. The file browser shows which files have changes, the editor view marks changed lines, and you can open a diff of the current file. The page also states that committing a subset of changes is supported "for all the major version control systems."
What that means in practice
- Reviewing before committing: You can see which files changed at the project level, then drill into line-level changes in the file you're editing.
- Partial commits: Selecting only some changed lines or hunks and committing those fits workflows where a file mixes unrelated edits — for example, a bug fix alongside debugging leftovers.
- Staying in context: Diffs and commits happen without switching apps, which matters most during tight edit-review-commit loops.
A concrete scenario
A developer fixes a typo and also adds a new helper function in the same file. With subset committing, the typo fix can go into one commit while the helper waits for its tests — without manually reverting and reapplying code in a terminal.
Decision criteria
Partial-commit support is most valuable if you frequently mix concerns in one file or work on shared branches where small, clean commits matter. If your team commits whole files at a time and relies on a dedicated client for complex history operations like interactive rebase, the built-in integration is a convenience rather than a deciding feature. The exact depth of support can vary by version control system, so test it against the system your project uses.
For a broader look at editor options with similar integration, see Sublime Text and Visual Studio Code.
How do I write a custom command or macro in TextMate to automate a repetitive editing task?
In TextMate, a macro records your keystrokes and replays them; a command is a small script triggered from a menu or shortcut. For a repetitive editing task, start with a macro if the steps are purely mechanical (select, move, delete, insert), and write a command once the task needs logic, such as conditionals, external tools or transformation of selected text.
Macros for recorded keystrokes
Record the exact sequence once, then replay it over each spot. TextMate's page describes saving macros for repeated use or recording a "scratch" macro for immediate replay. This suits tasks like wrapping each selected line in quotes, or deleting a fixed number of characters at the start of many lines. The trade-off: a macro repeats literal actions, so it breaks when line lengths or cursor positions vary.
Commands for scripted automation
Commands are where the editor becomes programmable. The page states that macOS's UNIX underpinnings let custom actions be written in any language that works with stdin, stdout and environment variables, and that complex interactions can use WebKit or a dialog framework for Mac-native or HTML-based interfaces. In practice, a command receives the selected text or document, processes it, and returns the replacement, so it can trim whitespace, reformat a list, or call an external formatter. Choose a command when the same edit must adapt to different inputs.
| Task shape | Better fit | Why |
|---|---|---|
| Fixed keystroke sequence on each line | Macro | No scripting needed; record and replay |
| Edit depends on content or line length | Command | Script can inspect and transform input |
| Needs an external tool or formatter | Command | Runs via stdin/stdout and environment variables |
| One-off cleanup | Scratch macro | Fast, no saving required |
Next step
Pick one recurring edit and do it manually twice. If the steps are identical each time, record a scratch macro and replay it. If the steps vary, write a command in a language you already use (shell, Python, Ruby) that reads stdin and writes stdout, then bind it to a shortcut. Use scoped settings or bundles to limit where it applies, since the page notes bundles and scope selectors handle customization. For general editor comparisons, see TextMate and Visual Studio Code.
Is TextMate free and open source, and what macOS versions does it require?
Yes. TextMate is developed as open source, and its download page lists TextMate 2.0 as requiring macOS 10.12 or later. So you can run it on Sierra and newer Macs, including current macOS releases; anything older than 10.12 is not supported by that build.
A practical next step: if you're on an older Mac, check Apple menu → About This Mac before downloading. If you're already on 10.12 or later, the open-source nature matters mainly if you want to inspect or contribute to the code — day-to-day use is the same either way. You can get the download from TextMate.
User reviews (0)