Minha configuração atual assume 8 espaços; como eu poderia redefinir isso?
Minha configuração atual assume 8 espaços; como eu poderia redefinir isso?
Respostas:
Isso depende do que você quer dizer. Deseja que os caracteres de tabulação reais em seu arquivo apareçam com 4 espaços de largura, ou por "tab" você quer dizer um recuo , gerado pressionando a tecla tab, o que resultaria no arquivo literalmente contendo (até) 4 caracteres de espaço para cada "guia" que você digita?
Dependendo da sua resposta, um dos seguintes conjuntos de configurações deve funcionar para você:
Para caracteres de tabulação que aparecem com quatro espaços :
set tabstop=4
Se você estiver usando o caractere de tabulação real no seu código-fonte, provavelmente também desejará essas configurações (na verdade, esses são os padrões, mas convém defini-los defensivamente):
set softtabstop=0 noexpandtab
Por fim, se você deseja que um recuo corresponda a uma única guia, você também deve usar:
set shiftwidth=4
Para recuos que consistem em 4 caracteres de espaço, mas são inseridos com a tecla Tab:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
Para tornar as configurações acima permanentes, adicione essas linhas ao seu vimrc .
Caso você precise fazer ajustes ou simplesmente queira entender o que essas opções significam, veja a seguir o que cada opção significa:
tabstop
A largura de um batente rígido medido em "espaços" - efetivamente a largura (máxima) de um caractere de tabulação real.
shiftwidth
O tamanho de um "recuo". Também é medido em espaços, portanto, se sua base de código recuar com caracteres de tabulação, você deseja
shiftwidth
igualar o número de caracteres de tabulação vezestabstop
. Isso também é usado por coisas como o=
,>
e<
comandos.
softtabstop
Definir isso para um valor diferente de zero, que
tabstop
fará com que a tecla tab (no modo de inserção) insira uma combinação de espaços (e possivelmente tabs) para simular paradas de tabulação nessa largura.
expandtab
Ativar isso fará com que a tecla tab (no modo de inserção) insira espaços em vez de caracteres de tabulação. Isso também afeta o comportamento do
retab
comando.
smarttab
A ativação dessa opção fará com que a tecla tab (no modo de inserção) insira espaços ou tabulações para ir para o próximo travessão da próxima tabstop quando o cursor estiver no início de uma linha (ou seja, os únicos caracteres anteriores são espaços em branco).
Para mais detalhes sobre qualquer um deles, veja no vim (por exemplo ):help 'optionname'
:help 'tabstop'
~/.vimrc
são as configurações do vim do usuário. A maioria das pessoas deixa as configurações do sistema em paz e apenas edita as configurações do usuário. Observe que ~/.vimrc
não existirá até que você o crie na maioria dos sistemas.
set softtabstop=4
recurso! Estou cansado de tentar ler seu código com less
, ou qualquer outro editor vim
, exceto , apenas para ver recuos malucos porque você redefiniu a guia para ser um número arbitrário de espaços (mesmo que o resto do sistema pense de outra forma)! :-)
tabstop=8
travessões que consistem em 4 espaços? Não consegui entender o motivo depois de ler as descrições das várias configurações. Outra resposta diz para usar, o tabstop=4
que faz um pouco mais de sentido para mim.
tabstop
opção controla a largura de um caractere de tabulação rígido. Se você deseja que seus recuos sejam compostos por 4 caracteres de espaço, em vez de caracteres de tabulação únicos com 4 larguras, a largura do caractere de tabulação não importa - mais ou menos . Na prática, você provavelmente deseja que a largura dos caracteres da tabulação seja diferente da largura dos seus recuos, para reduzir a chance de os caracteres da tabulação se disfarçarem como recuos apropriados. ( list
+ também expandtab
pode ajudar aqui) Além disso, as guias com 8 caracteres de largura são "o padrão" - seu terminal, Python e muitas outras ferramentas são padronizadas como as guias de 8 caracteres de largura.
Para definir isso permanentemente para o usuário atual, crie (ou edite) o .vimrc
arquivo:
$ vim ~/.vimrc
Em seguida, cole a configuração abaixo no arquivo. Depois que o vim for reiniciado, as configurações da guia serão aplicadas.
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
:retab
para converter existente tab
para spaces
. vim.wikia.com/wiki/Converting_tabs_to_spaces
Existem poucas configurações que definem o uso de espaços ou tabulações.
Então, aqui estão funções úteis que podem ser definidas no seu ~/.vimrc
arquivo:
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
Uso:
:call UseTabs()
:call UseSpaces()
Para usá-lo por extensões de arquivo, a seguinte sintaxe pode ser usada (adicionada a .vimrc
):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
Consulte também: Convertendo guias em espaços .
Aqui está outro trecho da Wikia que pode ser usado para alternar entre guias e espaços :
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
set expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
Ele permite usar 4 espaços para cada guia e um mapeamento F9para alternar as configurações.
Copiei e colei isso no meu arquivo .vimrc:
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
As 2 primeiras configurações significam que, quando pressiono Tab, recebo 4 espaços. A terceira configuração significa que, quando eu faço V>
(visual e recuo), também recebo 4 espaços.
Não é tão abrangente quanto a resposta aceita, mas pode ajudar pessoas que querem apenas algo para copiar e colar.
Coloque as configurações desejadas no arquivo ~ / .vimrc - Veja abaixo algumas diretrizes e práticas recomendadas.
Existem quatro maneiras principais de usar guias no Vim:
Sempre mantenha 'tabstop' em 8, defina 'softtabstop' e 'shiftwidth' para 4 (ou 3 ou o que você preferir) e use 'noexpandtab'. Em seguida, o Vim usará uma mistura de guias e espaços, mas digitando e se comportará como uma guia aparece a cada 4 (ou 3) caracteres.
Nota: Definir 'tabstop' com qualquer outro valor que 8 pode fazer com que seu arquivo pareça errado em muitos lugares (por exemplo, ao imprimi-lo).
Defina 'tabstop' e 'shiftwidth' como desejar e use 'expandtab'. Dessa forma, você sempre inserirá espaços. A formatação nunca será alterada quando 'tabstop' for alterado.
Defina 'tabstop' e 'shiftwidth' como você preferir e use uma | modeline | para definir esses valores ao editar o arquivo novamente. Funciona apenas ao usar o Vim para editar o arquivo.
Sempre defina 'tabstop' e 'shiftwidth' com o mesmo valor e 'noexpandtab'. Isso deve funcionar (apenas para recuos iniciais) em qualquer configuração de tabstop usada pelas pessoas. Pode ser bom ter guias após o primeiro não espaço em branco inserido como espaços, se você fizer isso. Caso contrário, os comentários alinhados ficarão errados quando 'tabstop' for alterado.
Fonte:
:help tabstop
:help tabstop
no vim.
Mais uma coisa, use
:retab
para converter os existentes tab
em spaces
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
:set sw=4
Consulte Dominando o Editor VI
Adicionar linha
set ts=4
no
~/.vimrc
arquivo por usuário
ou
/etc/vimrc
arquivo para todo o sistema
Meu básico ~ / .vimrc com comentário:
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>
Permanente para todos os usuários (quando você estiver sozinho no servidor):
# echo "set tabstop=4" >> /etc/vim/vimrc
Normalmente no novo servidor apt-get purge nano mc
e em todos os outros para economizar seu tempo. Caso contrário, você redefinirá o editor em git
, crontab
etc
F10
, nano
mas eu sempre faço alguns truques com o save (talvez F10
seja uma solução). ou não funciona screen
? Não me lembro, apenas odeio)