Mapeamento da chave do líder do Vim para cópia e colagem em várias etapas

0

Quando preciso copiar e colar grandes blocos de código de uma página da Web, preciso fazer o seguinte passo de cada vez:

  1. : definir colar
  2. insira o modo de inserção do Vim
  3. colar a área de transferência
  4. definir nopaste
  5. entrar no modo normal

Espero fazer isso de uma vez com um mapeamento de chave de líder para o P

Obrigado pela ajuda!

    
por Josh 18.06.2017 / 17:33

1 resposta

0

Se o seu Vim tiver acesso à área de transferência da seleção / sistema X, você pode simplesmente colar via <C-r>* / <C-r>+ no modo de inserção ou diretamente no modo normal via "*p / "+p .

Apenas se não estiver funcionando, você precisará :set paste , pois o Vim não poderá dizer se você digitou isso (muito rapidamente) ou colou. Como qualquer ação de teclado pode ser a partir da entrada, é difícil automatizar isso, mas o Vim oferece a opção 'pastetoggle' para tornar a troca mais rápida:

'pastetoggle' 'pt'    string  (default "")
                        global
                        {not in Vi}
        When non-empty, specifies the key sequence that toggles the 'paste'
        option.  This is like specifying a mapping:
            :map {keys} :set invpaste<CR>
  Where {keys} is the value of 'pastetoggle'.
        The difference is that it will work even when 'paste' is set.
        'pastetoggle' works in Insert mode and Normal mode, but not in
        Command-line mode.

Por exemplo, com :set pastetoggle=<F11> , você precisa apenas de i<F11> (paste) <F11><Esc> .

    
por 04.08.2017 / 18:02

Tags