Sign in Join
Wiki copytemporary

CudaText VS other editors: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11# CudaText advantages over Sublime Text 3
22
3-- Open source, more operating systems are supported
4-- The Python API is easier to use
5-- The Python API allows management of dialogs and UI-controls, including the CudaText editor control
6-- Code-Tree for most of lexers (ST has only plugin for very limited set of languages)
7-- Powerful EControl lexer format, and it's easier to create/edit lexers (GUI in external program)
8-- Floating (separate window) mode of side panel and bottom panel
9-- Floating (separate window) groups of UI-tabs (in addition to normal 6 groups)
10-- [[CudaText|Toolbar]], configurable via plugin
11-- [[CudaText|Configurable statusbar]]
12-- Horizontal ruler above text
13-- [[CudaText|Micromap]]
14-- [[CudaText|Markers]] in editor
15-- [[CudaText|Sessions system]]
16-- Caret position after end-of-line
17-- Better support for encodings, including UTF-32
18-- Better support national keyboards on Linux
19-- Correctly saves binary files
20-- API for inter-line gaps, helping to several plugins (Differ, Insert Pics, Embedded Editor)
21-- [[CudaText|Viewer]] for files of unlimited size
22-- [[CudaText|Hex display of special chars]]
23-- [[CudaText|UI-tabs features]]: colored tabs, icons (Tab Icons plugin), tabs on the left/right
24-- Plugin "Options Editor" to configure CudaText via simple GUI
25-- [[CudaText|Character Map dialog]]
26-- UI can be scaled by option (up to 500%)
27-- Single-instance mode is supported on all OS'es
28-- Scrolling after middle-button click (called "Autoscrolling" in Firefox)
29-- [[CudaText plugins|Show pictures in the text]]
30-- [[CudaText plugins|Colorize the text]]
31-- [[CudaText|Activating internet links]]
32-- [[CudaText|Automatic folding of comments]]
33-- [[CudaText|HTML auto-completion suggests file/folder names]]
34-- [[CudaText|File URI file:/// auto-completion]]
35-- [[CudaText|HTML color codes underlining]]
36-- [[CudaText plugins|Macros plugin]] also records actions performed in the Find/Replace dialog, and mouse clicks
37-- CudaText and its plugins support i18n (text strings can be translated)
38-- Function "Find in files" is [[CudaText plugins|implemented in plugin]], with much more features
39-- [[CudaText|Tab switcher]] dialog
40-- Can split single UI-tab, for single file or 2 different files (helps to work with Differ plugin)
41-- Color themes do not have per-lexer settings
42-- [[CudaText|Picture file viewer]] supports zooming of a picture
43-- [[CudaText|Dialog "Go to"]] gives more features
44-- Option "tab_smart" for smart-tabs, known from several other text editors
45-- Option "caret_proximity_vert" to set minimal distance of caret to top/bottom edge
46-- Option for "zebra" mode
47-- Windows version can use different Python engine (packages in add-ons)
48-- Add-ons do not disappear due to GitHub repository deletions
49-- Find/Replace dialog:
50- - Dialog has "Allowed syntax elements" option
51- - Dialog has "Find first" button (ST: only "Find" which means "Find next")
52- - Dialog has "Immediate search" option (ST: search is always immediate)
3+ * Open source, more operating systems are supported
4+ * The Python API is easier to use
5+ * The Python API allows management of dialogs and UI-controls, including the CudaText editor control
6+ * Code-Tree for most of lexers (ST has only plugin for very limited set of languages)
7+ * Powerful EControl lexer format, and it's easier to create/edit lexers (GUI in external program)
8+ * Floating (separate window) mode of side panel and bottom panel
9+ * Floating (separate window) groups of UI-tabs (in addition to normal 6 groups)
10+ * [[CudaText|Toolbar]], configurable via plugin
11+ * [[CudaText|Configurable statusbar]]
12+ * Horizontal ruler above text
13+ * [[CudaText|Micromap]]
14+ * [[CudaText|Markers]] in editor
15+ * [[CudaText|Sessions system]]
16+ * Caret position after end-of-line
17+ * Better support for encodings, including UTF-32
18+ * Better support national keyboards on Linux
19+ * Correctly saves binary files
20+ * API for inter-line gaps, helping to several plugins (Differ, Insert Pics, Embedded Editor)
21+ * [[CudaText|Viewer]] for files of unlimited size
22+ * [[CudaText|Hex display of special chars]]
23+ * [[CudaText|UI-tabs features]]: colored tabs, icons (Tab Icons plugin), tabs on the left/right
24+ * Plugin "Options Editor" to configure CudaText via simple GUI
25+ * [[CudaText|Character Map dialog]]
26+ * UI can be scaled by option (up to 500%)
27+ * Single-instance mode is supported on all OS'es
28+ * Scrolling after middle-button click (called "Autoscrolling" in Firefox)
29+ * [[CudaText plugins|Show pictures in the text]]
30+ * [[CudaText plugins|Colorize the text]]
31+ * [[CudaText|Activating internet links]]
32+ * [[CudaText|Automatic folding of comments]]
33+ * [[CudaText|HTML auto-completion suggests file/folder names]]
34+ * [[CudaText|File URI file:/// auto-completion]]
35+ * [[CudaText|HTML color codes underlining]]
36+ * [[CudaText plugins|Macros plugin]] also records actions performed in the Find/Replace dialog, and mouse clicks
37+ * CudaText and its plugins support i18n (text strings can be translated)
38+ * Function "Find in files" is [[CudaText plugins|implemented in plugin]], with much more features
39+ * [[CudaText|Tab switcher]] dialog
40+ * Can split single UI-tab, for single file or 2 different files (helps to work with Differ plugin)
41+ * Color themes do not have per-lexer settings
42+ * [[CudaText|Picture file viewer]] supports zooming of a picture
43+ * [[CudaText|Dialog "Go to"]] gives more features
44+ * Option "tab_smart" for smart-tabs, known from several other text editors
45+ * Option "caret_proximity_vert" to set minimal distance of caret to top/bottom edge
46+ * Option for "zebra" mode
47+ * Windows version can use different Python engine (packages in add-ons)
48+ * Add-ons do not disappear due to GitHub repository deletions
49+ * Find/Replace dialog:
50+ * Dialog has "Allowed syntax elements" option
51+ * Dialog has "Find first" button (ST: only "Find" which means "Find next")
52+ * Dialog has "Immediate search" option (ST: search is always immediate)
5353
5454# CudaText advantages over Visual Studio Code
5555
56-- VSCode has the option "maximal count of ui-tabs", because its ui-tabs are memory hungry. CudaText allows to open 1000+ ui-tabs without problems.
57-- VSCode is slow for file sizes 10M...100M, while CudaText allows this without problems. For size 2M+ CudaText disables lexers, but "lite lexers" (Log, XML, JSON) work always.
58-- VSCode doesn't have customizable toolbar.
59-- VSCode doesn't allow to show side-panels in floating (detached) window.
60-- VSCode has internal "find in files" but CudaText has FindInFiles-4 plugin with much more features.
61-- VSCode cannot show inter-line gaps with pictures. CudaText plugin "Insert Pics" is based on this feature.
62-- VSCode doesn't have the analog of CudaText "Color Text" plugin (not 100% sure here).
63-- VSCode doesn't have the analog of CudaText "Draw Lines" plugin.
64-- VSCode cannot place text caret beyond end-of-line (not 100% sure here).
65-- VSCode has the add-on "Macros", with it you need to create/configure command sequences by hands. Not simple task. CudaText has the plugin "Macros" and it records usual keypresses. Much eaiser to do.
66-- CudaText gives [[CudaText|viewer for files of unlimited size]].
67-- CudaText plugins API is simpler.
68-- CudaText supports UTF-32 LE/BE encoding.
56+ * VSCode has the option "maximal count of ui-tabs", because its ui-tabs are memory hungry. CudaText allows to open 1000+ ui-tabs without problems.
57+ * VSCode is slow for file sizes 10M...100M, while CudaText allows this without problems. For size 2M+ CudaText disables lexers, but "lite lexers" (Log, XML, JSON) work always.
58+ * VSCode doesn't have customizable toolbar.
59+ * VSCode doesn't allow to show side-panels in floating (detached) window.
60+ * VSCode has internal "find in files" but CudaText has FindInFiles-4 plugin with much more features.
61+ * VSCode cannot show inter-line gaps with pictures. CudaText plugin "Insert Pics" is based on this feature.
62+ * VSCode doesn't have the analog of CudaText "Color Text" plugin (not 100% sure here).
63+ * VSCode doesn't have the analog of CudaText "Draw Lines" plugin.
64+ * VSCode cannot place text caret beyond end-of-line (not 100% sure here).
65+ * VSCode has the add-on "Macros", with it you need to create/configure command sequences by hands. Not simple task. CudaText has the plugin "Macros" and it records usual keypresses. Much eaiser to do.
66+ * CudaText gives [[CudaText|viewer for files of unlimited size]].
67+ * CudaText plugins API is simpler.
68+ * CudaText supports UTF-32 LE/BE encoding.
6969
7070# CudaText disadvantages compared to Sublime Text / VSCode
7171
72-- CudaText doesn't use 3D acceleration on rendering, so it may lag (and/or consume lot of CPU) if you scroll text, with big window size (not on Windows, Windows API works fast enough).
73-- CudaText doesn't provide "Go to anything" command, instead it gives several separate commands:
74- - Go to line number,
75- - Go to project file,
76- - Go to bookmark,
77- - Go to code-tree symbol, ...
78-- CudaText lexers are "simple": they don't parse text as deeply as ST/VSCode; so you need the LSP plugin if you need IntelliSense features.
79-- CudaText key bindings are simpler: commands don't have "arguments" and cannot be set per-project (but can be set per-lexer).
80-- CudaText plugins API doesn't support async events.
81-- CudaText doesn't support some encodings (e.g. Shift-JIS).
72+ * CudaText doesn't use 3D acceleration on rendering, so it may lag (and/or consume lot of CPU) if you scroll text, with big window size (not on Windows, Windows API works fast enough).
73+ * CudaText doesn't provide "Go to anything" command, instead it gives several separate commands:
74+ * Go to line number,
75+ * Go to project file,
76+ * Go to bookmark,
77+ * Go to code-tree symbol, ...
78+ * CudaText lexers are "simple": they don't parse text as deeply as ST/VSCode; so you need the LSP plugin if you need IntelliSense features.
79+ * CudaText key bindings are simpler: commands don't have "arguments" and cannot be set per-project (but can be set per-lexer).
80+ * CudaText plugins API doesn't support async events.
81+ * CudaText doesn't support some encodings (e.g. Shift-JIS).
8282
8383# CudaText performance
8484
8585## Startup time
8686
87-CudaText starts quite fast: about 0.3 sec with about 30 plugins (all preinstalled + some popular plugins), on Linux, on CPU x64 Intel Core i3 3GHz.
87+CudaText starts quite fast: about 0.3 sec with about 30 plugins (all preinstalled + some popular plugins), on Linux, on CPU x64 Intel Core i3 3GHz.
8888
89-- If no additional plugins are installed, or Python engine is disabled (ie not configured on Unix, or Python DLL files are deleted on Windows), then it starts even faster.
90-- If configuration/history are clean, it starts faster.
91-- If bottom panel is hidden on start, via option "ui_bottom_on_start":2, it starts faster.
89+ * If no additional plugins are installed, or Python engine is disabled (ie not configured on Unix, or Python DLL files are deleted on Windows), then it starts even faster.
90+ * If configuration/history are clean, it starts faster.
91+ * If bottom panel is hidden on start, via option "ui_bottom_on_start":2, it starts faster.
9292
9393## Performance of loading huge files
9494
95-How fast Linux editors open huge files?
96-
97-Test file has about 300M size, it has 4M ASCII lines, it's created by Python script:
95+How fast Linux editors open huge files?
9896
99-``` python
97+Test file has about 300M size, it has 4M ASCII lines, it's created by Python script:
98+```
10099f = open("a.log", "w")
101-for n in range(4*1000*1000):
102- k = 120-n%100
103- f.write(str(n+1)+' '+chr(k%26+ord('a'))*k+'\n')
100+ for n in range(4*1000*1000):
101+ k = 120-n%100
102+ f.write(str(n+1)+' '+chr(k%26+ord('a'))*k+'\n')
104103```
105104
106-Testing on Ubuntu 20.04, CPU: Intel Core i3 3GHz, RAM: 12G. Each time is average of 2-3 tries in the same session.
105+Testing on Ubuntu 20.04, CPU: Intel Core i3 3GHz, RAM: 12G. Each time is average of 2-3 tries in the same session.
107106
108-- CudaText 1.211.0: 8 sec
109-- Sublime Text 4 4169: 8 sec
110-- Geany 1.36: hangs, waited for it 90 sec
111-- Kate 23.08.4: 5 sec, then go to end (Ctrl+End hotkey) took additional 30 sec
112-- Vim 8.1.1847: 2 sec
113-- Emacs GUI 29.2: 2 sec, after showing confirmation for big file
114-- gedit 3.36.2: 19 sec, then go to end (Ctrl+End hotkey) hangs: waited for it 100 sec
107+ * CudaText 1.211.0: 8 sec
108+ * Sublime Text 4 4169: 8 sec
109+ * Geany 1.36: hangs, waited for it 90 sec
110+ * Kate 23.08.4: 5 sec, then go to end (Ctrl+End hotkey) took additional 30 sec
111+ * Vim 8.1.1847: 2 sec
112+ * Emacs GUI 29.2: 2 sec, after showing confirmation for big file
113+ * gedit 3.36.2: 19 sec, then go to end (Ctrl+End hotkey) hangs: waited for it 100 sec
115114
116115## Performance of editing huge lines
117116
118-Tested several editors on Ubuntu 20.04 on Intel Core i3 CPU.
119-
120-XML file: single line of length 4M. XML file contains line like \<id name="nnnnnnn"\> with the huge "name" value of 4M. Python script to generate XML file:
117+Tested several editors on Ubuntu 20.04 on Intel Core i3 CPU.
121118
122-``` python
119+XML file: single line of length 4M. XML file contains line like <id name="nnnnnnn"> with the huge "name" value of 4M. Python script to generate XML file:
120+```
123121#!/usr/bin/python3
124-f = open("a.xml", "w")
125-f.write('<id name="')
126-for n in range(1, 4096):
127- f.write("n" * 1024)
128-f.write('">\n')
122+ f = open("a.xml", "w")
123+ f.write('<id name="')
124+ for n in range(1, 4096):
125+ f.write("n" * 1024)
126+ f.write('">\n')
129127```
130128
131-- CudaText 1.211.0. Opens file: 1 sec. Caret moves at the end of line: very fast (\<0.1 sec). Editing of this line: adding each char is about 0.1-0.2 sec.
129+ * CudaText 1.211.0. Opens file: 1 sec. Caret moves at the end of line: very fast (<0.1 sec). Editing of this line: adding each char is about 0.1-0.2 sec.
132130
133-- Sublime Text 4 4169. Opens file: 1 sec. Caret moves at the end of line: very fast (0.1-0.2 sec). Editing of this line: adding each char is about 0.1-0.2 sec.
131+ * Sublime Text 4 4169. Opens file: 1 sec. Caret moves at the end of line: very fast (0.1-0.2 sec). Editing of this line: adding each char is about 0.1-0.2 sec.
134132
135-- Geany 1.36. Opens file: 7 sec, then to go to end (Ctrl+End hotkey) it took 4 sec. Caret moves at line begin: fast, caret moves at line end: fast (delay about 0.3 sec after each Left/Right key). Moving up/down between 1st huge line and 2nd empty line: 3-4 sec. Editing at the end: adding each char is about 6 sec.
133+ * Geany 1.36. Opens file: 7 sec, then to go to end (Ctrl+End hotkey) it took 4 sec. Caret moves at line begin: fast, caret moves at line end: fast (delay about 0.3 sec after each Left/Right key). Moving up/down between 1st huge line and 2nd empty line: 3-4 sec. Editing at the end: adding each char is about 6 sec.
136134
137-- Kate 23.08.4. Gives colored panel "The file ... was opened and contained lines longer than ... Those lines were wrapped and the document is set to read-only mode ...". Caret moves at the end of wrapped line: fast. But editing is disabled.
135+ * Kate 23.08.4. Gives colored panel "The file ... was opened and contained lines longer than ... Those lines were wrapped and the document is set to read-only mode ...". Caret moves at the end of wrapped line: fast. But editing is disabled.
138136
139-- Vim 8.1. Opens file: 1 sec. In word-wrapped mode and with partially colored line. Caret moves at the end of line: each Left/Right command (Vim hotkeys) is 2 sec delay. Editing of this line: adding each char is about 3 sec.
137+ * Vim 8.1. Opens file: 1 sec. In word-wrapped mode and with partially colored line. Caret moves at the end of line: each Left/Right command (Vim hotkeys) is 2 sec delay. Editing of this line: adding each char is about 3 sec.
140138
141-- Emacs 29.2 GUI. Opens file: 3 sec. Caret moves at the end of line: very fast. Editing of this line: adding each char is instant.
139+ * Emacs 29.2 GUI. Opens file: 3 sec. Caret moves at the end of line: very fast. Editing of this line: adding each char is instant.
142140
143-- gedit 3.36.2. Hanged on opening file (from command line and from GUI), waited it for 20 sec.
141+ * gedit 3.36.2. Hanged on opening file (from command line and from GUI), waited it for 20 sec.
144142
145-- Bluefish 2.2.11. On opening file, gives the warning about too long lines, on choosing "don't split lines" it hanged, waited for 30 sec.
143+ * Bluefish 2.2.11. On opening file, gives the warning about too long lines, on choosing "don't split lines" it hanged, waited for 30 sec.
146144
147145## Performance of mass replace in huge lines
148146
149-Compared a few editors in the task of replacing 25K single-char matches by two-chars-string in a 1.5MB file with a line with 800K chars. Running on Linux x64, CPU: Ryzen 5 1600, RAM: 32GB. Results:
147+Compared a few editors in the task of replacing 25K single-char matches by two-chars-string in a 1.5MB file with a line with 800K chars. Running on Linux x64, CPU: Ryzen 5 1600, RAM: 32GB. Results:
150148
151-- SciTE 5.4.1: after 6 min I could see the replaced text, but editor was still unresponsive (frozen). Awaited 6 more minutes and nothing changed, so I had to kill the window/process.
152-- Kate 23.08.4: complained about line length, took a long time to open the file, very poor performance while it was open... I couldn't even try replacing, it was unusable.
153-- Sublime Text 4 4169: crashed after 4 min processing the replace.
154-- Sublime Text 3.2.2: it took 2 min 30 sec to replace, the best one after CudaText.
155-- Notepad++ 8.6.4 with Wine: froze while replacing. I waited for 6 minutes but was still unable to do anything after that, so I had to quit.
156-- CudaText 1.211.0: did the task in 1 second.
149+ * SciTE 5.4.1: after 6 min I could see the replaced text, but editor was still unresponsive (frozen). Awaited 6 more minutes and nothing changed, so I had to kill the window/process.
150+ * Kate 23.08.4: complained about line length, took a long time to open the file, very poor performance while it was open... I couldn't even try replacing, it was unusable.
151+ * Sublime Text 4 4169: crashed after 4 min processing the replace.
152+ * Sublime Text 3.2.2: it took 2 min 30 sec to replace, the best one after CudaText.
153+ * Notepad++ 8.6.4 with Wine: froze while replacing. I waited for 6 minutes but was still unable to do anything after that, so I had to quit.
154+ * CudaText 1.211.0: did the task in 1 second.
157155
158156## Performance of built-in sorting
159157
160-Test on ~100M text file with short ASCII lines. Test on Ubuntu 19.10 on Intel i3 CPU.
158+Test on ~100M text file with short ASCII lines. Test on Ubuntu 19.10 on Intel i3 CPU.
161159
162-CudaText 1.97:
160+CudaText 1.97:
163161
164-- sort time of Command Palette command "(without undo) sort asc.": 18 sec
165-- sort time of Command Palette command "(without undo) sort asc., ignore case": 19 sec
166-- memory used after file loading: ~1.0 G
167-- peak memory used on sorting: the same (because sorting is inplace, in the same list)
162+ * sort time of Command Palette command "(without undo) sort asc.": 18 sec
163+ * sort time of Command Palette command "(without undo) sort asc., ignore case": 19 sec
164+ * memory used after file loading: ~1.0 G
165+ * peak memory used on sorting: the same (because sorting is inplace, in the same list)
168166
169-Sublime Text 3.2:
167+Sublime Text 3.2:
170168
171-- sort time: 14 sec
172-- sort time with ignoring case: 16 sec
173-- memory used after file loading: ~1.3 G
174-- peak memory used on sorting: ~3.3 G
169+ * sort time: 14 sec
170+ * sort time with ignoring case: 16 sec
171+ * memory used after file loading: ~1.3 G
172+ * peak memory used on sorting: ~3.3 G
175173
176174# CudaText vs Sublime Text, different answers to questions
177175
178176## How to call external programs/compilers?
179177
180-ST3: Use feature of editor called "build systems".
178+ST3: Use feature of editor called "build systems".
181179
182-CudaText: Use plugin "External Tools", which adds "Tools" item to the top menu. Or: use plugin "Runner". Both plugins are described here: [[CudaText plugins]].
180+CudaText: Use plugin "External Tools", which adds "Tools" item to the top menu. Or: use plugin "Runner". Both plugins are described here: [[CudaText plugins]].
183181
184-Alternative answer for CudaText: Use plugin "Runner" which handles build-systems almost compatible with Sublime's build-systems.
182+Alternative answer for CudaText: Use plugin "Runner" which handles build-systems almost compatible with Sublime's build-systems.
185183
186184## How to change settings for one OS only?
187185
188-ST3: You need to use platform-specific config files. E.g. for macOS, platform-specific config is "Preferences (OSX).sublime-settings".
186+ST3: You need to use platform-specific config files. E.g. for macOS, platform-specific config is "Preferences (OSX).sublime-settings".
189187
190-CudaText: You need to use the config user.json, but write there options with OS specific suffixes. E.g. Windows option is "font_name", and macOS option is "font_name__mac". Possible suffixes are listed in default.json: __linux, __mac, __freebsd etc. Only limited count of options support OS suffixes, this is marked in the default config (default.json).
188+CudaText: You need to use the config user.json, but write there options with OS specific suffixes. E.g. Windows option is "font_name", and macOS option is "font_name__mac". Possible suffixes are listed in default.json: __linux, __mac, __freebsd etc. Only limited count of options support OS suffixes, this is marked in the default config (default.json).
191189
192190## How to change settings for one syntax only?
193191
194-ST3: To edit syntax-specific config, call "Preferences / Settings - Syntax Specific".
192+ST3: To edit syntax-specific config, call "Preferences / Settings - Syntax Specific".
195193
196-CudaText: To edit lexer-specific config, see [[CudaText|CudaText#Configs]].
194+CudaText: To edit lexer-specific config, see [[CudaText|CudaText#Configs]].
197195
198196## How to add commands to top/context menu?
199197
200198ST3: You need to create *.sublime-menu files: <https://www.sublimetext.com/docs/3/menus.html#available_menus>
201199
202-CudaText: You need to install plugin "Configure Menu". In its dialog, create "menu.json" file which has default items of top menu and context menu. Then edit that file.
200+CudaText: You need to install plugin "Configure Menu". In its dialog, create "menu.json" file which has default items of top menu and context menu. Then edit that file.
203201
204202## How to find/replace text in many files?
205203
206-ST3: Use built-in command "Find in files".
204+ST3: Use built-in command "Find in files".
207205
208-CudaText: Use plugin FindInFiles. It has 2 major versions: v3 is frozen, and new v4 is evolving.
206+CudaText: Use plugin FindInFiles. It has 2 major versions: v3 is frozen, and new v4 is evolving.
209207
210208## How to find file in a project?
211209
212-ST3: Use "Goto Anything" (Ctrl+P on Windows/Linux, Command+P on macOS).
210+ST3: Use "Goto Anything" (Ctrl+P on Windows/Linux, Command+P on macOS).
213211
214-CudaText:
212+CudaText:
215213
216-- To find file by name, use command "Plugins / Project Manager / Go to file...". After file is focused in project, press Enter to open it.
217-- To find file by contents, use plugin FindInFiles (v3) which allows to search in project files. Quote from its help:
214+ * To find file by name, use command "Plugins / Project Manager / Go to file...". After file is focused in project, press Enter to open it.
215+ * To find file by contents, use plugin FindInFiles (v3) which allows to search in project files. Quote from its help:
218216
219- Set special value "<Project Folders>" (in short <p>) for field "In folder" to search in project files.
217+```
218+Set special value "<Project Folders>" (in short <p>) for field "In folder" to search in project files.
219+```
220220
221221## How to show vertical lines on some columns?
222222
223-ST3: Use option
224-
225-```text
223+ST3: Use option
224+```
226225"rulers": [40, 80, 120],
227226```
228227
229-CudaText: Use option
230-
231-```text
228+CudaText: Use option
229+```
232230"margin_string": "40 80 120",
233231```
234232
235233## How to highlight pair brackets?
236234
237-ST3: Brackets highlight is built-in feature, turned on by default.
235+ST3: Brackets highlight is built-in feature, turned on by default.
238236
239-CudaText: Brackets highlight is built-in, but it's off by default. Use several "bracket_" options, see comments in the "Options Editor" plugin.
237+CudaText: Brackets highlight is built-in, but it's off by default. Use several "bracket_" options, see comments in the "Options Editor" plugin.
240238
241239## How to highlight pair HTML tags?
242240
243241ST3: Use plugin, e.g. <https://packagecontrol.io/packages/BracketHighlighter>
244242
245-CudaText: Use options for "dynamic highlighting", "lexer_dynamic_" in "Options Editor" plugin.
243+CudaText: Use options for "dynamic highlighting", "lexer_dynamic_" in "Options Editor" plugin.
246244
247245## How to add custom syntax support?
248246
249247ST3: You need to create syntax file, <https://www.sublimetext.com/docs/3/syntax.html>
250248
251-CudaText: You need to create lexer, see [[CudaText|CudaText#Lexers]].
249+CudaText: You need to create lexer, see [[CudaText|CudaText#Lexers]].
252250
253251## How to customize hotkeys?
254252
255-ST3: You need to edit keybinding files like "Default (Windows).sublime-keymap".
253+ST3: You need to edit keybinding files like "Default (Windows).sublime-keymap".
256254
257-CudaText: In the Command Palette dialog, focus needed command item, press F9 - additional dialog will appear to set the hotkey. Method 2: install plugin "Configure Hotkeys" which gives alternative dialog.
255+CudaText: In the Command Palette dialog, focus needed command item, press F9 - additional dialog will appear to set the hotkey. Method 2: install plugin "Configure Hotkeys" which gives alternative dialog.
258256
259257## How to use Emmet?
260258
261-ST3: Install plugin "Emmet". Emmet here is written in JavaScript.
259+ST3: Install plugin "Emmet". Emmet here is written in JavaScript.
262260
263-CudaText: Use pre-installed plugin "Emmet". Emmet here is written in Pascal with minor differences (e.g. "lorem" works differently).
261+CudaText: Use pre-installed plugin "Emmet". Emmet here is written in Pascal with minor differences (e.g. "lorem" works differently).
264262
265263## How to show 2/3/4 files at once?
266264
267-ST3: Use "View / Layout" menu.
265+ST3: Use "View / Layout" menu.
268266
269-CudaText: Use "=" item in the top menu.
267+CudaText: Use "=" item in the top menu.
270268
271269## How to split window for single file?
272270
273-ST3:
271+ST3:
274272
275-- menu "File / New View into File"
276-- menu "View / Layout / Columns: 2 (or Rows: 2)"
277-- drag the tab into another group
273+ * menu "File / New View into File"
274+ * menu "View / Layout / Columns: 2 (or Rows: 2)"
275+ * drag the tab into another group
278276
279-CudaText: menu "View / Split tab / Toggle split".
277+CudaText: menu "Split / Split tab vertically".
280278
281279## How to detect syntax by first line of file?
282280
283281ST3: It's configured in syntax file: <https://superuser.com/questions/752025/sublime-text-3-detect-syntax-based-on-file-header>
284282
285-CudaText: Use config described in [[CudaText|CudaText#Detection_by_first_file_line]].
283+CudaText: Use config described in [[CudaText|CudaText#Detection_by_first_file_line]].
286284
287285## How to assign syntax to undetected file extension?
288286
289-ST3: Open your file, click statusbar item for syntax, use item "Open all with current extension as...".
287+ST3: Open your file, click statusbar item for syntax, use item "Open all with current extension as...".
290288
291-CudaText: Use "file types config", see [[CudaText|CudaText#File_types_config]].
289+CudaText: Use "file types config", see [[CudaText|CudaText#File_types_config]].
292290
293291## How to select several occurrences of a word?
294292
295-ST3: Use command "Selection / Expand selection to word".
293+ST3: Use command "Selection / Expand selection to word".
296294
297-CudaText: Use command "Selection / Add next occurrence of selected word".
295+CudaText: Use command "Selection / Add next occurrence of selected word".
298296
299-There is a difference in CudaText implementation: CudaText command first checks, is first selection 'whole word' or not. If it's whole word, command adds selections which must be also whole words. In ST, command does not check 'whole word' state of next selections. You may switch to ST behaviour. How? CudaText "Command Palette" gives two commands:
297+There is a difference in CudaText implementation: CudaText command first checks, is first selection 'whole word' or not. If it's whole word, command adds selections which must be also whole words. In ST, command does not check 'whole word' state of next selections. You may switch to ST behaviour. How? CudaText "Command Palette" gives two commands:
300298
301-- A: add next occurrence of selected word
302-- B: add next occurrence of selected text (not whole-word)
299+ * A: add next occurrence of selected word
300+ * B: add next occurrence of selected text (not whole-word)
303301
304-You can reassign hotkey from the command A to the command B, so hotkey will give the behaviour of Sublime Text.
302+You can reassign hotkey from the command A to the command B, so hotkey will give the behaviour of Sublime Text.
305303
306304## How to select all occurrences of a word?
307305
308-ST3: In the Find dialog, enter a word, check "whole words", press "Find All".
306+ST3: In the Find dialog, enter a word, check "whole words", press "Find All".
309307
310-CudaText:
308+CudaText:
311309
312-- In the Find dialog, enter a word, check "whole words", press "Select all".
313-- Plugin "Highlights Occurrences" gives command "Select all occurrences".
310+ * In the Find dialog, enter a word, check "whole words", press "Select all".
311+ * Plugin "Highlights Occurrences" gives command "Select all occurrences".
314312
315313## How to record macros?
316314
317-ST3: Use menu items in the "Tools" menu.
315+ST3: Use menu items in the "Tools" menu.
318316
319-CudaText: Install plugin "Macros", which adds item "Macros" to the top menu.
317+CudaText: Install plugin "Macros", which adds item "Macros" to the top menu.
320318
321319## How to use "Go to symbol"?
322320
323-ST3: Use menu item "Go to symbol".
321+ST3: Use menu item "Go to symbol".
324322
325-CudaText: It doesn't have "Go to anything" but it has "Go to symbol" for a lexer, if lexer finds such symbols for Code-Tree. Install plugin "CudaExt", which gives menu "Plugins / Cuda-Ext / Code-Tree" with several menu items. One item is "Symbols list" which shows Code-Tree items in the menu dialog.
323+CudaText: It doesn't have "Go to anything" but it has "Go to symbol" for a lexer, if lexer finds such symbols for Code-Tree. Install plugin "CudaExt", which gives menu "Plugins / Cuda-Ext / Code-Tree" with several menu items. One item is "Symbols list" which shows Code-Tree items in the menu dialog.
326324
327325## How to switch between C++ header/implementation files?
328326
329-ST3: Use command "Switch header/implementation".
327+ST3: Use command "Switch header/implementation".
330328
331-CudaText: Use plugin "Switch Header" (it's not only for C++, it's configurable for all lexers).
329+CudaText: Use plugin "Switch Header" (it's not only for C++, it's configurable for all lexers).
332330
333331## How to jump to next/previous modified lines?
334332
335-ST3: Use commands "Next modification", "Previous modification".
333+ST3: Use commands "Next modification", "Previous modification".
336334
337-CudaText: Use plugin "CudaExt" which gives commands:
335+CudaText: Use plugin "CudaExt" which gives commands:
338336
339-- "Jump: to next/previous changed lines",
340-- "Jump: to next/previous working lines",
341-- "Jump: to next/previous saved lines".
337+ * "Jump: to next/previous changed lines",
338+ * "Jump: to next/previous working lines",
339+ * "Jump: to next/previous saved lines".
342340
343-See [[CudaText|CudaText#Line_states]].
341+See [[CudaText|CudaText#Line_states]].
344342
345343## How to detect indentation characters in a file?
346344
347-ST3: Menu item "View / Indentation / Guess settings from buffer".
345+ST3: Menu item "View / Indentation / Guess settings from buffer".
348346
349-CudaText: Plugin "Detect Indent" which does the same.
347+CudaText: Plugin "Detect Indent" which does the same.
350348
351349## How to change indentation characters in a file?
352350
353-ST3: Click statusbar cell "Tab size..."/"Spaces...", it has menu items "Convert indentation to spaces", "Convert indentation to tabs".
351+ST3: Click statusbar cell "Tab size..."/"Spaces...", it has menu items "Convert indentation to spaces", "Convert indentation to tabs".
354352
355-CudaText: The same as for ST3.
353+CudaText: The same as for ST3.
356354
357355## How to install plugins without package manager?
358356
359-ST3: Open terminal, go to Packages folder, run "git clone" in that folder, or copy plugin there.
357+ST3: Open terminal, go to Packages folder, run "git clone" in that folder, or copy plugin there.
360358
361-CudaText: Open terminal, go to "py" subfolder, run "git clone" in that folder, or copy "cuda_" plugin folder there.
359+CudaText: Open terminal, go to "py" subfolder, run "git clone" in that folder, or copy "cuda_" plugin folder there.
362360
363361## How to make vertical/column selection?
364362
365-ST3: See the official documentation page "Column Selection".
363+ST3: See the official documentation page "Column Selection".
366364
367-CudaText:
365+CudaText:
368366
369-- Mouse shortcuts: [[CudaText|CudaText#Mouse shortcuts]].
370-- Keyboard commands: "column select: up / down / left / right / ....".
371-- Click the statusbar cell "-", it will toggle to "\|\|", and usual mouse selection will perform column selection.
367+ * Mouse shortcuts: [[CudaText|CudaText#Mouse shortcuts]].
368+ * Keyboard commands: "column select: up / down / left / right / ....".
369+ * Click the statusbar cell "-", it will toggle to "||", and usual mouse selection will perform column selection.
372370
373371## How to swap line up/down
374372
375-ST3: Commands "Edit / Line / Swap Line Up/Down".
373+ST3: Commands "Edit / Line / Swap Line Up/Down".
376374
377-CudaText: Commands "Edit / Line operations / Move line(s) up/down".
375+CudaText: Commands "Edit / Line operations / Move line(s) up/down".
378376
379377## How to show menu of tabs, project files, symbols
380378
381-ST3: "Goto anything" (Ctrl+P) for all stuff.
379+ST3: "Goto anything" (Ctrl+P) for all stuff.
382380
383-CudaText:
381+CudaText:
384382
385-- List of opened tabs: command "ui: switch tab, dialog".
386-- List of files in the current project: "plugin: Project Manager: Go to file".
387-- List of "symbols" in the current document: "plugin: Cuda-Ext: Code-Tree: Symbols list" (shows the same symbols as code-tree can show).
383+ * List of opened tabs: command "ui: switch tab, dialog".
384+ * List of files in the current project: "plugin: Project Manager: Go to file".
385+ * List of "symbols" in the current document: "plugin: Cuda-Ext: Code-Tree: Symbols list" (shows the same symbols as code-tree can show).
388386
389387## How to use 'atomic saving'
390388
391-'Atomic' file saving is saving to a temporary file, then renaming that file to the destination. 'Atomic' saving is not implemented in CudaText, because users of Sublime Text 3 consider it as harmful feature.
389+'Atomic' file saving is saving to a temporary file, then renaming that file to the destination. 'Atomic' saving is not implemented in CudaText, because users of Sublime Text 3 consider it as harmful feature.
392390
393-- It drops extended file attributes (on NTFS on Windows; Unix-like have similar problem too?)
394-- It drops NTFS file streams, on Windows
395-- Problems with files located on Network drives, on Windows
396-- Problems with symlinks
397-- It needs additional options like "on which drives to use atomic saving"
391+ * It drops extended file attributes (on NTFS on Windows; Unix-like have similar problem too?)
392+ * It drops NTFS file streams, on Windows
393+ * Problems with files located on Network drives, on Windows
394+ * Problems with symlinks
395+ * It needs additional options like "on which drives to use atomic saving"
398396
397+## How to join lines
398+
399+Sublime Text: "Join lines" in a built-in command.
400+
401+CudaText: "Join lines" is a command from plugin CudaExt, so install CudaExt from "Addons Manager" first. Then you will find "Join lines" in the Command Palette easily.
402+
399403# CudaText vs Notepad++
400404
401-(From user **dinkumoil**, quote from the Notepad++ forum.)
405+(From user **dinkumoil** , quote from the Notepad++ forum.)
402406
403-But since this thread has the potential to be a useful information and I’m a user of CudaText as well, I respond to it (I also contributed to the CudaText source code, wrote a plugin similar to my AutoCodepage and AutoEolFormat plugins for Notepad++, helped to improve the SQL and VBScript lexers and currently maintain the German translation file).
407+But since this thread has the potential to be a useful information and I’m a user of CudaText as well, I respond to it (I also contributed to the CudaText source code, wrote a plugin similar to my AutoCodepage and AutoEolFormat plugins for Notepad++, helped to improve the SQL and VBScript lexers and currently maintain the German translation file).
404408
405-Indeed, CudaText is a powerful text editor and its author is an experienced dev in writing text editors and software components needed for that as he is also the author of the discontinued SynWrite editor. Since the above feature list is only a usual catalog for text editors, I want to go a little bit into the details.
409+Indeed, CudaText is a powerful text editor and its author is an experienced dev in writing text editors and software components needed for that as he is also the author of the discontinued SynWrite editor. Since the above feature list is only a usual catalog for text editors, I want to go a little bit into the details.
406410
407411**Advantages**
408412
409-- Quick evolving project.
410-- Quick responding and very active developer.
411-- Constant, nearly daily work at the project (have a look at the commit tracker).
412-- No political activities.
413-- Extensive and always up-to-date wiki and API documentation .
414-- The UI follows Windows settings for font size in menus and dialog boxes, important when using high-DPI monitors.
415-- The whole UI is themeable, not just the edit window.
416-- Up to 6 edit windows, each with an unlimited number of tabs. Even a single tab can be splitted in two areas.
417-- A plugin allows to fully customize the whole main menu.
418-- Very well working Code Tree (in Notepad++ called Function List) that supports automatically all languages which are supported by lexers.
419-- Monitoring of opened files for changes from other programs seems to work more reliable than in Notepad++.
420-- Separate lexer creation tool with sophisticated abilities. It supports using regular expressions.
421-- Plugins can be written in Python (but this has to be paid with lower execution speed for sophisticated tasks).
422-- Only for the records, no advantage over Notepad++: Lots of useful plugins available, one of them is a plugin manager. It allows installing, updating and removing of plugins.
413+ * Quick evolving project.
414+ * Quick responding and very active developer.
415+ * Constant, nearly daily work at the project (have a look at the commit tracker).
416+ * No political activities.
417+ * Extensive and always up-to-date wiki and API documentation .
418+ * The UI follows Windows settings for font size in menus and dialog boxes, important when using high-DPI monitors.
419+ * The whole UI is themeable, not just the edit window.
420+ * Up to 6 edit windows, each with an unlimited number of tabs. Even a single tab can be splitted in two areas.
421+ * A plugin allows to fully customize the whole main menu.
422+ * Very well working Code Tree (in Notepad++ called Function List) that supports automatically all languages which are supported by lexers.
423+ * Monitoring of opened files for changes from other programs seems to work more reliable than in Notepad++.
424+ * Separate lexer creation tool with sophisticated abilities. It supports using regular expressions.
425+ * Plugins can be written in Python (but this has to be paid with lower execution speed for sophisticated tasks).
426+ * Only for the records, no advantage over Notepad++: Lots of useful plugins available, one of them is a plugin manager. It allows installing, updating and removing of plugins.
423427
424428**Disadvantages**
425429
426-- In some details slightly slower working speed than Notepad++.
427-- Configuring the toolbar is a little bit tricky. It requires a plugin and needs intensive work.
428-- Translations for the UI into other languages are available but a lot of them are outdated.
429-- The Search & Replace feature uses a rather old regular expression engine which lacks some sophisticated features (IMO the biggest drawback). *Edited by Alexey: RegEx engine was much improved since the time of this complain.*
430-- There is no built-in preferences dialog. Instead you have to edit a JSON file (but that’s far better than writing CSS code like in Atom). There is a plugin available that tries to work like a preferences dialog but it’s only a tableized, textual view of all settings and a primitive UI to change them.
431-- Under Windows, a plugin installs an Explorer context menu. But since its only backed by a shell\CudaText\command registry entry and not with a real shell handler like Notepad++'s context menu entry, it is not possible to open more than 15 files at once using the CudaText Explorer context menu entry. That’s a common limitation for all non-shell-handler context menu entries (tested under Windows 7 x64). *Edited by Alexey: this is not actual anymore, since we have dedicated Explorer shell extension DLL.*
432-- Releases of CudaText are published only as ZIP files without an installer. So, updating means all plugins, custom icons, additional lexers, autocompletion files, language files, theme and lexer customizations and so forth have to be migrated to the directory of the new version. You need a file and directory based diff tool for that.
433-- Only a small community, the forum mostly is a lonely place. Like the developer a lot of the people commenting in the GitHub issue tracker are russian, thus they tend to write in cyrillic. But this is clearly an advantage for people from Russia which have to take the burden to write and read in English, written in latin letters here in the Notepad++ forum and in the GitHub repo.
434-- Somewhat chaotic project structure. Source code on GitHub, binary releases on SourceForge, forum on a SourceForge-hosted home page, lots of relations to the discontinued SynWrite editor (e.g. lexers are hosted in a separate SourceForge project called SynWrite add-ons, the lexer creation tool is an excerpt of that particular part of SynWrite).
430+ * In some details slightly slower working speed than Notepad++.
431+ * Configuring the toolbar is a little bit tricky. It requires a plugin and needs intensive work.
432+ * Translations for the UI into other languages are available but a lot of them are outdated.
433+ * The Search & Replace feature uses a rather old regular expression engine which lacks some sophisticated features (IMO the biggest drawback). _Edited by Alexey: RegEx engine was much improved since the time of this complain._
434+ * There is no built-in preferences dialog. Instead you have to edit a JSON file (but that’s far better than writing CSS code like in Atom). There is a plugin available that tries to work like a preferences dialog but it’s only a tableized, textual view of all settings and a primitive UI to change them.
435+ * Under Windows, a plugin installs an Explorer context menu. But since its only backed by a shell\CudaText\command registry entry and not with a real shell handler like Notepad++'s context menu entry, it is not possible to open more than 15 files at once using the CudaText Explorer context menu entry. That’s a common limitation for all non-shell-handler context menu entries (tested under Windows 7 x64). _Edited by Alexey: this is not actual anymore, since we have dedicated Explorer shell extension DLL._
436+ * Releases of CudaText are published only as ZIP files without an installer. So, updating means all plugins, custom icons, additional lexers, autocompletion files, language files, theme and lexer customizations and so forth have to be migrated to the directory of the new version. You need a file and directory based diff tool for that.
437+ * Only a small community, the forum mostly is a lonely place. Like the developer a lot of the people commenting in the GitHub issue tracker are russian, thus they tend to write in cyrillic. But this is clearly an advantage for people from Russia which have to take the burden to write and read in English, written in latin letters here in the Notepad++ forum and in the GitHub repo.
438+ * Somewhat chaotic project structure. Source code on GitHub, binary releases on SourceForge, forum on a SourceForge-hosted home page, lots of relations to the discontinued SynWrite editor (e.g. lexers are hosted in a separate SourceForge project called SynWrite add-ons, the lexer creation tool is an excerpt of that particular part of SynWrite).
435439
436440**Conclusion**
437441
438442All in all I would say CudaText is an excellent addition to Notepad++, but I personally will continue to use both editors since both of them have their strengths and weaknesses. And since I think the CudaText project deserves more support, I hereby appeal to participate in this project as well, if possible.
439443
440444---
441-*From the Free Pascal wiki, page "CudaText VS other editors", as it stood on 2024-04-18 after a change by Alextp, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
442-Category: CudaText
443-Category: Tools
445+*From the Free Pascal wiki, page "CudaText VS other editors", as the Internet Archive kept it on 2026-05-06, last changed on 2025-09-30. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history