summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main.cc b/src/main.cc
index e4219515..1ae2da8f 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -257,6 +257,15 @@ void do_yank(Context& context)
RegisterManager::instance()['"'] = context.editor().selections_content();
}
+void do_cat_yank(Context& context)
+{
+ auto sels = context.editor().selections_content();
+ String str;
+ for (auto& sel : sels)
+ str += sel;
+ RegisterManager::instance()['"'] = memoryview<String>(str);
+}
+
void do_erase(Context& context)
{
RegisterManager::instance()['"'] = context.editor().selections_content();
@@ -647,6 +656,7 @@ std::unordered_map<Key, std::function<void (Context& context)>> keymap =
{ { Key::Modifiers::None, 'G' }, do_go<SelectMode::Extend> },
{ { Key::Modifiers::None, 'y' }, do_yank },
+ { { Key::Modifiers::None, 'Y' }, do_cat_yank },
{ { Key::Modifiers::None, 'p' }, repeated(do_paste<InsertMode::Append>) },
{ { Key::Modifiers::None, 'P' }, repeated(do_paste<InsertMode::Insert>) },
{ { Key::Modifiers::Alt, 'p' }, do_paste<InsertMode::Replace> },