Cuando estoy dentro vim
, puedo cambiar el tamaño de la pestaña con el siguiente comando:
:set ts=4
¿Es posible establecer el tamaño de la pestaña para la cat
salida del comando también?
cat
indentation
Meysam
fuente
fuente
expand
(desde el paquete coreutils) y eltabs
comando (desde el paquete ncurses), (2). y el significado de ts es [ T ] ab [ S ] topSolo usa el siguiente código:
Donde n es el número de espacios que desea que las pestañas correspondan también. Con el fin de no tener que hacer esto cada vez que se inicia el shell, simplemente editar su
.bash_profile
en~/
y añadir la línea anterior al final del archivo.Para obtener más información sobre el comando de pestañas, consulte:
fuente
ls
out puede parecer que no está alineado correctamente).No hay noción de pestañas o tabulaciones
cat
; el programa simplemente canaliza las entradas a la salida y trata las pestañas como cualquier otro personaje. Si el dispositivo de salida es un terminal, las pestañas se manejarán de acuerdo con el comportamiento que el terminal esté configurado para proporcionar.Los sistemas que implementan POSIX.1 tienen un comando llamado
tabs(1)
que ajustará el concepto del terminal de cómo se deben mostrar las pestañas. Dependiendo de un diseño de pestaña en particular, no se considera una buena idea, ya que alguien puede enviar su archivo a otro dispositivo como una impresora que no hará lo que usted pretendía.Cuando ajuste
ts
envim
(o simplevi
), todo lo que está haciendo es regular cómo el editor interpreta los caracteres de tabulación cuando se muestre. No tiene relación con lo que termina en el archivo.fuente
Basado en las respuestas y ejemplos anteriores, parece que el comando real que el OP quería es ...
cat somefile | expand -t4
Esto funciona para mí en Red Hat 6.4.
fuente
Para ampliar las respuestas ya dadas,
expand
también puede tomar una lista de posiciones de tabulación. Esto es útil si la longitud del contenido de las diversas columnas varía mucho.Encontré este requisito hoy cuando quería hacer que la salida fuera
openssl ciphers
más legible:Usar solo
expand -t31
aumentaría el ancho de la salida de alrededor de 100 caracteres a más de 160 caracteres.fuente
column
:openssl ciphers -v 'HIGH' | column -t
Muchas terminales admiten la configuración de tabulaciones variables. Los que son vt100, linux y / o son compatibles con el estándar EMCA-48 sí, la mayoría de los términos en el tamaño de la pestaña de configuración de soporte de linux: xterm y family (uxterm, urxvt) xfce4-terminal, luit, Terminal, SecureTTY, entre otros.
Así que escribí una secuencia de comandos hace unos años para configurar mis pestañas al iniciar sesión en cada 2 espacios: solía usar 4, luego 3 por un momento, y ahora en 2 ...
Entonces, si 'gato' un archivo, las pestañas en el archivo se expandirán a la configuración de mi terminal.
Si pasé por vim o más, hacen su propia expansión de pestañas, pero muchas utilidades usan pestañas.
Incluirá el script aquí para referencia, y / o uso personal:
Espero eso ayude...
fuente
Según la página de manual, cat no puede hacerlo solo. Pero puede, por ejemplo, ejecutar la salida de cat a través del
tr
filtro para reemplazar las pestañas con cualquier cantidad de espacios que desee:reemplazará el carácter de tabulación con dos espacios.
Actualización: como se señaló en los comentarios a esta publicación, esto en realidad no funciona. Sin embargo, mantengo la respuesta como un ejemplo de cómo no hacerlo.
fuente
'\t'
con un solo espacio, sin importar cuántos espacios haya entre el segundo par de citas' '
tr
no funciona de esa manera ... cada byte de arg 1 se sustituye por cada byte correspondiente de arg 2 ..... Por lo tanto,printf '\t' |tr '\t' 'ळ'
imprime un solo byte cuyo valor hexadecimal es\xE0
... que es el primer byte de los tres UTF-8 bytes codificados que forman el carácterळ
(cuyo valor Unicode CodePoint es U + 0933)