Hacker News new | past | comments | ask | show | jobs | submit login
Yet another tool for making copy/paste/run experience better (Windows) (github.com/postprintum)
71 points by noseratio on Aug 7, 2020 | hide | past | favorite | 24 comments



To the author: This is a really nifty tool. It's also great that it provides the ability to configure custom keyboard shortcuts. I will be trying this soon.

> Does the following sound familiar: you paste some text from a web page into a Terminal command line, and it gets executed immediately, before you even had a chance to edit it? Only because there was a CR/LF character at the end of the clipboard text.

Oh yes, that sounds very familiar! As the description says, I use another buffer (it says notepad.exe) to re-copy the line without the newline and then paste. __________

Aside: Is there a similar tool for macOS?

__________

The screenshot also shows a "Prevent Sleep Mode" option. I currently use an app called Caffeine [1] to keep my machine awake (and not automatically lock). I guess DevComrade could replace that too.

[1]: https://zhornsoftware.co.uk/caffeine/


> Aside: Is there a similar tool for macOS?

I don't know the state of Windows terminal emulators, but it seems strange to describe the problem without mentioning the term for the solution, which is 'bracketed paste'. This article discusses how bracketed-paste mode is signalled using ANSI escape sequences, which I guess can work in most macOS terminal emulators (although it's up to the shell to respond): https://cirw.in/blog/bracketed-paste . (I guess that Win+Ins is doing something similar on Windows?)


Thanks for this. I’ll check out bracketed pasting mode in terminal next time (not near one right now), though I have to admit that even after reading that post, I didn’t understand what exactly happens when it’s used. I understood that the command does not get executed, but what happens in the shell (I looked this up on Wikipedia too)? Does it just display the line and allow the user to edit it so that the starting and ending escape sequences can be removed along with any other edits and then the command executed?


> I understood that the command does not get executed, but what happens in the shell (I looked this up on Wikipedia too)? Does it just display the line and allow the user to edit it so that the starting and ending escape sequences can be removed along with any other edits and then the command executed?

My understanding is that it's up to the shell, or whatever program, to decide how to handle it. (I didn't make this clear in my original post, and have updated it accordingly.) All bracketed paste is doing is providing a mode that tells the program "everything between these two symbols should be interpreted as input, not as commands"; it's then up to the program to decide how it wants to respond to the user's intention.

At least for me, with Terminal.app and bash 5.0 (where it's not enabled by default), it behaves es you describe when enabled by `set enable-bracketed-paste on` in `.inputrc`. For vim, I believe the plugin is essentially doing the equivalent of `set paste` before and `set nopaste` after.


> I guess that Win+Ins is doing something similar on Windows?

By default Win+Ins does nothing on Windows. I had to implemented this feature in DevComrade. I wish it was all part of Windows so I didn't have to maintain it :) Happy if they take the source, it's an Apache 2.0 license.


Thanks! Prevent Sleep Mode is on my TODO list, same as publishing to Windows Store. I'm not sure if there's a similar tool for MacOS. If there isn't, that'd be a bit of a learning curve for me to implement it :)


I ctrl-L / cmd-L to the URL bar in the browser and do the re-copy from there.


I did something similar for years, but using the Windows 'run' dialog instead, so I'd select the text, CTRL-C, WIN-R, CTRL-V, CTRL-A, CTRL-X, and then paste in the now unformatted text where I wanted it. Sounds convoluted, but after doing it a few times, muscle memory made it really fast, 2s or so.

I discovered PureText a good while back (mentioned by the author), which instead let's me bind WIN-V to paste the current clipboard as unformatted text. Unfortunately the functionality has been a bit unreliable because of Windows updates, so I'll be giving this a try.


I used to hit Alt+D or Win+R for that. But now I can do Win+Ins and it pastes a single unformatted line without line breaks anywhere. Works very well for me in the command line, especially when remoting with SSH.


Also, DevComarade already has a shortcut for Presentation Mode, which just launches Presentationsettings.exe, but that should too keep you PC awake and without locking the screen, if that's what your want.


Aside: Is there a similar tool for macOS?

If you use iTerm on macOS, a disclosure sheet will ask if you really want the whole thing with the CR, or if you just want the regular text.


> Aside: Is there a similar tool for macOS?

For small strings, you can paste in Spotlight Search and re-copy to strip formatting.


Not sure if it works everywhere, but I normally do Cmd + Shift + V


On MacOS, you can use Flycut (https://github.com/TermiT/Flycut) to manage your clipboard. Just assign it to cmd + shift + v and it will allow you to cycle through your buffers.

This is nice when you need multiple items from the same source (say login/password from password manager), instead of doing "copy ; switch ; paste ; switch ; copy ; paste" you can now do "copy ; copy ; switch ; paste ; paste". It's a phenomenal time saver and it will take care of the additional LF at the end, as well!


When I copy a command to paste in the terminal I always start the selection from the end and move left to the start. That way I won't accidentally copy a newline.


DevComrade is different from many similar utilities (e.g., from Puretext) in how it uses Win32 simulated input API to feed the text into the currently active window, as though it was typed by a person. For example, it works well with Google's Secure Shell App for Chrome.


Please edit the title of this submission with a "Show HN: " prefix.


AFAIK you can't edit the title of posts, only mods can.


My bad, but I can't find how to edit it. Long-time lurker with only a few submissions.


How does this compare to Ditto?

https://ditto-cp.sourceforge.io


That's a good question. I've been a long-time user of PureText, but somehow I've only become aware of Ditto's existence last week, when DevComrade was already in the works :)

I've got a quick look and Ditto seem to be capable of doing much more than I personally need, like maintaining the clipboard history (I use Windows' Win+V for that), sharing clipboard over the network and using its own scripting language ChaiScript. OTOH, I'd like to keep the useful functionality of DevComrade at the very bare minimum.

I'm also not sure yet about how exactly they do pasting, i.e., if they use Win32 SendInput. That may affects how well Ditto works with terminals and shells. Conveniently, they provide the source code (looks like it is a C++/MFC project), so at some point I'll come up with a better comparison and update the Readme in my repro.


Open URL from clipboard and Insert Guid seem pretty handy.


Thanks! I've added "Insert Guid" merely as an example of how to bind a custom C# script to a menu item or hotkey:

<hotkey name="InsertGuid" menuItem="Insert &amp;Guid" isScript="true"> <!-- this is an example of a C# scriptlet handler --> <![CDATA[ await Host.FeedTextAsync(Guid.NewGuid().ToString("B").ToUpper(), Token); ]]> </hotkey>


just what i need. thank you.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: