tecla Tab == 4 espaços e auto-travessão após chaves no Vim
-
04-07-2019 - |
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.
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.