
TextMate - Detailed Review
Coding Tools

TextMate - Product Overview
Introduction to TextMate
TextMate is a free and open-source general-purpose GUI text editor specifically designed for macOS, created by Allan Odgaard. Here’s a brief overview of its primary function, target audience, and key features:
Primary Function
TextMate is primarily used for editing source code, writing screenplays, running SQL queries, and creating various types of documents. It supports a wide range of programming languages and is highly versatile, making it a valuable tool for developers and coders.
Target Audience
The target audience for TextMate includes developers, programmers, and anyone who needs a powerful and customizable text editor. This includes individuals working on source code, web development, scripting, and other coding tasks. Its features are particularly beneficial for those who require advanced editing capabilities and customization options.
Key Features
Multiple Carets and Column Editing
TextMate allows users to add multiple insertion points, enabling simultaneous changes across different parts of the document. It also supports column editing, which is useful for manipulating tabular data.
File Search and Replace
The editor features advanced search and replace capabilities, including regular-expression-based searches. This makes it easy to find and replace text within documents, and the results are presented in a user-friendly manner.
Version Control
TextMate integrates well with major version control systems, allowing users to see file changes, view diffs, and commit subsets of changes directly from the editor.
Scoped Settings and Bundles
TextMate uses scoped settings to handle files that mix languages or have different formatting preferences. It also supports bundles, which are similar to plugins and can include language grammars, macros, code snippets, commands, and more. These bundles can be customized or imported from other users.
Commands and Macros
Users can define custom commands that can be executed using bash or other interpreters. Macros can be recorded to automate repetitive tasks, and snippets can be created with placeholders and transformations to adapt to different contexts.
Snippets and Templates
Snippets are intelligent pieces of text that can be inserted into documents using context-sensitive key strokes or tab completion. They support tab stops, dynamic updating, and access to environment variables.
Folding Code Sections and Accessibility
TextMate allows users to fold code sections to hide areas not currently being edited, and it supports regular-expression-based search and replace. The editor also includes features like clipboard history, live HTML/Markdown preview, and accessibility support for VoiceOver and Zoom users.
TextMate’s extensive set of features makes it a highly customizable and efficient tool for developers and coders on macOS.

