RFE: Better integration with X selections
Right now, one of the awkward bits about using sam as an editor in the broader X ecosystem is that it's kind of painful to move text between sam and other X programs. X has a selection system, and sam has a selection system, and you have to <exch> between the two. I think that there are good reasons to keep the two at least somewhat separate, but I also think that it could be easier. My current set of ideas:
- Add a 'paste from X' operation along side the regular paste, both as a menu item and as, say, shift + chord-23. This would make it much easier to get text in to sam from eg xterm.
- make sam assert the X selection any time that you cut or snarf something. sam should not discard its own internal buffer if it loses the X selection, but I think it's perfectly sensible to assert the selection when you snarf.
These two changes combined would mostly remove the need to use <exch>, while still keeping the separation between sam's own buffer and the X selection that insures you don't accidentally lose cut or snarf'd data that exists only in sam's buffer.
@siebenmann Behold in horror at xsel ( https://github.com/kfish/xsel ) to understand why
That being said, sam already maintains a command stream and buffer so it should be possible to avoid the multiple entry points by targeting the command language itself.
Just to provide an example:
bind C c command send > xclip -i -selection c
bind C v command send < xclip -o -selection c