Quando estou vim
, posso alterar o tamanho da guia com o seguinte comando:
:set ts=4
Também é possível definir o tamanho da guia para a cat
saída do comando?
cat
indentation
Meysam
fonte
fonte
expand
(do pacote coreutils) etabs
(do pacote ncurses), (2). e o significado de ts é [ T ] ab [ S ] top #Basta usar o seguinte código:
Onde n é o número de espaços que você deseja que as guias correspondam também. Para não precisar fazer isso toda vez que você inicia o shell, basta editar o seu
.bash_profile
in~/
e adicionar a linha acima ao final do arquivo.Para mais informações sobre o comando tabs, consulte:
fonte
ls
, colocar fora de casa pode não estar alinhado corretamente).Não há noção de abas ou paradas de abas
cat
; o programa apenas canaliza as entradas para a saída e trata as guias como qualquer outro caractere. Se o dispositivo de saída for um terminal, as guias serão tratadas de acordo com o comportamento que o terminal estiver configurado para fornecer.Os sistemas que implementam o POSIX.1 têm um comando chamado
tabs(1)
que ajustará o conceito do terminal de como as guias devem ser exibidas. Dependendo de um layout de guia específico, não é considerada uma boa idéia, pois alguém pode enviar seu arquivo para outro dispositivo, como uma impressora que não fará o que você deseja.Quando ajustar
ts
emvim
(ou simplesvi
), tudo o que você está fazendo é ajustar como as interpreta editor de caracteres de tabulação quando exibido. Não tem influência sobre o que acaba no arquivo.fonte
Com base nas respostas e exemplos acima, parece que o comando real que o OP queria é ...
cat somefile | expand -t4
Isso funciona para mim no Red Hat 6.4.
fonte
Para expandir as respostas já fornecidas,
expand
também é possível fazer uma lista de posições de tabulação. Isso é útil se o comprimento do conteúdo das diversas colunas variar muito.Encontrei esse requisito hoje, quando queria tornar a saída
openssl ciphers
mais legível:Usar apenas
expand -t31
aumentaria a largura da saída de cerca de 100 caracteres para mais de 160 caracteres.fonte
column
:openssl ciphers -v 'HIGH' | column -t
Muitos terminais suportam a configuração de paradas de tabulação variáveis. Aqueles que são vt100, linux e ou suportam o padrão EMCA-48, a maioria dos termos sobre linux suporta o tamanho da guia de configuração: xterm e family (uxterm, urxvt) xfce4-terminal, luit, Terminal, SecureTTY, entre outros.
Então, escrevi um script alguns anos atrás para definir minhas guias no login para cada 2 espaços - costumava usar 4, depois 3 por um curto período, e agora em 2 ....
Portanto, agora, se eu 'gato' um arquivo, as guias do arquivo serão expandidas para a configuração do meu terminal.
Se eu passei pelo vim ou mais, eles fazem sua própria expansão de guias, mas muitos utilitários usam guias.
Incluirá o script aqui para referência e / ou uso pessoal:
Espero que ajude...
fonte
De acordo com a página de manual, o gato não pode fazer isso sozinho. Mas você pode, por exemplo, executar a saída do gato através do
tr
filtro para substituir as guias com qualquer número de espaços que desejar:substituirá o caractere de tabulação por dois espaços.
Atualização: como apontado nos comentários deste post, isso realmente não funciona. No entanto, estou mantendo a resposta como um exemplo de como não fazê-lo.
fonte
'\t'
por apenas um espaço, não importa quantos espaços existam entre o segundo par de aspas #' '
tr
não funciona dessa maneira .. cada byte de arg 1 é substituído por cada byte correspondente de arg 2 ..... Portanto,printf '\t' |tr '\t' 'ळ'
imprime um único byte cujo valor hexadecimal é\xE0
.. que é o primeiro byte dos três UTF-8 bytes codificados que compõem o personagemळ
(cujo valor Unicode CodePoint é U + 0933)