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

klaus
fonte
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

dedowsdi
fonte
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.

Matt
fonte