I've heard that one way to use it effectively is writing a detailed comment about what you want to do, then let it suggest the code. I personally don't like those style of comments, so I'd have to:
- enable copilot if I have it disabled (I have a keymap for this in vim)
- write the comment
- carefully review that the suggestion is correct and complete
- accept the suggestion, then go back up to delete the comment
kinda inconvenient, but if I was blanking on a bunch of stdlib functions maybe it would help? But accepting the copilot suggestions doesn't add imports, whereas accepting language server suggestions often does (e.g. with gopls).