Vimperator копия / вставка

14367
hasen

Я пробую Вимператор . Я главным образом хотел это для прокрутки hjkl, и мне нравится его система подсказок для следующих ссылок. Эти две функции действительно все, что мне нужно; Я думаю.

Я не против других особенностей, это просто иногда мешает мне.

Больше всего меня раздражает копирование / вставка. Я привык к Ctrl+ c/ Ctrl+ v, я не против использовать другой ярлык, но ..

:help yank указывает, что копирование выделенного текста выполняется с помощью Y, но единственный метод, упомянутый для вставки, это средняя кнопка мыши!

Это так смешно против духа Вима!

Как я могу вставить в Vimperator без использования мыши?

23
Все ответы на этот вопрос устарели (что имеет смысл, поскольку им семь лет). Если вы попали сюда из Google, это не (на сегодняшний день) ответы, которые вы ищете Arthur Ulfeldt 7 лет назад 0

8 ответов на вопрос

36
RevAaron

Я удивлен, что не был дан более точный ответ на этот вопрос. Ссылка на плагин выбранного ответа решила проблему ОП, но никто не объяснил, как вставить что-то в текстовое поле без использования режима сквозного просмотра (Cv).

Если вы находитесь в текстовом поле в режиме INSERT и хотите вставить что-то, очевидное, что нужно сделать в vi-land, - это нажать ESC и p, чтобы вставить. В vimperator это не работает - ESC выводит вас из режима INSERT полностью и в режим, в котором вы работаете со страницей / вкладкой в ​​целом.

Vimperator решает эту проблему с помощью дополнительного базового режима - TEXTAREA. В режиме TEXTAREA вы можете использовать поддерживаемые команды, которые вы используете в vi.

Enter TEXTAREA mode: C-t Paste: p Copy line: yy Delete Char: x Delete Line: dd 

И т.п.

Похоже, это не очень хорошо задокументировано - в итоге я понял это по большей части по ошибке. Он работает одинаково в многострочных и однострочных текстовых полях.

Спасибо за этот комментарий. Это как раз то, что мне нужно, чтобы обернуть голову вимператором и полями формы. ZweiBlumen 12 лет назад 0
@RevAaron, когда вы входите в режим TEXTAREA, это похоже на традиционную среду VI, и большинство клавиш VI будут работать для редактирования текста? И еще я заметил (снова случайно), когда я нажимаю «d», а затем «s» или «a» в режиме TEXTAREA, он переключает режим в режим «VISUAL». Я был бы признателен, если бы вы могли дать мне некоторую информацию об этом. или даже если вам нравится, я могу задать это как вопрос, тогда вы можете ответить на него, тогда другие воспользуются им. Mehrad 10 лет назад 0
15
user4126

Самое лучшее и простое, что вы можете сделать - это переназначить ключи. Это не трудно. Поместите это в ваш _vimperatorrc (или .vimperatorrc в Linux)

noremap <C-c> <C-v><C-c> noremap <C-v> <C-v><C-v> 

<C-v>по умолчанию сопоставлен с режимом «Pass next», что означает, что следующая нажатая клавиша отправляется напрямую в Firefox, без обработки и использования vimperator. Поэтому приведенные выше сопоставления просто активируют режим «Пройти дальше» и отправляют соответствующий ярлык.

Существует даже плагин vimperator, который расширяет это и еще больше перераспределяет все общие ярлыки окон, поэтому они ведут себя как положено.

за (вставить) это должно быть inoremap hasen 14 лет назад 3
принято по ссылке на плагин! это здорово и решает проблему hasen 14 лет назад 0
Похоже, что в текущей версии (3.8.1) Cc и Cv по умолчанию выполняют копирование и вставку на уровне ОС ... Я не смог ничего найти в журналах изменений, но я только что перешел с Pentadactyl на последнюю Vimperator, Cc и Cv работали так, как я хотел. hangtwenty 10 лет назад 2
@hangtwenty кажется правильным, ответ здесь уже устарел Arthur Ulfeldt 7 лет назад 0
13
joe

Прямо сейчас vimperator переназначает и Ctrl + C (из «copy» в «cancel») и Ctrl + V (из «paste» в «pass-through»). В Linux предпочтительным методом копирования / вставки является средняя кнопка мыши, так что это не проблема. В Windows это катастрофа с пользовательским интерфейсом, и ее крайне необходимо исправить.

Вы можете скопировать из трех мест: текст с веб-страницы, текст из поля формы и текст из внешнего приложения. Вы можете скопировать в два места: в поле формы и во внешнее приложение. Адрес и командные панели работают как поля формы.

