Posso criar um arquivo, copiar e colar texto com o botão do meio ou shift-insert.
Como copiar texto no vim e colá-lo na área de transferência do sistema?
:!sed -n 5,10p %
:!cat %
Posso criar um arquivo, copiar e colar texto com o botão do meio ou shift-insert.
Como copiar texto no vim e colá-lo na área de transferência do sistema?
:!sed -n 5,10p %
:!cat %
Respostas:
Você precisa ter Vim com o clipboard
e xtermclipboard
recursos compilado. No Ubuntu, estes estão disponíveis apenas com os pacotes vim GUI ( vim-gnome
, vim-gtk
, vim-athena
, etc.).
Depois de instalar um desses, você pode copiar (e colar) os registros da área de transferência ( *
e +
). Deste post muito informativo sobre Vi e Vim :
Para sistemas baseados no X11 (por exemplo, Linux e a maioria dos outros sistemas semelhantes ao UNIX ), existem 2 áreas de transferência independentes entre si:
- PRIMÁRIO - É copiar na seleção e pode ser colado com o botão do meio do mouse.
- CLIPBOARD - Isso é copiado (geralmente)
^C
e colado com^V
(É como o MS Windows).
O Vim possui 2 registros especiais correspondentes a estas pranchetas:
*
usa PRIMARY; mnemônico: s tar é s eleger (para a cópia-on- s eleitos)+
usa CLIPBOARD; mnemônico: CTRL + C (para o teclado comum)
Para copiar para um registro, você precede o comando copy ( y
) com "
e o nome do registro ( *
, por exemplo). "*y
, Em seguida, o botão do meio para colar, ou "+y
e ShiftInsertpara colar.
Uma solução bastante interessante vem dessa questão. Instale o xclip, depois canalize a saída de um comando para o xclip ( cat file | xclip -selection clipboard
por exemplo) e cole-o em qualquer lugar (se estiver no terminal - use Ctrl ShiftV
). Agora, você pode encurtar esse comando para xclip -sel clip
, o que não é exatamente aparente na leitura da página de manual ou nos exemplos.
/dev
, mas o texto ainda está em algum lugar, certo?
Eu tive um problema porque meu vim não suportava a área de transferência :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Instalei o vim-gnome (que suporta a área de transferência) e verifiquei novamente:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Agora eu posso copiar e colar usando "+ ye" + p, respectivamente.
sed -n5,10p
para imprimir as linhas 5-10, para que eu possa copiar e colar com mais facilidade, sem o vim reagir ao mouse.