
TextMate - Detailed Review
Developer Tools

TextMate - Product Overview
Primary Function
TextMate serves as a general-purpose text editor, but it is particularly popular among developers and programmers due to its extensive support for various programming languages and its ability to streamline coding tasks.Target Audience
The primary target audience for TextMate includes developers, programmers, and anyone who needs a powerful and customizable text editing environment. This includes web developers, software engineers, and anyone working with code on a macOS system.Key Features
Language Support and Grammars
TextMate supports a wide range of programming languages through its language grammars, which allow users to create custom syntax highlighting modes. These grammars use a modified Apple ASCII property list format and the Oniguruma regular expression library to define complex syntax rules.Commands and Macros
Users can define custom commands that can be executed using bash or any other interpreter. These commands can interact with the text editor in various ways, such as transforming selected text or displaying output in a window. Macros can also be recorded and saved for repetitive tasks.Snippets
TextMate features intelligent snippets that can be inserted into documents using context-sensitive key strokes or tab completion. Snippets support tab stops, dynamic updating, and can even run inline scripts, making them highly versatile.Bundles
TextMate organizes its functionality into “bundles” that include language grammars, snippets, macros, commands, and templates. These bundles can be customized and extended to support different languages, workflows, and markup systems.Project Management
TextMate allows users to manage multiple documents and folders within a project window. It includes features like file and folder organization, virtual folders, and the ability to perform search and replace operations across the entire project.Additional Features
Other notable features include code folding, regular-expression-based search and replace, multiple cursors, clipboard history, and live HTML/Markdown preview. TextMate also integrates well with version control systems like CVS, Subversion, and darcs.Accessibility and Integration
TextMate supports accessibility features such as VoiceOver and Zoom, and it integrates seamlessly with the macOS graphical environment, including features like a WebKit-based HTML view window and graphical clipboard history. Overall, TextMate is a powerful tool for developers and programmers, offering a high degree of customization and a rich set of features to enhance productivity and coding efficiency.
TextMate - User Interface and Experience
TextMate Overview
TextMate, a general-purpose GUI text editor for Mac OS X, offers a user interface that blends functionality with a degree of customizability, although it has some notable usability flaws.
Key Features and Interface
TextMate supports a wide array of programming languages, including plain text, HTML, and Objective-C, among others. It features syntax highlighting, auto-correction, and code hinting, which are standard in many development tools.
The editor includes tabs, which can be useful for managing multiple files, but it lacks the ability to undock these tabs, making it difficult to compare files side by side. This limitation can be frustrating, especially for users accustomed to more flexible tab management in other applications.
TextMate also offers recordable macros, folding sections, snippets, and shell integration, which can enhance productivity. The extensible bundle system allows users to add support for various languages and customize the editor to their needs.
Ease of Use
While TextMate is feature-rich, its ease of use can be somewhat hindered by certain quirks. For example, the indentation shortcuts (⌘-] to indent and ⌘-.) can be unintuitive.
The drag-and-drop functionality is another area of frustration. Dropping a file into a TextMate window often results in the file’s contents being pasted into the current document rather than opening in a new tab, which is not the expected behavior.
User Experience
Despite these usability issues, TextMate has a strong user base, particularly among programmers. The editor’s flexibility and customizability are significant advantages. Users can create and use bundles to extend the editor’s capabilities, and the novel scope system allows for transparent and flexible declarative customizations.
However, the lack of certain features, such as the ability to close multiple tabs at once or to syntax highlight unsaved files, can be irritating for some users. These omissions violate the principle of least astonishment, especially for those familiar with other text editors that offer these functionalities.
Conclusion
In summary, TextMate offers a powerful and customizable text editing experience, but it requires some learning and adaptation due to its unique interface and some usability flaws. For those willing to invest time in learning its shortcuts and customizations, TextMate can be a very effective tool.