TextMate - User Interface and Experience
TextMate Overview
TextMate, a powerful and customizable text editor for macOS, offers a user interface that is both feature-rich and designed to enhance the coding experience.Customization and Flexibility
TextMate allows for extensive customization through its use of bundles, which support a wide range of programming languages, markup systems, and workflows. Users can create or modify bundles to fit their specific needs, including defining scope selectors to apply different settings and key shortcuts based on the context of the file.Multiple Carets and File Search
The interface includes features like multiple carets, which enable users to make multiple changes simultaneously. This can be particularly useful for tasks such as swapping pieces of code or performing batch edits. The file search functionality is also streamlined, allowing users to easily search for and replace text, with results presented in a user-friendly manner.Version Control Integration
TextMate integrates well with major version control systems, providing features like file browser views that show changed files, editor views that highlight changed lines, and the ability to view diffs and commit subsets of changes. This integration makes managing code repositories more efficient.Auto-Paired Characters and Completion
The editor includes auto-paired characters, which automatically insert closing characters when opening characters are typed, helping to keep code balanced. It also features a completion function that suggests words based on matches within the current document, which can be augmented with custom lists or shell commands.Themes and Visual Customization
Users can customize the visual appearance of TextMate using themes, which are similar to CSS style sheets. Themes can be edited or created in the Preferences menu, allowing for detailed styling of different document elements such as strings, comments, and keywords. However, it is not currently possible to apply different themes to specific files or file types.Usability Considerations
While TextMate is highly regarded, it does have some usability flaws. For instance, hitting the tab key while text is selected inserts a literal tab rather than indenting the region, and there is no feature to syntax highlight unsaved files. Additionally, users cannot close multiple tabs at once or drag tabs out of the frame to compare documents side by side.Ease of Use
Despite some usability issues, TextMate is generally easy to use, especially for those familiar with macOS and its native applications. The editor mimics the behavior of `NSTextView` components, making it intuitive for users accustomed to other Cocoa applications. Features like smart tab behavior, column movement, and spell checking further enhance the user experience.Overall User Experience
The overall user experience in TextMate is enhanced by its extensive set of features, including macros, snippets, and live previews for HTML and Markdown. These features help streamline repetitive tasks and improve productivity. However, some users may find certain aspects, such as the tab behavior and lack of multi-tab management, somewhat limiting.Conclusion
In summary, TextMate offers a highly customizable and feature-rich interface that caters well to the needs of developers and coders, despite a few usability quirks that may require some adjustment.
TextMate - Key Features and Functionality
TextMate Overview
TextMate, a free and open-source general-purpose GUI text editor for macOS, is packed with a variety of features that make it a powerful tool for coding and text editing. Here are the main features and how they work:Language Grammars and Syntax Highlighting
TextMate allows users to create custom syntax highlighting modes using language grammars. These grammars are defined using a modified version of the Apple ASCII property list format and the Oniguruma regular expression library. Each point in a document is assigned one or more scopes, which determine the coloration and behavior of TextMate at that point. This hierarchical scope syntax enables detailed and flexible syntax highlighting.Commands
TextMate supports user-defined and user-editable commands that can be interpreted by bash or any specified interpreter. These commands can receive various inputs from TextMate, such as the current document, selected text, or environment variables, and their output can be handled in multiple ways. For example, a command can transform selected text and re-insert it into the document or display its output as a web page using TextMate’s HTML renderer. Many language-specific bundles include commands for compiling and running code, with the ability to display STDOUT and STDERR in a window within TextMate.Snippets
Snippets in TextMate are intelligent pieces of text that can be inserted into a document via context-sensitive key strokes or tab completion. They support tab stops, dynamic updating, access to environment variables, and the ability to run inline scripts. Tab stops can be cycled through using the tab key, and snippets can adapt based on the context in which they are used. This feature greatly simplifies coding in verbose languages or languages with commonly typed patterns.Bundles
TextMate uses bundles to group language grammars, snippets, macros, commands, and templates into functional packages. These bundles can be executed via keyboard shortcuts, tab triggers, or menu selections. Bundles are highly customizable and can be limited to specific scopes, allowing different languages or scopes to override built-in commands. A Subversion repository provides additional bundles for various programming languages and tasks.Project Management
TextMate allows multiple documents or folders to be opened in a project window, which includes a file browser and tabs for organization. Users can search and replace text across the entire project, and commands can interact with selected files or folders. Support for version control systems like CVS, Subversion, and darcs is also integrated, enabling users to manage versioned code effectively.Folding and Code Organization
TextMate features code folding, which allows users to hide areas of the document not currently being edited. This can be done manually or based on the document’s structure. Additionally, features like regular-expression-based search and replace, a function pop-up listing sections or functions, and clipboard history enhance the editing experience.Multiple Cursors and Column Editing
TextMate supports multiple cursors, enabling users to make multiple changes simultaneously. Column editing mode allows users to add the same text to several rows of text, which is particularly useful for manipulating tabular data. These features significantly improve productivity and efficiency in text editing.Accessibility and Integration
TextMate integrates well with the macOS graphical environment, offering features like clipboard graphical history, find and replace history, and accessibility support for VoiceOver and Zoom users. It also includes a WebKit-based HTML view window for live updates of HTML documents as they are edited.No AI Integration
It’s important to note that the TextMate text editor for macOS does not integrate AI into its functionality. The features and capabilities described above are based on its own programming and user customization options, without any reliance on AI technologies. In contrast, the other product mentioned with the name “TextMate” on GitHub, which is designed for improving English sentences using the OpenAI API, is a completely different application and not related to the TextMate text editor for macOS.
TextMate - Performance and Accuracy
Performance
TextMate is known for its strong performance, especially on macOS, where it is exclusively available. Here are some highlights:Key Highlights
- It handles a wide variety of programming languages through its use of ‘bundles,’ which are collections of syntax definitions, commands, and templates.
- TextMate supports syntax highlighting for multiple languages, which is facilitated by the TextMate grammar system. This system, although older, has been proven to be fluent and reliable over time, especially when compared to some newer alternatives like tree-sitter, which can still have performance issues with large files.
- The editor is praised for its smooth performance, minimalistic interface, and extensive customization options, making it a favorite among developers and writers.
Accuracy
In terms of accuracy, TextMate’s syntax highlighting and code management features are generally reliable:Accuracy Insights
- The TextMate grammar system, while considered outdated by some, has a large library of syntax files that are well-maintained by the community. This ensures accurate syntax highlighting for a wide range of languages.
- However, there are criticisms that TextMate grammars can be a nightmare to maintain and may not be as accurate or efficient as newer systems like tree-sitter. Tree-sitter is an incremental parser that offers more accurate syntax highlighting, code folding, and code formatting, and is considered easier to write and maintain.
Limitations and Areas for Improvement
Despite its strengths, TextMate has some limitations:Key Limitations
- Maintenance of Grammars: The TextMate grammar system is seen as less maintainable and less accurate compared to newer systems like tree-sitter. This can lead to issues in maintaining and updating syntax definitions for newer languages.
- Platform Compatibility: TextMate is exclusively available for macOS, which limits its use for developers on other platforms.
- Integration with AI Tools: Unlike some modern AI-driven code review tools like MATE, TextMate does not integrate AI technology for code reviews or optimization suggestions. This means users might need to use additional tools for AI-powered feedback.
Conclusion
In summary, while TextMate performs well and is accurate in its syntax highlighting and code management, it faces challenges in maintaining its grammar system and lacks the integration with AI technologies that some newer tools offer. For users seeking AI-driven code review and optimization, other tools might be more suitable. However, for those working on macOS and valuing a reliable, feature-rich text editor, TextMate remains a strong choice.
TextMate - Pricing and Plans
Pricing Structure Overview
The pricing structure of TextMate, a GUI text editor for macOS, is relatively straightforward and based on a one-time license fee rather than subscription plans. Here are the key points:
Licensing Model
TextMate operates on a one-time license fee model, meaning users pay once and own the software without any recurring costs.
Individual License
- The cost for an individual license is $58. This plan is suitable for solo users, such as freelancers or hobbyists, and includes essential features like syntax highlighting, code folding, and project organization.
Team and Business Licenses
- For teams or businesses, the cost scales with the number of users. Here are some examples:
- For 10 users, the total cost would be $580.
- For 100 users, the cost would be $5,800.
- For 1,000 users, the total cost would be $58,000.
Group Discounts
- There are discounts available for purchasing multiple licenses:
- 20% discount for 4-9 licenses
- 25% discount for 10-14 licenses
- 30% discount for more than 14 licenses.
Educational Discount
- An educational discount of 15% is available for eligible educational institutions.
Features Across Plans
- All plans include core features such as declarative customizations, tabs for open documents, recordable macros, folding sections, snippets, shell integration, and an extensible bundle system. There are no tiered plans with varying feature sets; the main difference is in the number of licenses purchased.
Implementation and Customization Costs
- Additional costs may apply for implementation and customization, which vary based on the business size and complexity of requirements. Small businesses might spend $500 to $1,000 on implementation and $500 on customization, while larger enterprises could spend $5,000 to $10,000 on implementation and $1,000 to $5,000 on customization.
Free Options
- While TextMate itself is not free, version 2.0 is being developed as open source. However, this does not mean the commercial version is free; it only provides the source code for users to modify and use without a license key in some cases.
Summary
In summary, TextMate’s pricing is based on a one-time license fee with discounts available for bulk purchases and educational institutions, but it does not offer free usage or subscription plans.

