https://github.com/colinta/SublimeFileDiffs
Show diffs between the current file, or selection(s) in the current file, and clipboard, another file, or unsaved changes.
https://github.com/colinta/SublimeFileDiffs
Last synced: 2 months ago
JSON representation
Show diffs between the current file, or selection(s) in the current file, and clipboard, another file, or unsaved changes.
- Host: GitHub
- URL: https://github.com/colinta/SublimeFileDiffs
- Owner: colinta
- License: other
- Created: 2012-01-03T20:28:58.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2025-04-13T14:53:09.000Z (3 months ago)
- Last Synced: 2025-04-13T15:38:35.239Z (3 months ago)
- Language: Python
- Homepage:
- Size: 407 KB
- Stars: 509
- Watchers: 22
- Forks: 86
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
FileDiffs Plugin
================Shows diffs between the current file, or selection(s) in the current file, and clipboard, another file, or unsaved changes. Can be configured to show diffs in an external diff tool
### Preview



--------------
Help!
-----Check the [wiki][] for more tips
[wiki]: https://github.com/colinta/SublimeFileDiffs/wiki
Installation
------------Using Package Control, install `FileDiffs` or clone this repo in your packages folder.
I recommended you add key bindings for the commands. I've included my preferred bindings below.
Copy them to your key bindings file (⌘⇧,).Add External Diff Tool *(optional)*
--------(IMPORTANT: You might need to make a symlink (e.g. in /usr/local/bin) pointing to the command line tool of your external diff tool)
1. Preferences > Package Settings > FileDiffs > Settings - Default
2. Uncomment one of the examples or write your own command to open external diff tool.
This command *may* need to be a full path (e.g. `/usr/local/bin/ksdiff`), if the command isn't in your `PATH`.
It supports:
- A generic setting `FileDiffs.sublime-settings` which could be overloaded for each parameter in a platform specific configuration `FileDiffs ($platform).sublime-settings` in the `Settings - User`
- Environment variable expansions for `cmd` parameter in the settingsCommands
--------`file_diff_menu`: Shows a menu to select one of the file_diff commands. If you use the bindings in Example.sublime-keymap, this is bound to `ctrl+shift+d`.
The rest of the commands do not need to be bound (accessible from the menu):
`file_diff_clipboard`: Shows the diff of the current file or selection(s) and the clipboard (the clipboard is considered the "new" file unless `reverse` is True)
`file_diff_selections`: Shows the diff of the first and second selected regions. The file_diff_menu command checks for exactly two regions selected, otherwise it doesn't display this command.
`file_diff_saved`: Shows the diff of the current file or selection(s) and the saved file.
`file_diff_file`: Shows the diff of the current file or selection(s) and a file that is in the current project.
`file_diff_tab`: Shows the diff of the current file or selection(s) and an open file (aka a file that has a tab).
`file_diff_previous`: Shows the diff of the current file or selection(s) and the previous activated file. If a file is not saved yet, dirty buffer is used instead of reading from disk.
If FileDiffs has to use temporary files, they are created in your `Data/Packages` folder (rather than system temp folder) due to privacy concerns for portable Sublime Text installations. Temporary files are automatically removed after 15 seconds.
Key Bindings
------------Copy these to your user key bindings file.
{ "keys": ["ctrl+shift+d"], "command": "file_diff_menu" },
{ "keys": ["ctrl+shift+e"], "command": "file_diff_menu", "args": {"cmd": ["opendiff", "$file1", "$file2"] } },Contributors
------------Thanks to:
- **Sebastian Pape** for adding support for using an external diff tool
- **Starli0n** for merging the ST2 and ST3 branches into one branch,
- and for adding the "Diff file with previous" feature
- **dnsmkl** for helping with diffing temporary files