TextMate - Key Features and Functionality
TextMate Overview
TextMate, a powerful and customizable text editor for macOS, is rich in features that make it an invaluable tool for developers. Here are the main features and how they work:Auto-Paired Characters
TextMate automatically inserts closing characters when you type opening ones, such as braces, parentheses, or quotes. This feature helps maintain balanced syntax and can be customized through bundle preferences for different languages and contexts. For example, if you type an opening brace `{`, TextMate will insert the closing brace `}`. If you delete the opening character, the auto-inserted closing character is also deleted.Completion Function
TextMate has a completion function triggered by the escape key (`⎋`). It completes the current word based on matches found in the current document. You can cycle through multiple matches by pressing `⎋` repeatedly or cycle backwards using `⇧⎋`. This feature can be augmented with custom lists of candidates or shell commands to gather completions, allowing for more specific and context-dependent suggestions.Snippets
Snippets in TextMate are intelligent pieces of text that can be inserted into a document using context-sensitive keystrokes or tab completion. They support tab stops, dynamic updating, and access to environment variables. Snippets can also run inline shell scripts, making them highly versatile. For instance, you can create a snippet that inserts a boilerplate code block and then cycle through tab stops to fill in specific details.Commands
TextMate allows users to define and edit commands that can be executed within the editor. These commands can be written in any language that works with stdin, stdout, and environment variables. Commands can transform selected text, display output in various ways (e.g., as a tooltip, in a new document, or as a web page), and interact with the file system and version control systems. This feature is particularly useful for compiling and running code directly from the editor.Bundles
Bundles in TextMate group language-specific grammars, snippets, macros, commands, and templates into a single package. This allows for extensive customization and language-specific functionality. Bundles can be downloaded from a Subversion repository and include support for a wide range of languages and workflows. Each bundle can override built-in commands and settings to provide a tailored experience for different languages and contexts.Project Management
TextMate supports managing multiple documents and folders within a project window. This includes a file browser, the ability to search and replace across the entire project, and integration with version control systems like Subversion and CVS. Users can organize files and folders, create virtual folders, and interact with selected files or folders in the project drawer.Column Editing and Multiple Carets
TextMate offers column editing mode, which allows you to add the same text to several rows of text simultaneously. This is particularly useful for manipulating tabular data. Additionally, the multiple caret feature enables making multiple changes at once by adding multiple insertion points, which can significantly speed up repetitive tasks.Find and Replace
TextMate includes advanced find and replace features, including regular-expression-based search and replace, and the ability to insert newlines and tabs in the find dialog by holding down the option key while pressing return or tab. The editor also supports a find clipboard and replace clipboard, allowing for seamless searching and replacing across different parts of the document or even across different applications.Folding and Code Structure
TextMate allows folding sections of code to hide areas not currently being edited, providing a more compact view of the code structure. This feature helps in avoiding distractions and focusing on the relevant parts of the code.Accessibility and Integration
TextMate is accessible with features like VoiceOver and Zoom support. It also integrates well with the macOS graphical environment, including clipboard history, graphical find and replace history, and live HTML/Markdown preview using a WebKit-based HTML view window.AI Integration
There is no indication from the provided sources that TextMate integrates AI directly into its core functionality. The features and capabilities of TextMate are based on its extensive customization options, user-defined commands, and language-specific bundles, but do not involve AI-driven technologies.Conclusion
In summary, TextMate is a powerful text editor that excels through its customizable nature, extensive language support, and advanced editing features, all of which are designed to enhance the coding experience without relying on AI integration.
TextMate - Performance and Accuracy
Performance
TextMate generally offers good performance, making it a viable option for developers. It is known for its speed and efficiency, even when handling large files and complex syntax elements. However, the performance can be influenced by the specific grammar systems in use. For instance, the TextMate grammar system, while functional, has been criticized for its performance and maintainability compared to more modern alternatives like Tree-sitter. The current syntax highlighting mechanism in TextMate can be slow, especially with languages like C that have complex syntax elements.Accuracy
The accuracy of TextMate’s syntax highlighting and other features is a mixed bag. The TextMate grammar system, while widely used, is often described as cumbersome and difficult to maintain. Users and developers have reported significant challenges in ensuring accurate syntax highlighting, particularly for newer and more complex languages like TypeScript. This has led to numerous reported bugs and ongoing issues with the current system.Limitations
Several limitations are noteworthy:Grammar Maintenance
TextMate grammars are considered difficult to write and maintain. They often struggle with interpreting incomplete lines and handling certain syntax constructs, which can lead to inaccuracies in syntax highlighting and other features.Code Completion
Unlike some other editors, TextMate lacks built-in code completion features, which can be a significant drawback for developers learning new languages or working with verbose codebases.Binary Safety
TextMate is not binary safe, meaning it does not guarantee the preservation of arbitrary binary data in files, which can be problematic for certain types of development.HTML Validation
TextMate relies on an external validator for HTML validation, requiring an active network connection, which can be inconvenient.Areas for Improvement
To improve performance and accuracy, there are a few areas to consider:Adoption of New Grammar Systems
Transitioning to more modern grammar systems like Tree-sitter could significantly enhance performance and accuracy. Tree-sitter is praised for its incremental parsing capabilities and ease of maintenance compared to TextMate grammars.Enhanced Code Completion
Integrating built-in code completion features would make TextMate more competitive with other editors and more user-friendly for developers.Addressing Binary Safety
Ensuring that TextMate can handle binary data safely would expand its utility for a broader range of development tasks. In summary, while TextMate offers good performance and is highly customizable, it faces significant challenges with the accuracy and maintainability of its grammar system, as well as other functional limitations. Addressing these areas could improve its overall usability and effectiveness for developers.
TextMate - Pricing and Plans
Pricing Structure of TextMate
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’s a breakdown of the pricing and the features associated with each tier:
Individual Plan
- This plan is designed for solo users and costs $58 per license.
- It includes essential features such as syntax highlighting, code folding, project organization, and other basic functionalities that are useful for freelancers or hobbyists working on small-scale projects.
Team Plan
- This plan is suitable for small to medium-sized businesses that need collaboration tools.
- The cost is calculated based on the number of users: for example, 10 users would cost $580 (10 * $58).
- Features include version control, customizable themes, and other tools that facilitate team collaboration and efficient project management.
Enterprise Plan
- This plan is geared towards larger enterprises with more complex needs.
- The pricing for the Enterprise plan is not publicly available, but it includes advanced features such as integrations with third-party tools, priority customer support, and enhanced security measures.
- This plan is ideal for businesses that require a high level of customization and support to meet their specific requirements.
Volume Discounts
- TextMate offers discounts for bulk purchases:
- 20% discount for 4-9 licenses
- 25% discount for 10-14 licenses
- 30% discount for 15 or more licenses
- There is also a 15% educational discount available.
No Free Option for Commercial Use
- While TextMate itself is not free for commercial use, the source code for version 2.0 is being developed as open source. However, this does not mean the commercial product is free; it simply allows more flexibility with the product.
Summary
In summary, TextMate’s pricing is based on a one-time license fee with different tiers catering to individual users, teams, and enterprises, along with volume discounts and an educational discount. There is no free version available for commercial use, although the open-source nature of the upcoming version 2.0 provides some flexibility.

