Mapeamento do separador s no vim

4

Estou tentando configurar algumas configurações básicas para o vim para torná-lo mais útil para mim. Uma das coisas que estou tentando fazer é mapear shift + tab para um caractere de tabulação literal, já que minha configuração do vim define guias para serem expandidas com espaços por padrão. Eu tentei mapear para a guia char usando esta referência , mas sem dados.

Quando tento pressionar shift + tab enquanto o modo de inserção está ativo, o vim envia um Z maiúsculo por cerca de um segundo, depois o remove e sai do modo de inserção com um bipe de erro do sistema. Eu já testei o shift + tab stroke com ^ V e output ^ [[Z em vim como descrito na referência, então não é o meu OS seqüestrando o pressionamento de tecla. Não sei exatamente o que está causando isso; entrada seria apreciada.

Meu .vimrc:

" Few basic settings first; I like syntax highlighting & line numbers
syntax on
set number

" Some settings with the list option
" I like to see non-printing characters like Tab & CR
set listchars=tab:▸\ ,eol:¬
set list

" Set tab behaviours: 4 spaces wide, expand <Tab> and >> with spaces
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
" This line maps shift+tab to a literal tab character
" Because I sometimes need a literal tab
set <s-tab>=    

A última linha mostra o caractere in no vim quando set list está em

    
por Calyo Delphi 15.06.2014 / 00:08

1 resposta

2

Tente isto:

:set t_kB=^[[Z

Você não digita os caracteres ^[ literalmente; para obter a seqüência de escape atual, pressione control - v e, em seguida, pressione a tecla de escape. Observe que a opção t_kB é igual à opção <S-Tab> .

No entanto, isso não mapeia <S-Tab> para <Tab> , apenas informa ao Vim qual sequência de escape seu terminal envia quando você pressiona essas duas teclas. Mas, neste ponto, você pode mapear <S-Tab> para <Tab> :

:noremap <S-Tab> <Tab>

Para fazer o Vim inserir um caractere de tabulação literal quando uma opção como 'expandtab' for definida:

:inoremap <S-Tab> <C-V><Tab>
    
por 15.06.2014 / 00:51