From 777ac017df7ca7826834f9e23086aba60b30b314 Mon Sep 17 00:00:00 2001 From: Rasmus Karlsson Date: Sat, 2 Mar 2019 09:28:54 +0100 Subject: [PATCH] add vim bindings to split input movement --- src/widgets/splits/SplitInput.cpp | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/widgets/splits/SplitInput.cpp b/src/widgets/splits/SplitInput.cpp index 58ccb2cd..0546fb33 100644 --- a/src/widgets/splits/SplitInput.cpp +++ b/src/widgets/splits/SplitInput.cpp @@ -246,6 +246,54 @@ void SplitInput::installKeyPressedEvent() } } } + else if (event->key() == Qt::Key_H && + event->modifiers() == Qt::AltModifier) + { + // h: vim binding for left + SplitContainer *page = this->split_->getContainer(); + event->accept(); + + if (page != nullptr) + { + page->selectNextSplit(SplitContainer::Left); + } + } + else if (event->key() == Qt::Key_J && + event->modifiers() == Qt::AltModifier) + { + // j: vim binding for down + SplitContainer *page = this->split_->getContainer(); + event->accept(); + + if (page != nullptr) + { + page->selectNextSplit(SplitContainer::Below); + } + } + else if (event->key() == Qt::Key_K && + event->modifiers() == Qt::AltModifier) + { + // k: vim binding for up + SplitContainer *page = this->split_->getContainer(); + event->accept(); + + if (page != nullptr) + { + page->selectNextSplit(SplitContainer::Above); + } + } + else if (event->key() == Qt::Key_L && + event->modifiers() == Qt::AltModifier) + { + // l: vim binding for right + SplitContainer *page = this->split_->getContainer(); + event->accept(); + + if (page != nullptr) + { + page->selectNextSplit(SplitContainer::Right); + } + } else if (event->key() == Qt::Key_Down) { if ((event->modifiers() & Qt::ShiftModifier) != 0)