FAQ Desk: How do I Replicate the Features of TextFX?
PeterJones last edited by PeterJones
Hello, and welcome to the FAQ Desk. You have likely been directed here because you were a user of TextFX and need an alternative.
TextFX is Abandonware
The last official version of TextFX (0.2.6) was from 2009. That pre-dates Notepad++'s 64-bit version (v7.0), so TextFX has never been (officially) usable on 64-bit Notepad++. And as of Notepad++ v8.4, the TextFX plugin causes problems for even the 32-bit version of Notepad++. (Starting in Notepad++ v8.4.3, Notepad++ will actively disable old copies of TextFX, because the plugin actions crashing Notepad++ is dangerous for data integrity.) So now, you need an alternative for some of the features. (Or you need to revert to a version of Notepad++ 32bit before v8.4, and understand that you cannot upgrade Notepad++ if you continue to want to use TextFX.)
Fortunately for you, Notepad++ has improved a lot since 2009, and many of the features are actually built into Notepad++. Other features are implemented in other plugins already. Some can be replaced by Macros (especially recording macros of search-and-replace operations). And some can be implemented with a script in one of the scripting plugins like PythonScript¹.
Possible alternative plugins
@rainman74 is working on an NPPTextFX2 replacement plugin. As of the 1.0 release, it works with v8.4-and-newer, though there are a couple of menu entries that were disabled for now. @rainman74 says that most of the functions also work under 64bit, except for the TextFX Edit submenu. But since that user seems willing to actively maintain the plugin, there is a chance that eventually all of TextFX’s features will be fixed in NPPTextFX2, and maybe even get full 64bit compatibility.
KubaDee has a NppTextViz plugin, which has a 64bit version, which claims:
This plugin is meant to hide or show lines to help you analysing larger files - logs for example. You can hide all lines that contain text pattern. Or simply select several lines and hide them.
Plugin is based on TextFX plugin v0.25 by Chris Severance.
It does not document, beyond “hiding lines”, what other features it supplies based on the original TextFX.
Unfortunately, it has not been updated in two years, and suffers with similar incompatibilities with Notepad++ v8.4-and-newer.
A menu-by-menu list of possible alternatives
- Quote operations: easy to do with macros of “in selection” searches (this will be called s/r macro from here on out)
- Case Toggles == Edit > Convert Case To
- Zap: s/r macro
- Mark Word or … == Search > Select and Find …
- Find Matching … == Search > Goto/Select Matching Brace
- Find/Replace == Find or Replace
- Duplicate == Edit > Line Operations > Duplicate…
- Fill Down… == Copy what you want to fill, and either column-select or multi-select and paste
- Insert Through Lines == that’s just a normal column-select paste
- Reindent == There are plugins that do that for particular languages, or you can use NppExec or PythonScript¹ to define a “pretty” command which will call an external “pretty-print”: see this “Python Indent…” discussion
- Most of the useful space-related are now in Edit > Blank Operations
- Indent and surround with: macro
- Strip/Split: macro
- LineUp == Plugin:Elastic Tabstops
- Unwrap == similar to join followed by a replace, or just a replace
- Rewrap == this can be implemented in PythonScript¹: this “rewrap script”
- Pad Rectangular == modern notepad++ already allows column-select beyond end of line, to keep it a rectangle
- Most of the first section is handled by default plugins MIME Tools and Converter
- Rot13 is a gimmick
- EBCDIC: if you still need this, you probably have a command-line tool that already converts EBCDIC to UTF-8, like iconv
iconv -f EBCDIC -t UTF-8 file-to-translate.txt
- KOI8R: also handled by
- File Info: Right click on the tab title, and select Full File Path to clipboard (and similar)
- Date/Time: Edit > Insert
TextFX HTML Tidy
- There are lots of HTML and XML plugins (XML Tools especially); or you can use NppExec or PythonScript¹ to define a “pretty” command which will call an external “pretty-print”: see this “Python Indent…” discussion
- Sort: Edit > Line Operations
- ASCII Chart: Edit > Character Panel gives similar info
- Insert Ruler: Plugin=Column Tools
- Insert Line Numbers: easy enough with Edit > Column Editor; this script for PythonScript¹ will do it for the current selection without needing column-selection mode
- Delete Line Numbers: column select and
DEL, or s/r macro
- Clean Email Quoting: s/r macro
- *decode: Plugins:MIME Tools
- Word Count: View > Summary for the whole document; this script for a PythonScript¹ solution that works on the active selection
- Add Up Numbers: here is a script implementation in PythonScript¹
- It looks like that would require a new plugin, or significant coding in PythonScript
¹Note on PythonScript Solutions
You can find instructions for how to install PythonScript and bring in a linked script in this FAQ
If it can be done in PythonScript, it can be done in others of the scripting plugins as well (like LuaScript or jN Notepad++ Plugin); most of the suggestions here are in PythonScript because that’s the solution style that gets the most examples in the Forum. (If you want to Contribute equivalent solutions in your scripting plugin of choice, such suggestions are welcome!)
If there is an existing implementation of one of these scripts or regex/macro solutions, please give me a link to which post implements it, and I will add a link from this FAQ to that implementation post.