Tentei usar Ctrl+ Vpara colar o conteúdo em um documento do editor vi, mas Ctrl+ Vnão é interpretado como uma pasta.
Tentei usar Ctrl+ Vpara colar o conteúdo em um documento do editor vi, mas Ctrl+ Vnão é interpretado como uma pasta.
Respostas:
Primeiro, verifique se você está no modo de edição (pressione i). Em seguida, você pode colar com Ctrl+ Shift+ V, se estiver em um emulador de terminal como gnome-terminal
(ou selecione "Colar" no menu do botão direito do mouse).
Você também pode digitar o :set paste
vim antes de colar para desativar o recuo automático etc. Depois de :set nopaste
colar o conteúdo.
Verifique também esta pergunta no stackoverflow.com para obter mais informações.
Se você deseja copiar / colar linhas vim
(em vez de colar o conteúdo da área de transferência), verifique o comando yank . Aqui está uma folha de dicas que pode ajudar.
I
maiúsculas de minúsculas. A minúscula i
é a maneira normal de entrar no modo de inserção. Capital I
coloca o cursor no início da linha e entra no modo de inserção.
O Vi (e o Vim) funciona de maneira muito diferente em comparação com um editor de texto normal, como o Gedit. Ele também tem uma curva de aprendizado bastante acentuada. Se você quiser aprender alguns comandos básicos, comece com este tutorial interativo .
No entanto, para responder à sua pergunta. O conteúdo da área de transferência do sistema pode ser acessado através do registro positivo. Portanto, para colar algo da área de transferência do sistema, você pode, no modo Normal, pressionar: "+p(Não ao mesmo tempo, mas um após o outro).
vi
não usovim
set :paste
).
Se você deseja copiar e colar o conteúdo dentro do mesmo arquivo , use yank
e paste
.
Se você deseja copiar o conteúdo da pasta entre os terminais , abra o primeiro arquivo, puxando o texto desejado, abra o segundo arquivo no vim (por exemplo :tabnew /path/to/second/file
) e pressione p
para colá-lo.
Se você deseja copiar o conteúdo da pasta do vim para um programa externo , é necessário acessar a área de transferência do sistema. Eu suponho que você use o Ubuntu. A versão da GUI do vim sempre tem suporte à área de transferência; no entanto, se você gosta de usar o Vim em um terminal, precisará verificar o suporte à área de transferência do X11.
No console, digite:
$ vim --version | grep xterm
Se você encontrar -xterm_clipboard , terá duas opções:
1) Compile o vim você mesmo, com o sinalizador xterm_clipboard no
2) Desinstale o vim, instale o gvim (vim-gtk ou vim-gnome). Você pode usar o vim não gui chamando o vim a partir do terminal, da mesma maneira que fazia antes. Desta vez, quando você verificar, deverá encontrar + xterm_clipborad .
Agora, quando você puxa algum texto no registro + dentro do seu editor vim (por exemplo, "+ yy), ele também é copiado para a área de transferência do sistema, que você pode recuperar do seu programa externo, como o editor do gedit, usando Ctrl+ V.
Se você deseja copiar o conteúdo da pasta de um programa externo para o vim , copie primeiro o texto na área de transferência do sistema via Ctrl+ e C, no modo de inserção do editor do vim , clique no botão do meio do mouse (geralmente a roda) ou pressione Ctrl+ Shift+ Vpara colar.
Estas são 4 condições básicas de copiar e colar relacionadas ao vim. Eu espero que isso ajude.
vim-gtk
tem xterm_clipboard
suporte e no Fedora xvim
tem.
Eu sempre uso Shift+ Insertquando quero colar texto no terminal, funciona em todos os programas do terminal.
(Essa também é a razão pela qual nunca consigo um laptop onde você não pode pressionar Insertsem pressionar uma tecla secundária)
Vi
/ Vim
! = terminal;)
Ctrl+A
, Ctrl+C
também?
Use o botão central do mouse para inserir o texto que você destacou em outro lugar.
É útil quando você não tem acesso à área de transferência do sistema (por exemplo, em uma sessão SSH remota).
Deve estar no modo de edição / inserção do Vim.
Depois de inserir o vi, pressione i
para entrar no modo de inserção, clique com o botão direito do mouse no terminal, clique em colar.
i
. O que maiúsculas I
fazem?
i
. Maiúsculas I
move o cursor para o início da linha antes de entrar no modo de inserção, o que não é necessário aqui.
Instruções detalhadas para copiar / colar linhas de texto no vi usando yank
eput
(use o seguinte no modo de comando do vi)
Copiar (YANK)
Para copiar uma linha no vi:
yy
ou digiteY
Para copiar 2 linhas no vi:
2yy
ou digite2Y
(da mesma forma, qualquer número de linhas pode ser copiado)
Para copiar todas as linhas do local atual para o final do arquivo:
yG
Para copiar todo o texto do local atual até o final da palavra atual:
yw
Para copiar todo o texto do local atual para o final da linha:
y$
Colar (PUT)
Para colar texto na área de transferência - após a localização do cursor:
p
Para colar texto na área de transferência - antes da localização do cursor:
P
Eu tive um problema, porque minha instalação do 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.
Com o Vim 8+ no Linux ou Mac, agora você pode simplesmente usar a pasta nativa do SO ( ctrl+shift+V
no Linux, cmd+V
no Mac). Não pressione i
para inserir o modo.
Ele colará o conteúdo da área de transferência do sistema operacional, preservando os espaços e as guias sem adicionar a inserção automática. É equivalente ao velho :set paste
, i
, ctrl+shift+V
, esc
, :set nopaste
método.
Você nem precisa mais dos recursos +clipboard
ou do +xterm_clipboard
vim instalados. Esse recurso é chamado de "pasta entre colchetes". Para obter mais detalhes, consulte https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
Se você é root : Ctrl+ Shift+V
Se você não é root : Center, clique com o mouse.
Eu só queria observar que, usando o Vim via Git Bash no Windows, você pode simplesmente usar p
ou clicar com o botão central do mouse sem estar no modo de inserção. Usando o Vim através do PuTTY , você pode clicar com o botão direito. E o destaque é a cópia.
Eu notei isso porque cheguei aqui sem ver que este é o SE para Ubuntu.
Outros comandos úteis:
Você pode usar Ctrl+ Shift+ Vpara colar na versão terminal vim, mas para a versão GUI do vim Neovim-Qt
, colar o texto da área de transferência do sistema com Ctrl+ Shift+ Vsimplesmente não funcionará. Você precisa acessar a área de transferência "+
ou "*
o editor vim.
A adição de uma nova combinação de teclas .vimrc
irá simplesmente copiar / colar os comandos:
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
vimtutor
Ele o levará até a velocidade em que é utilizável em cerca de 45 minutos.