Como copiar a saída do comando no vim?


33

Por exemplo, se eu digitar ' :pwd' para obter o diretório de trabalho atual, posso selecionar o texto no gvim, mas não consigo descobrir como copiá-lo para a área de transferência. Se eu tentar o mesmo no console vim, nem consigo selecioná-lo com o mouse. Gostaria que isso funcionasse com todos os comandos do vim, como set guifontcopiar a guifont=Consolas:h10:cANSIsaída.

Respostas:


41

Você está procurando por isso,

:redir @* | set guifont | redir END

: comando redir redireciona a saída de um comando para um registrador (@ *). O registro @ * refere-se à área de transferência.

Para mais informações sobre isso,

:help :redir

não funcionou no vim-gtk alguma pista?
Sergio Abreu

@SergioAbreu tente em @+vez de @*(bem, funciona no gvim).
precisa saber é

10

Tente ' :r !pwd' para obter o diretório de trabalho atual diretamente no arquivo aberto do GVIM.
Você pode copiá-lo para a área de transferência, como faria com qualquer outro conteúdo de arquivo de texto aberto lá.


Isso é útil, mas posso usar isso set guifontpor exemplo?
27710 Steven

Não, esse não é um comando do shell, portanto não funcionará.
21430 Kevin Panko

4

Para este exemplo em particular, você pode fazer (observe o "!", Que o faz passar pelo shell):

:!pwd | xclip

ou

:!pwd | xclip -selection secondary

(dependendo da seleção X desejada).

Pode ser necessário instalar o xclip primeiro

sudo apt-get install xclip

(ou equivalente)


3

Se você estiver executando o vim em um xterm, pressionar a tecla Shift enquanto seleciona o texto copiará o texto para o equivalente X da área de transferência.


X tem duas pranchetas (pelo menos); sua sugestão colocará o texto na seleção PRIMARY (cole com clique do meio) em vez da seleção de CLIPBOARD (cole com Ctrl + V na maioria dos aplicativos).
Marius Gedminas
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.