2012-05-28 12 views
18

que parezca set tabstop=4 en VIM, pero no sé cómo configurarlo en fiestaCómo establecer 4 pestaña espacio en bash

por ejemplo:

echo -e "1234567890\t321\n1\t2\n123\t1" 

salida de corriente:

1234567890  321 
1  2 
123  1 

quiero salida como esta:

1234567890 321 
1 2 
123 1 

Se puede demostrar en cualquier lugar, al igual que cat somefile o php -r 'echo "\t123";'

¿Cómo puedo configurar tamaño de la pestaña en bash?

+0

Parece como si no se puede cambiar (esa es la respuesta que he encontrado) Podría hacer espacios en su lugar, pero supongo que ya sabe: p – keyser

Respuesta

38

Eso no es una propiedad de su caparazón (o php o cat). Es tu terminal la que administra la salida.

utilizar el comando tabs para cambiar el comportamiento:

$ tabs 4 

$ echo -e "a\tb"  
a b 
$ tabs 12 

$ echo -e "a\tb" 
a   b 

(tabs se especifica en POSIX, y la salida anterior se "falsean": sigue siendo un carácter de tabulación entre las dos letras.)

+3

Una nota: = tabs = se especifica en ** Unix ** (POSIX con la opción XSI), no en POSIX. Los sistemas que se ajustan a POSIX pero no a Unix no necesitan implementar un comando = tabs =. –

+0

NB: las 'pestañas' pueden no funcionar en algunas conchas de 'ceniza' –

+2

Adición: El paginador "menos" no se ve afectado, por lo tanto, utilice "menos -x4"; Para "git diff" use "git config --global core.pager" menos -x4 '" – Mikl

1

Puede establecer intervalos regulares o irregulares con la utilidad tabs. Funcionará ya sea que esté haciendo su propia salida, usando cat para generar un archivo que ya incluye pestañas o utilizando la salida de un programa que no controla.

Sin embargo, si está controlando su salida, es preferible utilizar printf en lugar de echo y formatear cadenas en lugar de pestañas.

$ printf '%-12s%8.4f %-8s%6.2f\n' 'Some text' 23.456 'abc def' 11.22 
Some text 23.4560 abc def 11.22 
$ format='%*s%*.*f %*s%*.*f\n' 
$ printf "$format" -12 'Some text' 8 4 23.456 -8 'abc def' 6 2 11.22 
Some text 23.4560 abc def 11.22 

A menos que quiera que alguien sea capaz de controlar la salida de su programa mediante la utilidad tabs.

0

Puede utilizar setterm para establecer este

setterm -regtabs 4 

lo puse en mi .bash_profile pero no es Bash relacionados específicamente

Cuestiones relacionadas