TextMate - Integration and Compatibility
Platform Compatibility
TextMate is exclusively designed for macOS, requiring version 10.12 or later to operate. This means it is not compatible with other operating systems like Windows or Linux.Integration with Other Tools
TextMate integrates seamlessly with several tools and systems:Version Control Systems
TextMate supports major version control systems, allowing users to see file changes, view diffs, and commit subsets of changes directly within the editor.Custom Commands and Scripts
TextMate leverages the UNIX underpinnings of macOS, enabling custom actions written in any language that can interact with stdin, stdout, and environment variables. It also supports WebKit and a dialog framework for complex interactions.Bundles and Plugins
TextMate uses bundles for customization, which can include syntax highlighting, snippets, and other functionalities. These bundles can be imported from various sources, including TextMate bundles, Sublime Text packages, and Visual Studio Code extensions. This compatibility allows users to extend the editor’s capabilities with a wide range of languages and workflows.Language Support
TextMate supports a huge list of programming languages through its bundle system. For languages not natively supported by other IDEs like IntelliJ IDEA, TextMate bundles can be imported to provide syntax highlighting and other features. For example, you can download and use custom TextMate bundles for languages like OCaml to enhance your coding experience.Development and Contribution
TextMate is written primarily in C and Objective-C . For contributors, while Swift is a consideration, it currently lacks interoperability with C , although future improvements are anticipated. Other languages like JavaScript, TypeScript, Python, and Ruby are also relevant due to their integration with existing extensions and LSPs (Language Server Protocols).Compatibility Issues
There are some compatibility issues to note, particularly with the transition to new architectures. For instance, some bundles may not support the latest arm64 architecture, leading to compatibility problems with newer macOS versions. Users may need to update or manually install compatible versions of these bundles.Conclusion
In summary, TextMate is a versatile text editor that integrates well with various tools and systems on macOS, but it is not compatible with other operating systems. Its extensive use of bundles and custom commands enhances its functionality, although there may be specific compatibility issues that need to be addressed.
TextMate - Customer Support and Resources
Customer Support
For interactive support, you can join the TextMate IRC channel. Here are the details:- Server: chat.freenode.net
- Room: #textmate
Mailing List
TextMate has a mailing list where you can participate in discussions and get support from other users and the development team.Bug Reporting
If you encounter any bugs, there is a guide available on how to write good bug reports to help the support team address the issues effectively.Additional Resources
Manuals and Documentation
TextMate provides comprehensive manuals for both version 1.x and version 2. These manuals cover a wide range of topics including working with multiple files, text editing, navigation, macros, snippets, shell commands, and more. You can find detailed information on using TextMate’s features, such as auto-paired characters, completion, and spell checking.Tutorials and Screencasts
In addition to the manuals, there are tutorials and screencasts available that can help you learn how to use TextMate more effectively.Bundles and Customization
TextMate supports a wide range of customization options through bundles, which include support for various programming languages, markup systems, and workflows. You can find and share bundles, and even create your own custom bundles and bundle items.Community and Forums
While the primary interactive support is through the IRC channel and mailing list, engaging with these communities can provide valuable insights and help from other users who may have encountered similar issues or have tips to share. By utilizing these resources, you can get the support and information you need to make the most out of TextMate.
TextMate - Pros and Cons
Advantages
Customizability and Flexibility
TextMate is highly customizable, allowing users to associate detailed scope selectors with key shortcuts, settings, and more. This makes it adaptable to various projects and coding styles.
Multi-Language Support
It supports a huge list of programming languages, making it a versatile tool for developers working on different projects.
Multiple Carets
The ability to add multiple insertion points simplifies tasks like making multiple changes at once or swapping pieces of code.
File Search and Replace
TextMate offers advanced file search capabilities, making it easy to find and replace text, preview changes, and extract matched text.
Version Control Integration
It supports major version control systems, allowing users to see file changes, view diffs, and commit subsets of changes.
Snippets and Macros
Users can create snippets with placeholders and transformations, and record macros to automate repetitive tasks.
Bundles and Commands
TextMate uses bundles for customization and supports custom actions written in any language that can interact with stdin, stdout, and environment variables. It also exposes WebKit and a dialog framework for complex interactions.
Additional Features
Other useful features include clipboard history, custom themes, live HTML/Markdown preview, foldable code blocks, and indented soft wrap.
Disadvantages
System Requirements
TextMate requires macOS 10.12 or later, which might limit its use on older systems.
Learning Curve
While highly customizable, TextMate can have a steep learning curve due to its extensive feature set and the need to understand how to use its various tools and shortcuts effectively.
Open Source Drawbacks
As an open-source tool, it may require technical expertise to customize or modify, which can be costly if you need to hire a developer. Additionally, open-source tools might not be as fully developed as commercial alternatives.
Overall, TextMate is a powerful and feature-rich text editor that can greatly enhance the coding experience for those who invest the time to learn its capabilities. However, it may not be the best fit for users who prefer a more straightforward, user-friendly interface or those without the necessary technical skills to fully leverage its customizability.

