spacemod
Install v0.1.1
Published on Jun 25 2023 at 21:26 UTC
We weren't able to detect your OS.
This project doesn't offer Apple Silicon downloads, but you can run Intel macOS binaries via Rosetta 2.
spacemod
spacemod
is a text search-and-replace tool optimized towards refactoring
code.
# example.py (before) copy_file(to_file=to_file, from_file=from_file) copy_file( to_file=get_file(filepath, mode), from_file=get_file_writer(other_filepath, other_mode) )
# Use spacemod's custom pattern-matching language to deal with whitespace easier. # Without -S, normal regex patterns are assumed. $ spacemod -S \ 'copy_file ( to_file= (.*) , from_file= (.*) )' \ 'copy_file($2, $1)' \ example.py # spacemod will open interactive TUI and ask for approval of diffs. Use # --accept-all to use spacemod non-interactively.
# example.py (after) copy_file(from_file, to_file) copy_file(get_file_writer(other_filepath, other_mode) , get_file(filepath, mode))
It is very similar to fastmod, but with some additional features:
- Undo stack. Approved a diff too soon? Hit
[u]ndo
to revert. - Yes to all diffs like this. Auto-approve future diffs with the exact same content.
- Parenthesis-matching (experimental). Besides regex, spacemod also supports a custom regex-like language that requires less escaping and whitespace-handling.
Installation
Check the website for installation options.
Matching Modes
By default, you use regexes to replace text. See Matching
modes for the alternative modes that spacemod
supports.
Alternatives
There are many tools like spacemod
, some of which may suit your needs better. Take a look at Alternatives.
License
Licensed under MIT
, see ./LICENSE
.