É possível criar e usar menus no vim (baseado em terminal)?

14

Estou configurando caixas Linux virtualizadas (como servidores de desenvolvimento local) para desenvolvedores em uma empresa que é basicamente baseada no Windows, e alguns desenvolvedores fazem rachaduras negativas sobre o vim (entre outras coisas). (Eles parecem representar o Linux / Unix de alguma forma, e provam que o ambiente é difícil de usar.) Eu me lembro de quando fui forçado a usar o vim (os administradores se recusaram a instalar o emacs!) E o difícil início curva de aprendizagem, então eu sou um pouco simpático. Ocorreu-me que, em vez de apresentá-las a nano (o que provavelmente nunca seriam passadas), seria possível configurar menus nano-like no vim para facilitar a transição. (Eu encontrei um arquivo .vimrc muito amigável para iniciantes para dar a eles, mas ele não tem nada parecido com menus estilo nano).

O único problema é que a única coisa que eu consegui achar que afirma que é possível configurar menus no vim (não no gvim) não funcionou, e minhas tentativas de corrigir o problema me deixaram com outro problema resolver. Antes de perder muito tempo, gostaria de saber se é de fato possível, já que parece haver muito pouca informação sobre como fazê-lo.

    
por iconoclast 19.07.2012 / 23:48

2 respostas

14

Sim, é possível. Você pode carregar menu.vim (as definições padrão do menu gvim) ou pode começar do zero e criar o seu próprio e, em seguida, acessá-las através de :emenu . Isso não dá a você menus nano sempre visíveis, embora; permite navegar pelos menus usando a conclusão da guia de linha de comando.

Se o usuário não tiver um vimrc, você vai querer começar desabilitando a compatibilidade do vi:

:set nocompatible

Habilite a conclusão da linha de comando inteligente em <Tab> (ative a listagem de todas as opções possíveis e navegue pelos resultados com <Up> , <Down> , <Left> , <Right> e <Enter> ):

:set wildmenu

Faça ciclos repetidos entre todas as escolhas correspondentes:

:set wildmode=full

Carregue os menus padrão (isso aconteceria automaticamente no gvim, mas não no terminal vim):

:source $VIMRUNTIME/menu.vim

Após esses quatro comandos, você pode acionar manualmente a conclusão do menu chamando a conclusão da tabulação no comando :emenu , fazendo :emenu<space><tab>

Você pode navegar pelos resultados usando a tecla tab e as teclas de seta e a tecla Enter (expande os submenus e seleciona os itens). Você pode, então, tornar isso mais conveniente indo um passo além, e ligando um mapeamento para abrir o menu sem ter que digitar :emenu toda vez:

Faça Ctrl-Z em um mapeamento, como pressionar <Tab> interativamente na linha de comando:

:set wildcharm=<C-Z>

E faça uma ligação que invoque automaticamente :emenu completion para você:

:map <F4> :emenu <C-Z>
    
por 07.12.2012 / 19:09
1

Eu mesmo tive o problema de não lembrar de todos os comandos e combinações de teclas dos plugins que estou usando. Além disso, eu queria ter maneiras simples de executar rapidamente comandos sem ter que definir novos mapeamentos de teclas ou inventar comandos para acessá-los.

Vim-Venu

Eu escrevi um pequeno plug-in de menu vim que permite definir menus para cada tipo de arquivo que você pode editar com vim. Desta forma, você pode definir a opção de menu 'Compile' para diferentes tipos de arquivos e iniciar as instruções corretas para compilar o código dependendo do arquivo que você está editando (.py, .c, .c ++, ...). Ou crie um submenu para os comandos de plug-in 'Table' em um arquivo de marcação.

Confira aqui: link

Como uma nota secundária: acho que todos devem escolher seu próprio editor de texto favorito. O Vim tem uma pequena barreira (que vale a pena aprender!). Se alguém não está disposto a aprender, então vim não será de muita utilidade para essa pessoa.

    
por 08.12.2018 / 16:34

Tags