Como ligar: Configure para funcionar exatamente como: set

7

Costumo começar a digitar s antes de soltar completamente a tecla Shift, e ter que corrigir o comando depois é um pouco chato.

Existe alguma maneira de criar :Set ...um apelido para :set ...?

ThiefMaster
fonte
Eu tenho exatamente esse mesmo problema com :sp, :vse:e
Shahbaz 21/03

Respostas:

14

Embora você não possa definir comandos personalizados começando com caracteres minúsculos (como os integrados), nada impede que você faça o oposto, definindo comandos do usuário que espelham os incorporados.

:command! -nargs=* -complete=option Set set <args>

Se você fizer isso para comandos adicionais, apenas garanta que o número de argumentos / taken :range/ bang ( [!]) corresponda. Veja :help :command-nargs(e parágrafos seguintes) as opções disponíveis.

Atenção

A digitação superficial não o levará muito longe com o Vim; em vez de confiar nessas soluções alternativas (que não funcionam tão bem em outras áreas como mapeamentos e movimentos), desacelere deliberadamente por um período de tempo e trabalhe na precisão da digitação. Investir em um teclado de alta qualidade também pode ajudar.

Ingo Karkat
fonte
Eu tenho um teclado decente (WASD com mx clears). Mas, em muitos casos, apenas inicio o gvim na minha barra de tarefas (sim, usuário do Windows, sem comentários: p) :set syntax=whatevere , em seguida, mudo para o modo de inserção se precisar de um bloco de rascunho de código para alguma coisa.
ThiefMaster 21/03
5

Você poderia remapear ;para :, dessa forma, não há nenhuma chave mais Turno envolvidos:

:noremap ; :

Isso tem a desvantagem óbvia de perder a função da ;tecla ( "Repita as últimas vezes f, t, F ou T [contagem]." ), Para mapear isso para :(e, portanto, trocar ;e :), você pode usar:

:noremap ; :
:noremap : ;

O problema com isso, porém, é que quando você estiver acostumado a isso, você será semi-aleijado em uma instalação padrão do Vim ....

Martin Tournoij
fonte
Essa é uma boa ideia, na verdade, quanto menos vezes o turno for usado, melhor. Além disso, eu ouvi você sobre ficar semi-aleijado. Troquei minhas 1..90-=chaves por suas alternativas !..()_+nos arquivos C, C ++ e Haskell, pois as alternativas são usadas com muito mais frequência e é muito bom, mas fico sem aleijado ao usar o vim, onde minhas configurações não estão em vigor.
Shahbaz 22/03
O uso de abreviações de comandos e a omissão de espaços desnecessários após o comando seriam trocadas :e, ;em uma instalação padrão, não serão semiparalgadas: :no; :|no: ;<cr>(12 caracteres devem ser digitados).
Hotschke
3

Você pode simplesmente definir uma abreviação.

:cab Set set

Como o carpetsmoker mencionou, isso será substituído Setpor settodos os lugares na linha de comando. Para evitar esse uso

:cnoreab Set set
Luc Hermitte
fonte
5
Note que este irá substituir Setcom set todos os lugares na linha de comando, e não apenas quando você digita:Set
Martin Tournoij