mirror of
https://github.com/helix-editor/helix.git
synced 2025-01-18 21:17:08 +04:00
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.
This commit is contained in:
parent
4555a6b433
commit
d4f9716fbc
@ -291,7 +291,7 @@ #### Space mode
|
||||
| `w` | Enter [window mode](#window-mode) | N/A |
|
||||
| `p` | Paste system clipboard after selections | `paste_clipboard_after` |
|
||||
| `P` | Paste system clipboard before selections | `paste_clipboard_before` |
|
||||
| `y` | Join and yank selections to clipboard | `yank_joined_to_clipboard` |
|
||||
| `y` | Yank selections to clipboard | `yank_to_clipboard` |
|
||||
| `Y` | Yank main selection to clipboard | `yank_main_selection_to_clipboard` |
|
||||
| `R` | Replace selections by clipboard contents | `replace_selections_with_clipboard` |
|
||||
| `/` | Global search in workspace folder | `global_search` |
|
||||
|
@ -375,6 +375,8 @@ pub fn doc(&self) -> &str {
|
||||
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(..);
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user