aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src
diff options
context:
space:
mode:
authorMichael Davis2023-07-11 16:15:38 +0000
committerBlaž Hrastnik2023-07-31 06:05:38 +0000
commitd4f9716fbc36bc20848b7be0b65551495fa52952 (patch)
tree5574db3e84ad0b07795146f3ddce09c0b4348747 /helix-term/src
parent4555a6b4332b48384d4bccfef527d26060c34037 (diff)
Add yank_to_clipboard commands, bind to `<space>y` by default
The clipboard special registers are able to retain multiple selections and also join the value when copying it to the clipboard. So by default we should yank regularly to the '*' and '+' registers. That will have the same behavior for the clipboards but will allow pasting multiple selections if the clipboard doesn't change between yanks.
Diffstat (limited to 'helix-term/src')
-rw-r--r--helix-term/src/commands.rs12
-rw-r--r--helix-term/src/keymap/default.rs2
2 files changed, 13 insertions, 1 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 21e2933f..bf60ad71 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -375,6 +375,8 @@ impl MappableCommand {
later, "Move forward in history",
commit_undo_checkpoint, "Commit changes to new checkpoint",
yank, "Yank selection",
+ yank_to_clipboard, "Yank selections to clipboard",
+ yank_to_primary_clipboard, "Yank selections to primary clipboard",
yank_joined, "Join and yank selections",
yank_joined_to_clipboard, "Join and yank selections to clipboard",
yank_main_selection_to_clipboard, "Yank main selection to clipboard",
@@ -3762,6 +3764,16 @@ fn yank(cx: &mut Context) {
exit_select_mode(cx);
}
+fn yank_to_clipboard(cx: &mut Context) {
+ yank_impl(cx.editor, '*');
+ exit_select_mode(cx);
+}
+
+fn yank_to_primary_clipboard(cx: &mut Context) {
+ yank_impl(cx.editor, '+');
+ exit_select_mode(cx);
+}
+
fn yank_impl(editor: &mut Editor, register: char) {
let (view, doc) = current!(editor);
let text = doc.text().slice(..);
diff --git a/helix-term/src/keymap/default.rs b/helix-term/src/keymap/default.rs
index c84c616c..37983352 100644
--- a/helix-term/src/keymap/default.rs
+++ b/helix-term/src/keymap/default.rs
@@ -265,7 +265,7 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"C-v" | "v" => vsplit_new,
},
},
- "y" => yank_joined_to_clipboard,
+ "y" => yank_to_clipboard,
"Y" => yank_main_selection_to_clipboard,
"p" => paste_clipboard_after,
"P" => paste_clipboard_before,