Existe uma maneira de chamar o Vim de forma que ele abra um buffer com algum conteúdo especificado no terminal, ou seja, não seja salvo em um arquivo?
Por exemplo, eu gostaria de executar vim
e abrir um buffer com a foo, bar, baz and qux
gravação nele.
Existe uma opção que faz isso?
terminal
invocation
Gonçalo Ribeiro
fonte
fonte
vim < echo "test"
mas sem sucesso. Eu não sabiavim -
! E+
/ também-c
pode ser útil. Obrigado.Esta solução é totalmente inspirada na do romainl (muito obrigado a ele), mas permite abrir vários buffers com várias strings.
Adicione as seguintes linhas ao seu
.zshrc
(ou a.bashrc
qualquer arquivo relevante em que você defina suas funções do bash)Após a fonte do seu
.zshrc
arquivo, você poderá chamar a seguinte função:O que abrirá uma instância do vim com 3 buffers, cada um contendo uma string.
Se nenhum argumento for fornecido, uma instância regular do vim será iniciada. Se um argumento for uma sequência vazia, um buffer vazio será criado.
EDIT Percebi que, por uma razão que não entendo, uma linha vazia é criada no início de cada buffer, então adicionei a linha
Para se livrar dessa linha vazia em todos os buffers.
fonte
Recentemente, procurei uma maneira de colocar o conteúdo da área de transferência em um novo buffer no vim. Eu acho que vale a pena compartilhar aqui:
UPDATE:
Este será
put
o texto do registro*
antes!
da linha atual.Os registros
*
e+
refere-se à área de transferência no Windows.No linux,
+
tem o conteúdo da área de transferência e*
contém o texto selecionado.fonte
:help quotestar
e:help quoteplus
em sua resposta ajudar aqueles que não conhecem esses registros a entender por que esse comando funciona. Também no GNU / Linux há uma diferença entre*
e+
, enquanto no Windows eles são equivalentes.