TextMate - Comparison with Competitors
When comparing TextMate with other coding tools in its category, several unique features and potential alternatives come to the forefront.
Unique Features of TextMate
- Multiple Carets: TextMate allows for multiple insertion points, making it easy to perform multiple changes simultaneously, swap pieces of code, and more.
- Scoped Settings: This feature enables you to associate detailed scope selectors with key shortcuts, settings, and other preferences, which is particularly useful for projects that mix languages or have different formatting preferences.
- Bundles and Macros: TextMate uses bundles for customization, supporting a wide range of languages, markup systems, and workflows. Macros can eliminate repetitive work by allowing you to save and replay actions.
- File Search and Version Control: TextMate offers advanced file search capabilities and comprehensive support for major version control systems, including diff views and commit management.
- Auto-Paired Characters and Completion: TextMate automatically inserts closing characters for paired characters like braces and quotes, and it has a completion function that suggests words based on the current document.
Potential Alternatives
Visual Studio Code
- Extensive Customization and Extensions: Visual Studio Code is highly customizable with a large ecosystem of extensions. It also includes features like IntelliSense, debugging support, and a built-in terminal.
- Cross-Platform Support: Unlike TextMate, which is macOS-specific, Visual Studio Code is available on Linux, Mac OSX, and Windows.
Sublime Text
- Speed and Simplicity: Sublime Text is known for its fast performance and simplicity. It features multiple cursors, split editing, and a distraction-free mode.
- Customization: While it lacks a built-in package manager, Sublime Text is highly customizable with a wide range of packages available.
Atom
- Hackable and Customizable: Developed by GitHub, Atom is highly customizable with themes and packages. It includes features like smart autocompletion, multiple panes, and a built-in package manager.
- Web Development Focus: Atom is particularly suited for web development, although it can be slower with large files.
BBEdit
- Professional Features: BBEdit is a professional text editor for macOS, offering features like project navigation, text manipulation tools, and code folding. It has a long history in the industry and is crafted for writers, web authors, and software developers.
- Limited Free Version: Unlike TextMate, BBEdit has a limited free version with reduced features.
Vim
- Efficiency and Customization: Vim is a highly customizable and efficient text editor known for its modal editing, split windows, and extensive plugin support. However, it has a steep learning curve for beginners.
Other Considerations
- Brackets: If you are focused on web development, Brackets is a lightweight option with live preview, preprocessor support, and inline editing. However, it has limited language support compared to TextMate.
- GNU Emacs: For those who prefer a highly extensible editor with scripting in Lisp, GNU Emacs is a powerful option, though it also has a steep learning curve.
Each of these alternatives offers unique strengths and may better suit specific needs or preferences, such as cross-platform support, web development focus, or extensive customization options.