Copying from... A web page: 'Y' works, '^C' doesn't Form field: 'Y' doesn't work, '^C' does Extern application: 'Y' doesn't work, '^C' does Copying to... Form field: '^V' doesn't work, '^V,^V' does External application: '^V' works, '^V,^V' pastes twice Or, seen another way Copy Paste Page Y N/A Form ^C ^V,^V App ^C ^V 

Обычные пользователи не запомнят эту таблицу. Они никогда не поймут этого, потому что это явно не задокументировано, и они не будут читать это, даже если бы это было так. Вместо этого они будут использовать контекстное меню, единственное, что работает везде. Фактически, через несколько недель после того, как я начал использовать Vimperator, я поймал себя на том, что делаю это в совершенно не связанном приложении, чего раньше никогда не делал.

Нам нужно восстановить ^ C и ^ V до их оригинальных законных функций, таких как копирование и вставка, что означает смещение сочетаний клавиш ^ C = cancel и ^ V = pass-through. На самом деле, обе эти горячие клавиши уникальны для vimperator и не отображаются в vim. ^ V означает «визуальный блок» в vim, который не применяется в vimperator, так что сквозной доступ можно легко назначить какой-то другой клавише. Я предлагаю использовать обратную косую черту в командном режиме и ctrl + обратную косую черту как в командном режиме, так и в режиме вставки. Это оставляет ^ C. Я думаю, что это должно быть перенесено в ^ S. Это имеет две хорошие мнемоники: это «стоп», и это также горячая клавиша Unix для XOFF, которая бесполезна, но семантически похожа. ^ S в настоящее время «сохранить страницу как» в vimperator, который используется редко и все еще может быть доступен с помощью: save или: saveas.

Отмена также сломана; это был ^ Z, но ^ Z не является сквозным режимом, и нет способа отменить изменения в поле формы без использования мыши. Я не вижу причин не переносить это на другую горячую клавишу, тем более что ^ Z в vim означает приостановку, которая совершенно не связана, и неожиданно оказаться в режиме сквозного прохождения крайне дезориентирует. Я не могу думать о произвольной горячей клавише, чтобы изменить это на, но ^ Z был довольно произвольным, так что подойдет любая неиспользуемая горячая клавиша.

Soruce: http://www.mozdev.org/pipermail/vimperator/2008-October/002359.html

2
Peter Mortensen

Я не нашел ответы на эти вопросы полезными, так как нигде не вижу Ctrl+ c. Что я делаю, так это использую ярлык SecureCRT. То есть для копирования со страницы:

Ctrl+Ins

Для вставки: Ctrl+ Vдважды (как кто-то говорит в ответах в другом месте).

Спасибо, добрый сэр. картографирование в решил мой специфический вкус этой проблемы. Steve Vermeulen 10 лет назад 0
2
Charlie

Я искал способ сделать это некоторое время. Хороший. Но решение noremap от user4126 было не совсем идеальным, если бы я хотел вставить в командную строку или в текстовое поле, как указывает Джо. Поэтому я настроил его с помощью inoremap и cnoremap на http://charlieharvey.org.uk/page/vimperator_cut_and_paste . Не похоже, что vnoremap поддерживается.

Таким образом, вы можете вставить в командную строку и в текстовые поля, используя сочетание клавиш ctrl-v только один раз. Вставьте следующее в ваш .vimperatorrc и перезапустите Firefox.

noremap <C-v> <C-v><C-v> inoremap <C-v> <C-v><C-v> cnoremap <C-v> <C-v><C-v>  noremap <C-c> <C-v><C-c> inoremap <C-c> <C-v><C-c> cnoremap <C-c> <C-v><C-c> 
1
facepalmd

Попробуйте следующее, если вы предпочитаете работать с мышью, а не с vim:

NextPlease для FireFox 3.6 сейчас :) Alexey Romanov 14 лет назад 0
1
Hamish Downer

Для краткого ответа - ^ V ^ V (т.е. Ctrl-V Ctrl-V)

Первый Ctrl-V делает "следующий проход нажатия клавиши". Второй Ctrl-V вставляет текст. Это то, что я делаю для большинства текстовых полей.

Если вы используете режим vi для многострочных текстовых полей (установите noinsertmode), вы также можете вставить с помощью p - поэтому, если я хочу вставить URL-адрес другой вкладки в этот тег, я могу перейти на эту вкладку, использовать y, а затем вернуться к эта вкладка. В нижней строке браузера появится надпись «TEXTAREA», и я могу нажать p, чтобы вставить URL-адрес.

0
MaikoID

I would suggest to use the

map <C-c> <C-v><C-c> noremap <C-v> <C-v><C-v> 

Because if you have opened a external text editor, a simple C-c at FF window will end the external editor and you will lose everything.

BR