Como originar uma parte de um arquivo


8

Eu posso criar um arquivo, por exemplo, meu vimrccom :so %ou :so <filename>. Mas o que faço quando preciso originar apenas parte de um arquivo. Eu quero uma maneira de selecionar visualmente uma parte do arquivo :h ve, em seguida, fonte-lo. Meio como o emacsM-x eval-region


2
Não funciona em todos os casos, mas:@*
Mass

Respostas:


10

Depois de fazer sua seleção Visual, execute o seguinte:

y:@"<CR>

ycopia a seleção para o register sem nome ( "), pois não explicamos o nome de um registro. Em seguida, :@"executa o conteúdo desse registro como comandos Ex.

Consulte help :@e /programming/20262519/vim-how-to-source-a-part-of-the-buffer


Então, você está dizendo que eu deveria apenas copiar e colar na minha janela da linha de comando? Isso é ... mais fácil do que eu pensava.
Klaus

11
Você não está colando na linha de comando, o que implicaria algo como ler os dados e armazená-los em um buffer de entrada. Você está apenas dizendo ao vim para processar os dados de uma alocação de memória existente (o armazenamento de registros), que é muito menos sobrecarga.
Camada B

1

Uma implementação alternativa que não para no primeiro erro de um script:

command! -range=% Exec call execute(getline(<line1>, <line2>), '')

Agora, no modo visual, digite :'<,'>Execpara processar as linhas selecionadas ( '<,'>é adicionado automaticamente como de costume). Além disso, :Execno modo normal, executa todo o buffer, assim como :source %, exceto que o buffer não precisa ser salvo primeiro.

Se necessário, os mapeamentos podem ser adicionados facilmente.

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.