TextMate - Integration and Compatibility
Platform Compatibility
TextMate is exclusively compatible with macOS, requiring version 10.12 or later to operate. It does not offer cross-platform compatibility like some other editors, such as Sublime Text, which works on Windows, macOS, and Linux.
Integration with 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. This integration makes it easier to manage code repositories.
Custom Commands and Scripts
TextMate leverages the UNIX underpinnings of macOS, enabling users to write custom actions in any language that can work with stdin, stdout, and environment variables. It also exposes WebKit and a dialog framework for creating Mac-native or HTML-based interfaces, enhancing its customization capabilities.
Bundles and Language Support
TextMate uses bundles for customization, which include language grammars, snippets, and other functionalities. These bundles can be imported from various sources, including TextMate bundles, Sublime Text packages, and even Visual Studio Code extensions. This allows TextMate to support a wide range of programming languages and markup systems.
Syntax Highlighting and IntelliJ IDEA Integration
For languages not natively supported by IntelliJ IDEA, TextMate bundles can be used to provide syntax highlighting. This is achieved through the TextMate Bundles plugin in IntelliJ IDEA, which allows importing and using TextMate bundles for languages like OCaml, Swift, C , and Perl.
Community and Extensions
While TextMate has a dedicated community, it may not be as extensive or active as that of Sublime Text. However, TextMate’s open-source nature and the ability to create custom bundles and commands ensure that users can extend its functionality to meet their needs.
Performance and Compatibility Issues
TextMate is generally efficient, but users may encounter compatibility issues, particularly with newer macOS architectures. For example, some bundles may not support the arm64 architecture, requiring updates or manual fixes.
Conclusion
In summary, TextMate is a versatile text editor that integrates well with various development tools on macOS, though it lacks cross-platform compatibility. Its customization options through bundles and scripts make it a valuable tool for developers, despite some potential compatibility issues with newer hardware architectures.

