Ex e Vi: buffers e regexes

3

Eu quero colocar as correspondências regex no buffer, mas não posso obter um exemplo ainda mais simples y :.put myNewBuffer return msg [line] [put] [buffer] funcionando, por exemplo, como colocar algo no buffer?

Então, para expressões regulares e ex

  1. o que significa (.,.)~ replaces the previous regular expression with the previous replacement pattern from a substitution ? Algum exemplo útil, fonte da cotação .
  2. por favor, dê alguns exemplos de como você usa regexes com ex. Por exemplo, como você pode armazenar áreas entre iniciar a palavra tendo h como primeiro caractere até que a palavra termine com s caractere?
  3. E se a última coisa apenas em uma linha, ou seja, palavra final, é a palavra que termina em s ou o fim da linha $ ?
por Michael Mrozek 19.12.2010 / 23:02

1 resposta

1

O manual do vim pode ser melhor e mais atualizado do que o antigo manual Ex. Provavelmente, você usará ex que vem com o vim na maioria das distribuições Linux modernas. Para obter ajuda no uso do Vim: ajuda, para obter ajuda sobre um comando específico, como o comando Ex ~, use :help :~ . Todos os comandos Ex são precedidos por um: no Vim. Eu acho que (.,.) É simplesmente usado para denotar que um intervalo pode ser especificado como em 2,8 para significar as linhas 2 a 8 ou 1, $ ($ representa a última linha) para cada linha em um arquivo. No Vim, digitar :1,$~ significa executar o comando Ex ~ em todas as linhas do arquivo.

  1. Vim diz que :~ é "Repetir o último substituto com a mesma string substituta, mas com o último padrão de pesquisa usado." Uma substituição é normalmente escrita como :s/pattern/string/ Isso procura um padrão em uma linha e o substitui por uma string. :~ repete o último comando substituto, mas usa a pesquisa mais recente por padrão.

  2. Experimente este padrão: /\<h.*s\>

/ é usado para iniciar uma pesquisa em Ex / Vim, \ < significa coincidir com o início da palavra, h corresponde a h,. * onde. corresponde a qualquer caractere único e * repete isso zero ou mais vezes. * significa coincidir com zero ou mais caracteres. s combina s, \ > corresponde ao final da palavra.

  1. Experimente este padrão /words\?$

$ significa fim de linha quando usado em uma correspondência de padrão e \? significa que o caractere anterior é opcional. Isto irá corresponder palavra ou palavras no final de uma linha.

    
por 31.03.2011 / 13:17