7

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

Что здесь не так?

Бонусный вопрос: как мне скопировать из гостевой Ubuntu в Windows?

Мой файл vimrc можно найти здесь: http://dpaste.org/X4MY/

7 ответов7

6

Ничто в вашем файле .vimrc не кажется мне проблемой, кроме, возможно, строки

set clipboard+=unnamed

Проблема заключается в том, что термин exclude из опции «буфер обмена», который присутствует по умолчанию при обнаружении X, должен быть последним термином. Используя += , вы сделали unnamed последний термин. Лучшая настройка будет

set clipboard^=unnamed

который помещает unnamed первым в строку параметров.

Что-то еще, что вы можете попробовать, так как пустой .vimrc работает для вас, это сделать двоичный файл вашего .vimrc файла. То есть, поместите команду :finish в качестве первой строки в файле .vimrc, перезапустите vim и убедитесь, что копирование работает, затем переместите команду :finish примерно наполовину вниз по вашему файлу .vimrc, перезапустите vim и попробуйте снова. Повторите, пытаясь сузить область, которая содержит проблемные команды. Комментирующие строки также работают вместо команды :finish . Вы можете оставить свой файл .vimrc открытым в одном Vim, а затем перезапустить другой Vim, чтобы весь процесс прошел немного быстрее.

5

Как вы копируете вещи из Vim? Vim использует несколько регистров, где + -Register используется для обмена информацией с системным буфером обмена. Например, для копирования всей строки в системный буфер обмена используйте

"+Y

После этого просто используйте CTRL-V для вставки, как всегда.

3

Нажмите клавишу shift при выборе текста, если у вас включена поддержка мыши в vim. Нормальный выбор (без shift) включает режим VISUAL. Использование shift передает события мыши в ваш эмулятор терминала.

2

Из одного из ваших комментариев:

Я видел это предложение в нескольких местах, но оно не работает для меня.

Решение:

Вероятно, у вас не установлен vim с включенной функцией clipboard , которая необходима для возможности копирования / вставки в / из системного буфера обмена.

Если вы vim --version в командной строке, вы, вероятно, увидите -clipboard в списке функций. Попробуйте скомпилировать vim из исходного кода с помощью следующей опции:

 ./configure --with-features=huge

(включите другие опции, которые вам нужны), а затем перейдите к make и make install . Теперь вы должны увидеть +clipboard в вашем списке функций, и вы можете вернуться к системному буферу обмена, используя

"+y

и вставьте из системного буфера обмена, используя

"+p
0

О вашем дополнительном вопросе: я знаю, что он не сложный, но я имею тенденцию запускать apache на всех моих машинах - физических и виртуальных - и поэтому я могу копировать файлы где-то в дереве документов и видеть их (и загружать) со всех других машин ,

0

Прокомментируйте строку

set mouse=a

в файле .vimrc .

0

Но мне нравится поддержка мыши!

После поиска в справочной документации я также нашел этот маленький драгоценный камень:

Примечание. При включении мыши в терминале функция копирования / вставки будет использовать регистр «*, если есть доступ к X-серверу. Обработку xterm кнопок мыши все еще можно использовать, удерживая клавишу Shift нажатой.

Конечно же, удержание клавиши shift позволяет регулярно копировать старые копии с помощью PuTTY.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .