Como copiar linhas selecionadas para a área de transferência no vim. Eu sei fazer isso para todos os arquivos de texto , mas quero fazer para as linhas selecionadas. Obrigado!
Como copiar linhas selecionadas para a área de transferência no vim. Eu sei fazer isso para todos os arquivos de texto , mas quero fazer para as linhas selecionadas. Obrigado!
Respostas:
SHIFTVcoloca você no modo de seleção de linhas. Em seguida, "*ypuxa as linhas atualmente selecionadas para o *registro que é a área de transferência. Existem alguns registros diferentes, para finalidades diferentes. Consulte a seção selection and drop registerspara obter detalhes sobre as diferenças entre *e +registros no Windows e Linux.
Se você estiver no Linux e estiver usando um VIm versão 7.3.74 ou superior (a versão que é instalada no Ubuntu 11.10 em diante satisfaz isso), você pode fazer
set clipboard=unnamedplus
que colocará o texto puxado na área de transferência global e permitirá que você cole da área de transferência global, sem ter que usar nenhum registro especial. Ao contrário da solução da ldigas, isso também funcionará em versões não-gui do VIm.
vim-gnomepacote em vez de vim.
vim --version | grep "+xterm_clipboard".
clipboard=unnamed( vim.wikia.com/wiki/Accessing_the_system_clipboard )
set guioptions+=a
irá, ... uhmm, resumindo, sempre que você selecionar / puxar algo, coloque-o na área de transferência também (não no do Vim, mas no teclado global do sistema de janelas). Dessa forma, você não precisa pensar em colocar as coisas em um registro especial.
Para GVIM, pressione vpara entrar no modo visual; selecione o texto e clique Ctrl+Insertpara copiar a seleção para a área de transferência global.
No menu, você pode ver que a tecla de atalho é, "+you seja, segure a tecla Shift, pressione ", +depois solte Shift e pressione y(complicado em comparação a Shift + Insert).
Se você está usando o vim no MAC OSX, infelizmente ele vem com uma versão mais antiga e não está de acordo com as opções da área de transferência. Felizmente, o homebrew pode resolver esse problema facilmente.
instale o vim:
brew install vim --with-lua --with-override-system-vim
instale o gui verion do vim:
brew install macvim --with-lua --with-override-system-vim
reinicie o terminal para ter efeito.
acrescente a seguinte linha a ~ / .vimrc
set clipboard=unnamed
agora você pode copiar a linha no vim com yy
e colá-la em todo o sistema.
Instale "xclip" se você não ...
sudo apt-get install xclip
O Xclip coloca os dados na área de transferência "seleção / realçada" que você clica com o botão do meio para colar em oposição a "ctrl + v"
Enquanto estiver no vim, use os comandos ex:
7w !xclip
ou
1,7w !xclip
ou
%w !xclip
Em seguida, clique com o botão do meio para colar em qualquer outro aplicativo ...
Se o vim for compilado com suporte para área de transferência, então você pode usar o "*ysignificado: puxar o texto visualmente selecionado para o registro *('*' é para área de transferência)
Se não houver suporte para área de transferência, acho que a única outra maneira é usar Ctrl+Insertdepois de selecionar visualmente o texto no vim.
Eu adicionei a seguinte linha ao meu .vimrc
vnoremap <F5> "+y<CR>
Isso permite que você copie o texto selecionado para a área de transferência pressionando F5. Você deve estar no modo visual para que isso funcione.
~/.vimrcObrigado, isso é muito melhor.
Adicione o seguinte código ao seu .vimrc:
if has('clipboard')
if has('unnamedplus') " When possible use + register for copy-paste
set clipboard=unnamed,unnamedplus
else " On mac and Windows, use * register for copy-paste
set clipboard=unnamed
endif
endif