TextMate - Customer Support and Resources
Support Channels
IRC Chatroom
Users can engage in real-time discussions and get support through the TextMate IRC channel. The server is chat.freenode.net
and the room is #textmate
.
Mailing List
There is a mailing list available for general discussions and support.
Email Support
You can contact the support team directly via email for specific inquiries or issues.
For quick queries or updates, you can tweet @macromates
.
Resources
Documentation and Guides
The official TextMate website provides various guides, including a section on writing good bug reports, which helps users report issues effectively.
Community
Engaging with the community through the IRC channel or mailing list can be very helpful, as other users and developers often share tips and solutions.
Bundles and Plugins
TextMate supports a wide range of bundles that can be downloaded and used to extend its functionality. These bundles can be found and imported to support different languages and workflows.
Additional Help
TextMate Support Page
The support page offers links to various resources, including the IRC channel, mailing list, and contact information for email support.
Integrations with Other Tools
For users of other development tools like IntelliJ IDEA, TextMate bundles can be imported to enhance syntax highlighting and other features, ensuring compatibility and extended functionality.
By utilizing these support options and resources, users can address their questions, resolve issues, and maximize their productivity with TextMate.

TextMate - Pros and Cons
TextMate as a Text Editor
When considering TextMate as a text editor in the developer tools category, here are some key advantages and disadvantages:
Advantages
Customization and Flexibility
Customization and Flexibility: TextMate is highly customizable, allowing users to associate detailed scope selectors with key shortcuts, settings, and other preferences. It supports a wide range of programming languages and markup systems through its bundle system.
Multiple Carets and File Search
Multiple Carets and File Search: TextMate offers the ability to add multiple insertion points, making it easy to perform multiple changes at once. It also features a comprehensive file search function that allows users to easily find, preview, and replace text within projects.
Version Control Integration
Version Control Integration: TextMate supports major version control systems like SVN and Git, providing features such as file browser views of changes, line-by-line change tracking, and the ability to commit subsets of changes.
Snippets and Macros
Snippets and Macros: Users can create snippets with placeholders and transformations, and macros to automate repetitive tasks. This enhances productivity by allowing quick insertion of commonly used code blocks and automating repetitive actions.
Syntax Highlighting and Code Completion
Syntax Highlighting and Code Completion: TextMate includes syntax highlighting, auto-correction, and code hinting, which are essential features for developers. It also supports code completion, making it easier to write code without constantly looking up syntax.
Themes and UI
Themes and UI: The editor allows for custom themes, enabling users to personalize the appearance of the syntax highlighting. It also features a user-friendly interface that bridges the gap between UNIX commands and a GUI.
Disadvantages
Platform Limitation
Platform Limitation: TextMate is exclusively available for macOS, requiring at least macOS 10.12 or later. This limits its use for developers on other operating systems.
Learning Curve
Learning Curve: While TextMate is highly customizable, this can also mean a steeper learning curve, especially for novice users. Custom actions and settings may require some time to set up and get used to.
Community and Support
Community and Support: Although TextMate has a dedicated user base, it is not as widely adopted as some other text editors. This might result in fewer community resources and less frequent updates compared to more popular alternatives.
Historical Context and Competition
Historical Context and Competition: TextMate has faced competition from other text editors like Sublime Text, which has attracted some of its user base due to incremental feature additions and updates.
Overall, TextMate is a powerful and customizable text editor that is well-suited for developers who value its unique features and are comfortable with its learning curve. However, its platform limitation and relatively smaller community might be considerations for some users.