TextMate - Frequently Asked Questions
Here are some frequently asked questions about TextMate, along with detailed responses to each:
Q: What is TextMate and what platforms does it support?
TextMate is a powerful and customizable text editor specifically designed for macOS. It requires macOS 10.12 or later to operate.
Q: What are some of the key features of TextMate?
TextMate offers several key features, including multiple carets for making simultaneous changes, advanced file search capabilities, and comprehensive support for version control systems. It also includes scoped settings for handling different languages and build systems, custom commands, snippets, and macros to streamline repetitive tasks.
Q: How does TextMate handle auto-paired characters?
TextMate automatically inserts closing characters when you type opening ones, such as braces or parentheses. It is smart enough to overwrite the auto-inserted character if you type it manually and can also delete the auto-inserted character if you delete the opening one. This feature is highly customizable through bundle preferences for different languages and contexts.
Q: What completion features does TextMate offer?
TextMate has a completion function that suggests words based on matches in the current document. You can cycle through suggestions using the escape key. Additionally, you can customize the completion by providing a list of candidates or setting up a custom shell command to gather completions. This can be done via bundle preferences to enhance the default completion behavior.
Q: How does TextMate handle clipboard management?
TextMate features a clipboard history that allows you to access previously copied or cut text. You can view the list of clippings using a specific key combination and select the one you want to paste. It also supports re-indented paste, adjusting the indentation of pasted text to match the current context, which can be temporarily or permanently disabled.
Q: What are the find and replace capabilities in TextMate?
TextMate offers advanced find and replace features, including a find dialog that supports inserting newline and tab characters. It also has a shared find clipboard that works across applications, allowing you to find the next occurrence of a string in other apps. Additionally, there are key equivalents for copying the selection to the find and replace clipboards, making it easier to perform replacements.
Q: Can TextMate be customized with bundles and plugins?
Yes, TextMate uses bundles for customization, which support a wide range of languages, markup systems, workflows, and more. These bundles can include snippets, macros, and custom commands, making it highly adaptable to different coding needs. You can also import and use custom bundles for additional languages and features.
Q: How does TextMate support version control?
TextMate provides extensive support for version control systems. You can see which files have changes in the file browser view, view line changes in the editor, bring up a diff of the current file’s changes, and commit a subset of changes. This support is available for all major version control systems.
Q: Does TextMate offer any live preview features?
Yes, TextMate includes live HTML and Markdown preview, allowing you to see the rendered output of your HTML or Markdown files as you edit them. This feature is particularly useful for web developers and content creators.
Q: How does TextMate handle spell checking?
TextMate supports system-wide spell checking, which can be adjusted in the Edit → Spelling submenu. You can exclude parts of the document from spell checking by creating preferences items in the bundle editor. By default, spell checking is disabled for source code except for strings and comments.
Q: Can TextMate be integrated with other development tools?
TextMate’s features, such as its syntax highlighting and bundles, can be integrated into other development tools like IntelliJ IDEA. IntelliJ IDEA uses TextMate grammars for syntax highlighting in languages not natively supported by the IDE.

