forked from qt-creator/qt-creator
FakeVim: <S-Insert> to insert text from clipboard
Mapping <S-Insert> is alias of 'p' in command mode and inserts clipboard content in insert mode. Change-Id: Id53890ee4e7df0140fe1e0791d620bda315f3924 Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
@@ -3670,8 +3670,8 @@ bool FakeVimHandler::Private::handleNoSubMode(const Input &input)
|
||||
endEditBlock();
|
||||
} else if (input.isControl('o')) {
|
||||
jump(-count());
|
||||
} else if (input.is('p') || input.is('P')) {
|
||||
pasteText(input.is('p'));
|
||||
} else if (input.is('p') || input.is('P') || input.isShift(Qt::Key_Insert)) {
|
||||
pasteText(!input.is('P'));
|
||||
setTargetColumn();
|
||||
setDotCommand(_("%1p"), count());
|
||||
finishMovement();
|
||||
@@ -4335,6 +4335,13 @@ EventResult FakeVimHandler::Private::handleInsertMode(const Input &input)
|
||||
insert = _("<C-P>");
|
||||
else
|
||||
insert = _("<C-N>");
|
||||
} else if (input.isShift(Qt::Key_Insert)) {
|
||||
// Insert text from clipboard.
|
||||
QClipboard *clipboard = QApplication::clipboard();
|
||||
const QMimeData *data = clipboard->mimeData();
|
||||
if (data && data->hasText())
|
||||
insertInInsertMode(data->text());
|
||||
insert = _("<S-INSERT>");
|
||||
} else if (!input.text().isEmpty()) {
|
||||
insert = input.text();
|
||||
insertInInsertMode(insert);
|
||||
@@ -7217,7 +7224,7 @@ RangeMode FakeVimHandler::Private::registerRangeMode(int reg) const
|
||||
|
||||
// Use range mode from Vim's clipboard data if available.
|
||||
const QMimeData *data = clipboard->mimeData(mode);
|
||||
if (data != 0 && data->hasFormat(vimMimeText)) {
|
||||
if (data && data->hasFormat(vimMimeText)) {
|
||||
QByteArray bytes = data->data(vimMimeText);
|
||||
if (bytes.length() > 0)
|
||||
return static_cast<RangeMode>(bytes.at(0));
|
||||
|
||||
Reference in New Issue
Block a user