TextMate - Comparison with Competitors
When Comparing TextMate with Other Developer Tools
When comparing TextMate with other developer tools, especially those integrating AI-driven features, here are some key points to consider:
TextMate Features
TextMate is a powerful and customizable text editor specifically for macOS, with support for a wide range of programming languages. It offers features like multiple carets for simultaneous edits, advanced file search, version control integration, scoped settings for mixed-language files, and a robust system of bundles and macros for customization.
Unique Features of TextMate
- Customization and Bundles: TextMate stands out with its extensive use of bundles, which allow for detailed customization and support for numerous languages and workflows.
- UNIX Integration: It leverages the UNIX underpinnings of macOS, enabling custom actions through scripts and commands.
- Macros and Snippets: The ability to create and use macros and snippets with placeholders and transformations is highly useful for repetitive tasks.
- Lightweight and Customizable: TextMate is known for its lightweight nature and high customizability through preferences and configuration files.
AI-Driven Alternatives
GitHub Copilot
GitHub Copilot is an AI-powered coding assistant that integrates with popular IDEs like Visual Studio Code and JetBrains. It offers advanced code completion, context-aware suggestions, and automated code documentation and testing. Copilot also supports real-time collaboration and code review suggestions, making it a strong alternative for those seeking AI-driven coding assistance.
Windsurf IDE by Codeium
Windsurf IDE is another AI-driven tool that offers intelligent code suggestions, real-time AI collaboration, and multi-file smart editing. It features Cascade Technology for deep contextual understanding and rapid prototyping capabilities, making it a competitive option for developers looking for advanced AI integration.
JetBrains AI Assistant
The JetBrains AI Assistant integrates into JetBrains IDEs, providing smart code generation, context-aware completion, and proactive bug detection. It also offers automated testing, documentation assistance, and intelligent refactoring suggestions. This tool is particularly useful for developers already using JetBrains IDEs.
OpenHands
OpenHands is an AI-assisted development platform that supports natural language communication, real-time code preview, and dynamic workspace management. It integrates with VS Code and offers support for multiple language models, including Claude Sonnet 3.5. OpenHands is known for its versatile model support and strong community backing.
Key Differences
- AI Integration: While TextMate is a traditional text editor with extensive customization options, tools like GitHub Copilot, Windsurf IDE, JetBrains AI Assistant, and OpenHands are heavily focused on AI-driven coding assistance.
- Platform Compatibility: TextMate is exclusive to macOS, whereas many of the AI-driven tools are compatible with multiple platforms and IDEs.
- Feature Set: TextMate excels in its customization and macro capabilities, but lacks the advanced AI features such as intelligent code suggestions, real-time collaboration, and automated testing found in the other tools.
Conclusion
If you are looking for a highly customizable text editor with strong support for multiple programming languages and a lightweight footprint, TextMate is an excellent choice. However, if you are seeking advanced AI-driven coding assistance, tools like GitHub Copilot, Windsurf IDE, JetBrains AI Assistant, or OpenHands might be more suitable alternatives. Each of these tools offers unique features that can significantly enhance your coding workflow with the power of AI.

