2010-09-10 7 views
46

Yo prefiero usar tab que white space (puede ser un poco diferente de la mayoría de los demás)Cómo utilizar solamente pestaña (no espacio) en vim

pero he encontrado, cuando golpeo Enter al final de la línea, agregará algunos espacios en blanco, pero no pestaña. Por lo tanto, tengo que eliminarlos y presionar , pestaña.

Quiero saber cómo configurar Vim como:

  1. uso exclusivo pestaña para sangrar las líneas
  2. una ficha ve como 4-espacios, pero en realidad es una pestaña
  3. cuando es golpeado enter al final de una línea, la nueva línea se inicia con sólo pestañas

he buscado en google para esto durante un tiempo, pero no se ha encontrado una buena respuesta. Gracias de antemano


ACTUALIZACIÓN

La respuesta @Alok ha proporcionado funciona bien en la mayoría de los casos. Pero acabo de descubrir, a veces, depende del tipo de archivo. Por ejemplo, si está editando un archivo haml, y hay un haml.vim en su vimfiles/indent/, todas las pestañas se convertirán a space. Por lo tanto, si desea que sea tab solamente, debe modificar (o eliminar) el archivo de sangría correspondiente.

+0

En lugar de modificar los archivos instalados, intente poner la configuración primordiales en '$ HOME/vimfiles/después/guión/haml.vim'. Ver ': ayuda después del directorio' para más información. – Nefrubyr

+2

Es común tener diferentes preferencias de tabulación/espacio para diferentes tipos de archivos. Mira mi screencast en Vimcasts.org, que muestra cómo [configurar las preferencias de espacio en blanco para diferentes tipos de archivos] (http://vimcasts.org/episodes/whitespace-preferences-and-filetypes/). Esta solución utiliza su vimrc, pero si desea configurar muchos tipos de archivos diferentes, es posible que prefiera utilizar el directorio posterior, como lo sugiere Nefrubyr. – nelstrom

+0

El truco/after/indent también funciona para deshacerse de esos molestos espacios en los archivos python, el archivo ofensivo para mirar es ftplugin/python.vim, simplemente copie la línea con setlocal y cópiela en un archivo en blanco como lo sugiere @ Nefrubyr, edítalo y restablece la cordura. – Paul

Respuesta

61

La configuración que está buscando son:

set autoindent 
set noexpandtab 
set tabstop=4 
set shiftwidth=4 

Como sola línea:

set autoindent noexpandtab tabstop=4 shiftwidth=4 

autoindent pueden ser sustituidos por smartindent o cindent, dependiendo de sus gustos. También mira filetype plugin indent on.

http://vim.wikia.com/wiki/Indenting_source_code

+0

Como dijo @freewind, no funciona bien cuando se trabaja con archivos '.haml'. En mi caso, uso ** vim janus ** y simplemente agrego la línea individual sugerida, pero no funciona para los archivos 'haml'. ¿Alguna idea? –

+0

Agrega 'softtabstop = -1', también. – Walf

Cuestiones relacionadas