O Vim cria uma macro ou comando customizado

2

Embora eu tenha usado o Vim há algum tempo, ainda sou um novato quando se trata de personalizá-lo. Não tenho certeza se o que tenho em mente pode ser feito. Aqui o que eu gostaria de fazer: Ao escrever um script bash eu tenho um modelo para comentar uma função

1  #!/bin/bash
2
3  ###########################################################
4  # template
5  # globals:
6  #   none
7  # returns:
8  #   none
9  ###########################################################
10
11
12 my_function () {
13 ...

O que estou fazendo atualmente é posicionar o cursor em line 11 e, em seguida, Emita o comando:

:3,9y

Isso puxa as linhas 3 a 9 para o buffer. Então eu bati em p e ele cola as linhas depois do cursor. Eu gostaria de simplificar esse processo. Posso alcançar o comportamento acima definindo algo como uma macro? Idealmente, eu definiria o arquivo .vimrc e não confiaria no script para ter o modelo exaclty nas linhas 3 a 9.

    
por nautical 14.11.2016 / 13:40

2 respostas

2

Você pode colocar o texto do seu banner em um registro nomeado:

let @c  = "###########################################################\n"
let @c .= "# template\n"
let @c .= "# globals:\n"
let @c .= "#   none\n"
let @c .= "# returns:\n"
let @c .= "#   none\n"
let @c .= "###########################################################"

e coloque com:

"cp
    
por 14.11.2016 / 14:45
1

snippets são como o :abbreviate dos esteróides, geralmente com inserções de parâmetros, espelhamento e várias paradas dentro deles. Um dos primeiros, muito famosos (e ainda amplamente utilizados) plugins Vim é snipMate (inspirado em o editor TextMate ); infelizmente, não é mais mantido; embora haja um garfo . Uma alternativa moderna (que requer o Python) é UltiSnips . Há mais, veja esta lista no Vim Tips Wiki .

Há três coisas a serem avaliadas: primeiro, os recursos do próprio mecanismo de snippet; segundo, a qualidade e a amplitude dos snippets fornecidos pelo autor ou por outros; terceiro, como é fácil adicionar novos trechos.

    
por 15.11.2016 / 11:03

Tags