TextMate - Frequently Asked Questions
1. How do I install and update bundles in TextMate?
To install new bundles in TextMate, you can find them in the Preferences under the Bundles section. Here, you can browse a list of available bundles and install them. TextMate will automatically download updates for the bundles you have installed. If you need to install a bundle not covered by the installer, you can do so by double-clicking the bundle file. Existing bundles with generic names like Bundle Support, Themes, Source, SCM, and Text should not be uninstalled as they provide support for other bundles.
2. What are the key features of TextMate?
TextMate offers several key features that make it a versatile text editor. These include syntax highlighting, autocompletion, find and replace, code folding, and language support for various programming languages such as Java, C, Python, HTML, CSS, and JavaScript. It also supports collaborative editing, multiple selection methods, and extensibility through plugins and integrations. Additionally, TextMate has security features to protect the application and data.
3. How do I customize the appearance of TextMate?
You can customize the appearance of TextMate by changing themes, which can be done per document type or folder. To change the theme, you can set the theme
property to the desired theme’s UUID in the .tm_properties
file for the specific document type or folder. For example, you can set or
to use a particular theme.
4. Can I use TextMate on multiple operating systems?
TextMate is primarily designed for macOS, but it does not have native cross-platform support. While it is not available for other operating systems like Windows or Linux, it integrates well with the macOS environment, leveraging its UNIX underpinnings and GUI.
5. How do I manage multiple documents and projects in TextMate?
TextMate allows you to manage multiple documents and projects efficiently. You can open files and folders as projects, use the “Open Quickly” feature to find files quickly, and filter files within a project. The file browser helps in organizing and focusing on specific files within a project. Additionally, you can use the “Projects” feature to group related files and folders together.
6. What version control systems does TextMate support?
TextMate supports version control systems such as Git and SVN. If these tools are found in /usr/bin
, TextMate checks if Xcode is installed and ignores the executables if Xcode is not present, avoiding user confusion. It also integrates with these systems by detecting .git
or .svn
folders in your project.
7. How do I use the find and replace feature in TextMate?
The find and replace feature in TextMate is powerful and includes syntax highlighting for the search fields. You can use regular expressions and format strings in the search dialog. For example, copying multiple selections to the find clipboard constructs a regular expression that matches any of the items copied. This feature helps in efficiently finding and replacing specific lines of code.
8. Can I extend TextMate’s functionality with plugins and integrations?
Yes, TextMate is highly extensible. You can add additional features and functionalities through plugins and integrations. The extensibility feature allows you to include pre-packaged integrations and plug-ins, enhancing the editor’s capabilities according to your needs.
9. How do I change the font and appearance of line numbers in TextMate?
You can change the font used for line numbers by setting specific user defaults keys. For example, you can use the "$TM_QUERY"
or go to Bundles → Select Bundle Item…
and switch to Settings
to adjust the font and other appearance settings. Additionally, you can adjust the minimum and maximum width of tab items using the tabItemMinWidth
and tabItemMaxWidth
user defaults keys.
10. Is there a manual or guide available for TextMate?
Yes, there is a manual available for TextMate, although it is still a work in progress. The manual covers various aspects such as opening files, projects, version control, searching, text editing, navigation, and more. You can find the draft of the TextMate 2 manual on the official website.

TextMate - Conclusion and Recommendation
Final Assessment of TextMate
TextMate is a powerful and customizable text editor specifically designed for macOS, making it a valuable tool in the Developer Tools category.Key Features
- Language Support: TextMate supports a vast array of programming languages, including HTML, Objective-C, and many others. Since version 2.0, it has been open source, and there are ongoing efforts to add support for newer languages like Swift.
- Version Control: It integrates well with major version control systems such as SVN and Git, allowing users to manage file changes, view diffs, and commit subsets of files.
- Customization: The editor is highly customizable through bundles, which support various languages, markup systems, and workflows. Users can also create snippets, macros, and use scoped settings to adapt the editor to different projects.
- Accessibility: TextMate version 2.0 is accessible and works well with VoiceOver (VO), although there may be some minor issues with certain features like line number announcements.
Who Would Benefit Most
TextMate is ideal for several types of users:- Developers: Those working on macOS will appreciate its integration with version control systems, multiple caret functionality, and the ability to handle files mixing different languages. It is particularly useful for OSX/iOS developers who may use it in conjunction with or instead of Xcode.
- Web Developers: With its support for HTML, Markdown, and other web development languages, TextMate is a great choice for web designers and developers. It offers live HTML/Markdown preview and other features that streamline web development workflows.
- Students and Beginners: The editor’s user-friendly interface and extensive documentation make it accessible to novice users. Its customizability and support for various languages help learners transition smoothly between different programming tasks.
Overall Recommendation
TextMate is a solid choice for anyone looking for a flexible and feature-rich text editor on macOS. Here are some key points to consider:- Free and Open Source: Starting with version 2.0, TextMate is free and open source, making it accessible to everyone.
- Customizability: The editor’s ability to be customized through bundles and snippets makes it highly adaptable to different workflows and preferences.
- Accessibility: Despite some minor issues, TextMate is generally accessible with VoiceOver, making it a good option for users who rely on screen readers.