Pergunta

Como posso fazer vi - Vim Nunca usar abas (converter espaços em tabulações, mau!), faz com que a tecla tab == 4 espaços, eo código travessão automaticamente após encaracolado blocos cinta como Emacs faz?

Além disso, como faço para salvar essas configurações para que eu nunca tem que introduzi-los novamente?

Já vi outras questões relacionadas a este, mas sempre parece ser um pouco fora do que eu quero.

Foi útil?

Solução

Como tem sido apontado em um par de respostas abaixo, o método preferido agora não é para uso smartindent, mas sim para usar o seguinte (em sua vimrc ):.

filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

Em seu .vimrc : file :

set smartindent
set tabstop=4
set shiftwidth=4
set expandtab

Os arquivos de ajuda levar um pouco de tempo para se acostumar, mas quanto mais você ler, melhor Vim recebe:

:help smartindent

Mesmo melhor, você pode incorporar essas configurações em sua fonte para portabilidade:

:help auto-setting

Para ver as configurações atuais:

:set all

Como graywh pontos nos comentários, smartindent foi substituído por cindent que "funciona de forma mais inteligente", embora ainda principalmente para línguas com C-como sintaxe:

:help C-indenting

Outras dicas

relacionada, se você abrir um arquivo que usa ambas as tabulações e espaços, assumindo que você tem

set expandtab ts=4 sw=4 ai

Você pode substituir todas as guias com espaços em todo o arquivo com

:%retab

A melhor maneira de obter recuo específico-filetype é usar filetype plugin indent on em seu vimrc. Em seguida, você pode especificar coisas como set sw=4 sts=4 et em .vim / ftplugin / c.vim, por exemplo, sem ter que fazer aqueles global para todos os arquivos que estão sendo editados e outras sintaxes tipo não-C vai ter recuado corretamente, demasiado (mesmo lisps ) .

Para ter guias de 4 espaço na maioria dos arquivos, bens de char 8-wide guia em Makefiles, e recuo automático em vários arquivos, incluindo C / C ++, colocar isso em seu arquivo ~/.vimrc:

" Only do this part when compiled with support for autocommands.
if has("autocmd")
    " Use filetype detection and file-based automatic indenting.
    filetype plugin indent on

    " Use actual tab chars in Makefiles.
    autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab
endif

" For everything else, use a tab width of 4 space chars.
set tabstop=4       " The width of a TAB is set to 4.
                    " Still it is a \t. It is just that
                    " Vim will interpret it to be having
                    " a width of 4.
set shiftwidth=4    " Indents will have a width of 4.
set softtabstop=4   " Sets the number of columns for a TAB.
set expandtab       " Expand TABs to spaces.

Em muitos sistemas Linux, como o Ubuntu, o arquivo .vimrc não existe por padrão, por isso é recomendado que você criá-lo em primeiro lugar.

Não use o arquivo .viminfo que existem no diretório home. Ele é usado para uma finalidade diferente.

Passo 1: Vá para o seu diretório home

cd ~

Passo 2: Criar o arquivo

vim .vimrc

Passo 3: Adicione a configuração dito acima

filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab

Passo 3:. Salvar arquivo, pressionando Mudança + ZZ

A maneira recomendada é usar recuo baseada filetype e só usar smartindent e cindent se isso não é suficiente.

Adicione o seguinte ao seu .vimrc

set expandtab
set shiftwidth=2
set softtabstop=2
filetype plugin indent on

Hope isso ajuda como sendo uma resposta diferente.

editar o seu ~ / .vimrc

$ vim ~/.vimrc

adicionar as seguintes linhas:

set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

A partir da VIM wiki :

:set tabstop=4
:set shiftwidth=4
:set expandtab

O auto-indent é baseado no modo de sintaxe atual. Eu sei que se você está editando Foo.java, em seguida, entrar em uma { e bater Enter travessões a seguinte linha.

Quanto aos guias, existem duas configurações. Dentro Vim, digite um cólon e, em seguida, "Conjunto tabstop = 4", que vai definir as abas para exibição como quatro espaços. Resultado do cólon e de novo tipo "expandtab conjunto", que irá inserir espaços para as abas.

Você pode colocar essas configurações em um Vimrc (ou _vimrc no Windows) em seu diretório pessoal, assim você só tem que digitar uma vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top