Eu tenho um plug-in (um submódulo unido) que filtra arquivos de texto extremamente grandes para gerar um 'índice' útil. Gostaria de fornecer ao usuário a capacidade de ativar / desativar muitos dos filtros ... e gostaria que essa configuração persistisse em cada chamada do vim. (atualizações instantâneas em sessões simultâneas não são necessariamente necessárias)
Existe um mecanismo para fazer isso embutido no vim? Ou preciso criar e gerenciar um "arquivo de ponto" no $ HOME do usuário? Ou existe uma maneira padrão aceita de lidar com isso?
EDIT: Eu realmente não posso deixar o usuário definir uma variável global no vimrc, porque a lista de opções atualmente possui várias centenas de entradas e a interface atual é simplesmente "tipo d com o índice aberto" para remover da lista .
fonte
viminfo
inclui!
e, em seguida, certos tipos de variáveis g: serão armazenados persistentemente no arquivo viminfo, mas não é razoável para a maioria dos plugins modificar o viminfo nos usuários.g:boolVariable
e depois orientaram o usuário a defini-lo por conta própriavimrc
. Depois, basta verificar as opções que o usuário definiu e trabalhar a partir daí.Respostas:
Uma maneira de fazer isso é fazer com que seu plug-in defina uma variável global que armazene o caminho para o arquivo específico "configurações persistentes / filtros ativados". Isso é semelhante ao modo como vários plugins que precisam 'armazenar em cache' alguns valores funcionam. Portanto, a documentação pode ficar assim:
Você pode usar a
$HOME
variável para criar um valor padrão para esse caminho e armazenar seus filtros ativados lá. Os usuários podem alterar o caminho alterando a variável acimavimrc
. Suponho que você pretenda oferecer alguns meios (funções, comandos, mapas de teclas) para habilitar / desabilitar convenientemente vários filtros em tempo real, enquanto usa seu plug-in (filtros que você lembra nesse arquivo), para que o usuário não precise lidar com eles diretamente. Caso contrário, é mais simples permitir que o usuário modifique uma variável global que armazena uma lista / ditado etc. de filtros ativados (que podem "persistir" mantendo a variável salvavimrc
) e, em vez disso, leia-a (como no comentário de Tumbler41 acima).Para mais detalhes, você pode acompanhar como g: neocomplcache_temporary_dir é definido e usado no
neocomplcache.vim
plug-in do Shougo .Além disso, você pode serializar (salvar / restaurar) facilmente qualquer variável vim (mesmo um dicionário) nesse arquivo usando algo como isto .
fonte