TextMate - Conclusion and Recommendation
Final Assessment of TextMate
TextMate is a powerful and highly customizable text editor specifically designed for macOS, making it an excellent choice for developers and coders who value efficiency and flexibility.Key Features
- Multiple Carets: Allows for multiple changes at once, making it easier to manage and edit code efficiently.
- File Search: Provides an advanced search function that enables easy navigation between matches, extraction of matched text, and preview of replacements.
- Version Control: Supports major version control systems, allowing users to track changes, commit subsets of files, and view diffs directly within the editor.
- Scoped Settings: Enables users to associate detailed scope selectors with key shortcuts and settings, which is particularly useful for projects involving multiple languages or different build systems.
- Commands and Scripts: Integrates seamlessly with the shell environment, allowing users to run scripts and code directly from the editor. It also supports custom actions using WebKit and a dialog framework.
- Snippets and Macros: Allows users to create snippets with placeholders and transformations, and record macros to automate repetitive tasks.
- Syntax Highlighting and Auto-Paired Characters: Offers excellent syntax highlighting for a wide range of file types and auto-paired characters to keep code balanced and organized.
- Themes and Customization: Includes various themes, such as the popular “All Hallow’s Eve” theme, and supports custom themes, live HTML/Markdown preview, and other visual customization options.
Who Would Benefit Most
TextMate is ideal for several types of users:- Developers and Coders: Those who work with multiple programming languages and need a flexible, customizable editor that integrates well with version control systems.
- Web Developers: Benefiting from features like live HTML/Markdown preview and advanced syntax highlighting for nested markup.
- Efficiency Experts: Users who value automation through macros and snippets to streamline their workflow.
- Researchers and Documentation Writers: Those who need advanced search and preview capabilities, as well as the ability to manage large documents efficiently.