Quero ter uma maneira rápida de definir a 'paste'opção Vim , inserir algum texto e reverter para o valor anterior de 'paste'.
Um caso de uso típico insere o conteúdo da área de transferência do SO literalmente, independentemente de qualquer reescrita no modo de inserção que possa estar ativa, como recuo automático e sem alterar o estado do Vim. Outro caso de uso seria permitir que um recurso de macro do SO injete pressionamentos de tecla no Vim e os interprete como texto literal.
Obviamente, isso generaliza para outras opções - a idéia geral é definir algumas opções, mas apenas pela duração de uma viagem pelo modo de inserção.
Basicamente, quero vincular uma sequência de teclas (por exemplo _i) a uma macro que faz isso
:set paste
i…<Esc>
:set nopaste
onde, com i…<Esc>isso, mude para o modo de inserção (como no icomando) e retome a macro ao retornar ao modo de comando, exceto que eu quero terminar com o 'paste'ativo ainda, se estiver ativo anteriormente. Como posso fazer isso?
Nota: O conteúdo da área de transferência do SO é mapeado para o "*registro . Quando isso funciona, a 'paste'opção não é muito útil. O cenário motivador para esta pergunta é para aqueles momentos em que as condições para "*suporte ao registro não são atendidas - o Vim não é compilado com o +xterm_clipboardrecurso ou está sendo executado em um terminal como Screen ou SSH que o isola do servidor X ambiente.
+ou*registrar?