Given those options, you may want to try vim :) It’s a bit different in how you interact with it (pressing stuff on the keyboard instead of clicking stuff in menus, plus it’s more of an imperative vs declarative approach, i.e. you tell vim how to do stuff instead of what you need to be done; the good part is being independent of what sb thought you may need to do, the bad – having to learn editing primitives and stuff), but it can certainly do stuff you’ve mentioned, sometimes with some help from external programs:
dupcicate current line - yyp [(yy)ank_curren and (p)aste];
join lines depends on how you want to join them, in the simplest case it’s J or gJ to join current line with the one below with or without space as a separator respectively. You can also combine it with :g or :v and norm or macros to make this edit on lines matching (g) or not (v) a specific regex (e.g. :g/join me/norm J will join all lines containing “join me” with that below). Splitting also depends;
reverse, randomize and sorting can be done via calling external stuff: v10j:.!tac will reverse 11 lines, including the one with the cursor, via calling (!) tac on the selection (v) of the current line and 10 below (10j) and pasting its output in the file you’re editing (.) (it’ll replace stuff you’ve selected). Replace tac with shuf or sort for the other options mentioned. Removing duplicates without sorting - https://stackoverflow.com/questions/11532157/remove-duplicate-lines-without-sorting#11532197
Bonus: neovim integrates with vscode quite well, and on itself it handles reasonably huge files without an issue.
Given those options, you may want to try vim :) It’s a bit different in how you interact with it (pressing stuff on the keyboard instead of clicking stuff in menus, plus it’s more of an imperative vs declarative approach, i.e. you tell vim how to do stuff instead of what you need to be done; the good part is being independent of what sb thought you may need to do, the bad – having to learn editing primitives and stuff), but it can certainly do stuff you’ve mentioned, sometimes with some help from external programs:
yyp
[(yy)ank_curren and (p)aste];J
orgJ
to join current line with the one below with or without space as a separator respectively. You can also combine it with:g
or:v
andnorm
or macros to make this edit on lines matching (g
) or not (v
) a specific regex (e.g.:g/join me/norm J
will join all lines containing “join me” with that below). Splitting also depends;v10j:.!tac
will reverse 11 lines, including the one with the cursor, via calling (!
)tac
on the selection (v
) of the current line and 10 below (10j
) and pasting its output in the file you’re editing (.
) (it’ll replace stuff you’ve selected). Replacetac
withshuf
orsort
for the other options mentioned. Removing duplicates without sorting - https://stackoverflow.com/questions/11532157/remove-duplicate-lines-without-sorting#11532197Bonus: neovim integrates with vscode quite well, and on itself it handles reasonably huge files without an issue.