Mobaxterm против копии текста vim
Могу ли я как-то скопировать текст между двумя сеансами Vim в двух разных терминалах? Я использую mobaxterm и не могу прокручивать при выделении текста, который хочу скопировать.
Как мне это сделать? Отредактируйте 2 файла на 2 разных терминалах (сеансы SSH) с опцией multiexec и скопируйте больше текста, чем я вижу на терминале. Я не могу выделить его ни в одном режиме vim, чтобы скопировать его в блокнот моего ноутбука или другое окно сеанса SSH терминала.
1 ответ
В vim вы можете использоватьr
команда для чтения файла или команды откуда-то еще. Итак, что я бы сделал в этом сценарии:
- Сохраните то, что вы хотите скопировать, в файл, перенаправив вывод команды, или это уже файл, поэтому просто сохраните его.
- Откройте vim в другом терминале и перейдите к файлу, в который хотите вставить.
- Использовать
:tabe
из командного режима, чтобы открыть новую вкладку - Использовать
:r /path/to/file
прочитать содержимое этого файла, который вы создали в (1), в буфер - Затем используйте yank/paste как обычно или используйте ctrl-V в командном режиме, чтобы сделать блок визуального выбора и скопировать его.
Обратите внимание, что вы можете передать команду:r
тоже, но вам придется экранировать некоторые символы, поэтому:r! date +\%s
получит текущее время unix и вставит его в файл.
Еще много советов в известном посте Grok Vim .
Вы также можете сделать такие вещи, как включить нумерацию строк с помощью:set number
, а затем прочитайте определенные строки из файла::r! sed -n 147,227p /path/to/foo/foo.c
Или используйте нумерацию строк с относительной нумерацией (:set relativenumber
), чтобы легко показать вам, сколько строк нужно дернутьy
. Таким образом, вы просто делаете37y
а потомp
где вы этого хотите.