2013-05-24 2 views
14

У меня сейчас есть сеанс vim, открытый в Putty, и я выбрал все в файле в визуальном режиме. Обычно, чтобы скопировать это в буфер обмена, я бы использовал либо "+y, либо "*y, но ни одна из этих команд не работает.Копирование из визуального режима Putty/Vim в буфер обмена Windows

Вот мой vimrc:

call pathogen#infect() 

set noswapfile 

set mouse=" 

set ts=4 
set wildmenu 
set wildmode=list:longest,full 

colorscheme evening 

set expandtab 
set smarttab 

" Stuff from github: 
set ts=4 
set wildmenu 
set wildmode=list:longest,full 
set number 

" This shows what you are typing as a command. I love this! 
set showcmd 

" Who doesn't like autoindent? 
set autoindent 

" Spaces are better than a tab character 
set expandtab 
set smarttab 

" Who wants an 8 character tab? Not me! 
set shiftwidth=3 
set softtabstop=3 

" Ignoring case is a fun trick 
set ignorecase 

" When I close a tab, remove the buffer 
set hidden 

" Set word wrapping 
set linebreak 

" Use filetype specific indentation 
filetype on 
filetype plugin on 
filetype indent on 

" Disable auto commenting 
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o 

ответ

5

Когда вы подключаетесь к удаленной системе с PuTTY (используя SSH, я предполагаю), и вам необходимо перенести полный файл из этой системы на локальный Windows, просто откройте отдельное соединение SCP; PuTTY поставляется с pscp.exe для передачи файлов. В зависимости от конфигурации SSH, при мультиплексировании это может даже повторно использовать одно и то же соединение, поэтому накладные расходы должны быть довольно небольшими.

Если вы устанавливаете X-сервер (например, Cygwin-X) и использовать ssh -X hostname для подключения, вы можете запустить удаленный/GVim сеанс терминала и буфер синхронизации с хостом Windows, любезностями X Server. Только с PuTTY это невозможно, поскольку это единственный клиент терминала без какого-либо подключения к X.

+0

Есть ли для этого работа, потому что я часто использую шпатлевку, а не ssh машины linux/OS X. –

+0

В конфигурации PuTTY. Соединение -> SSH -> X11, вы можете включить пересылку X11, которая добавит этот -X флаг при подключении. Я могу подтвердить, что это решение работает, я также посмотрел на эту статью: http://www.quora.com/How-can-you-copy-all-contents-of-a-text-file-opened-in-vim- через-Putty-on-a-Windows-desktop-to-Windows-clipboard Я запускаю PuTTY в Windows 7, подключая к коробке Vagrant с портом XMing forwared и могу копировать из vim в буфер обмена через ' "* y' –

1

Я предполагаю, что вы ожидали, чтобы текст был скопирован в буфер обмена хост-системы. Я сомневаюсь, что это возможно изнутри vim, работающего на сеансе замазки, но для меня работают следующие

  • выберите текст с помощью мыши.
  • выделенный текст помещается в буфер обмена моей системы.

Обратите внимание, что это не имеет никакого отношения к vim, но это полностью замазка.

Редактировать

Using PuTTY От

3.1.3.5 Копировать в буфер обмена Все

Эта опция меню система обеспечивает удобный способ скопировать весь содержимое экрана терминала (до до последней непустой строки) и скроллбек в буфер обмена за один раз

+0

У меня есть проблема что мне нужно скопировать весь файл (более 1000 строк), и я не могу выделить все так. Кроме того, у меня есть номера строк, поэтому копирование таким образом копирует номера строк. – user886596

+1

Я замаскировал параметры замазки при открытии сеанса, но я не могу найти никакой возможности синхронизировать буфер обмена. Глядя на [Using PuTTY] (http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter3.html), я начинаю думать, что это невозможно. Не можете ли вы ftp на машине получить файл? Или ftp изнутри vim в вашей сессии шпатлевки на ваш локальный компьютер, чтобы поместить файл. –

+0

Ударьте это - просто откройте системное меню (вверху слева) и выберите * Копировать все в буфер обмена * –

32

с мышью, разрешенной через set mouse=a, вам просто нужно «Удерживать сдвиг, а затем выделять текст, который вы хотите скопировать, используя левая кнопка мыши. Когда вы отпускаете, выделенный текст должен находиться в буфере обмена Windows ». См. https://stackoverflow.com/a/4313348

+1

Это не работает – Argyll

+0

Это единственное, что до сих пор работало для меня –

+3

Я могу использовать это только для копирования того, что в коробке. Прокрутка не работает. Я использую MTPutty. – kapad

0

Самый простой способ, который я нашел до сих пор, - включить регистрацию в моей сессии шпатлевки. Затем просто просмотрите строки, которые я хочу. так как все на экране шпатлевки зарегистрировано в моем локальном файле, я могу легко скопировать материал из своего локального файла и отправить его по электронной почте или что угодно.

HTH.

+0

Это не дает ответа на вопрос. критика или уточнение запроса f оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http: // stackoverflow.com/help/whats-Reputation), вы сможете [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). – Qix

+0

Этот метод является альтернативой использованию скопирования между экраном шпатлевки и локальным хостом Windows и альтернативой использованию winscp для передачи текстового файла, чтобы, например, принести файл журнала на локальный компьютер. – driftingprogrammer

1

Единственный надежный способ копирования текста/данных с удаленного соединения, который я смог найти, - это приложение стороннего SCP, например filezilla или winscp.Вы можете скачать последний здесь: http://winscp.net/eng/download.php

2

Я столкнулся с той же проблемой, которую искал повсюду, но я не нашел простого решения, не устанавливая дополнительный программный инструмент. Итак, вот самое простое решение.

  1. выход из VI редактора

  2. $ кошка с использованием выше команды вы увидите все содержимое, в этом файле

  3. выбрать содержание вы хотите копия (да, вы можете прокручивать этот экран при выборе)

  4. не нажмите любую кнопку мыши, потому что текст будет выбран автоматически

  5. открыть текстовый редактор на окнах и вставить его туда

  6. Совершено

+0

Это был единственный логичный способ, которым я мог это сделать. Это немного лишняя работа для выхода из файла и кошки, но это работает для меня. Благодаря! –

Смежные вопросы