Vim-Vênu

Vim-Vênu

Estou configurando caixas Linux virtualizadas (como servidores de desenvolvimento locais) para desenvolvedores de uma empresa que é principalmente baseada no Windows, e alguns desenvolvedores fazem críticas negativas sobre o vim (entre outras coisas). (Parece-lhes que representa o Linux/Unix de alguma forma e prova que o ambiente é obtusamente difícil de usar.) Lembro-me de quando fui forçado a usar o vim pela primeira vez (os administradores de sistemas se recusaram a instalar o emacs!) e a dificuldade inicial curva de aprendizado, então sou um tanto simpático. Ocorreu-me que, em vez de apresentá-los nano(o que eles provavelmente nunca passariam), seria possível configurar menus semelhantes a nano no vim para facilitar a transição. (Encontrei um arquivo .vimrc muito amigável para iniciantes para fornecer a eles, mas ele não possui nada parecido com menus no estilo nano.)

O único problema é a única coisa que consegui descobrir 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 mais um problema para resolver. Antes de perder muito tempo gostaria de saber se isso é de fato possível, pois parece haver muito pouca informação sobre como fazê-lo.

Responder1

Sim, é possível. Você pode carregar menu.vim(as definições de menu padrão do gvim) ou simplesmente começar do zero e criar as suas próprias e acessá-las através do :emenu. No entanto, isso não oferece menus sempre visíveis do tipo nano; oferece a capacidade de navegar pelos menus usando o preenchimento de guias da linha de comando.

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

:set nocompatible

Ative a conclusão inteligente da linha de comando <Tab>(permita listar todas as opções possíveis e navegar pelos resultados com <Up>, <Down>, <Left>, <Right>e <Enter>):

:set wildmenu

Faça pressionamentos repetidos para alternar entre todas as opções 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 invocando a conclusão da guia no :emenucomando, fazendo:emenu<space><tab>

Você pode navegar pelos resultados usando a tecla Tab e as teclas de seta e a tecla Enter (ela expande submenus e seleciona itens). Você pode tornar isso mais conveniente dando um passo adiante e vinculando um mapeamento para abrir o menu sem precisar digitar :emenutodas as vezes:

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

:set wildcharm=<C-Z>

E faça uma ligação que invoque automaticamente :emenua conclusão para você:

:map <F4> :emenu <C-Z>

Responder2

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

Vim-Vênu

Eu escrevi um pequenoplug-in de menu vimque permite definir menus para cada tipo de arquivo que você pode editar com o 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 comandos do plugin 'Tabela' em um arquivo markdown.

Confira aqui: https://github.com/Timoses/vim-venu

Como observação lateral: acho que todos deveriam escolher seu editor de texto favorito. O Vim tem uma pequena barreira (que vale a pena aprender!). Se alguém não estiver disposto a aprender, o vim não será muito útil para essa pessoa.

informação relacionada