summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-04-03 19:14:38 +0200
committerMaxime Coste <frrrwww@gmail.com>2013-04-03 19:14:38 +0200
commitc6262fc5e1aa9ca226cf0c6b6aeb86e519fa66e2 (patch)
treec25f422b2d7928584e56477faaaea13c17e86f98 /src
parentd56f6444b5ff1e16b4f84d5052e02346d68684ca (diff)
use Y for concatenated yank
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> },