Programa de terminal melhor para o Snow Leopard (OS X)

2

Alguém sabe um programa de terminal melhor para o Snow Leopard, que permite edição de texto? (ou seja, saltar para um personagem específico sem ter que usar as setas para ir um por um) etc.? obrigado!

UPDATE: Desculpe, eu quis dizer atualizar um comando que já estava escrito. Digamos que eu quisesse fazer algo parecido com script/generate migration add_field_to_something . Eu escrevi isso e o Rails gerou uma migração. Agora eu decido que quero me livrar dessa migração porque cometi algum tipo de erro. Para isso, preciso escrever script/destroy migration add_field_to_something . Agora, eu tenho três opções: 1) escrever todo o comando do início ao fim 2) Clique no botão 'up' para reproduzir o último comando, e depois na seta esquerda até chegar à palavra generate e depois excluir e escreva destroy ou 3) copie o último comando para um TextEdit, selecione-o com o mouse (ou pule as palavras com o comando + seta para esquerda para selecionar mais rápido - não é possível no terminal) e substitua-o pela palavra destroy , depois copie de volta para o terminal. Minha pergunta é - existe um programa de terminal que permite editar com o mouse / pular palavras como eu faço no TextEdit (ou seja, com o comando + seta para a esquerda) para economizar tempo?

Obrigado!

    
por Yuval 10.05.2010 / 03:30

6 respostas

3

Você está procurando um editor ou um programa de terminal? Um emulador de terminal é separado de um editor e não suporta o ponteiro do mouse.

EDITAR

Obrigado por esclarecer. Você pode estar interessado no shell zsh, que possui vários atalhos de teclado para mover o cursor:

  • Alt-A - Mover para o início da linha
  • Alt-E - Mover para o final da linha
  • Alt-F - Mover uma palavra para frente
  • Alt-B - Retroceder uma palavra

Além disso, o bash, que é o shell padrão, possui atalhos de teclado para mover para o começo e o fim da linha:

  • Ctrl-A - Mover para o início da linha
  • Ctrl-E - Mover para o final da linha
por 10.05.2010 / 03:33
4

Há muito o que você pode fazer com a edição da linha de comando em bash , o shell padrão. Observe que isso é independente de qual programa do Terminal é usado. Há muitas informações sobre a seção Edição de linha de comando do bash docs or checkout este screencast .

Atualizar De acordo com meu comentário sobre outra resposta, você pode usar M-f (opção + F) e M-b (opção + B) para avançar e recuar por palavra. O screencast que eu criei mostra como fazer isso. Ele também discute pesquisando o histórico de comandos usando C-r (algo que eu nunca tentei).

    
por 10.05.2010 / 03:50
3

Existem todos os tipos de dicas e truques no shell, nos quais esse tipo de coisa é rapidamente corrigido com atalhos de teclado e comandos do shell.

Por exemplo, usando o shell zsh e seu cenário de amostra, você tem uma quarta opção:

zsh% script/generate migration add_field_to_something

Oops! Eu não queria fazer isso. Deixe-me digitar isso ...

zsh% script/destroy !*

Corrigido! o !* significa: use todos os parâmetros do comando anterior .

Alternativamente, você poderia ter apenas digitado:

zsh% r generate=destroy

O comando r significa substituir no comando anterior. Assim, o comando anterior seria executado com generate substituído por destroy .

Eu acho que o que estou dizendo é que os programadores são preguiçosos. Muito preguiçoso. Eles pensaram em centenas de atalhos e truques de conclusão automática para tornar esses trabalhos rápidos e fáceis. Depois de aprender como usar um shell e otimizá-lo, você poderá ver que os comandos "fixing" usando a seleção de mouse talvez não sejam a rota mais eficiente ...

PS.

Muitos desenvolvedores de trilhos também configuram um arquivo de alias em ~/.zsh que é chamado de .zshrc .

alias sg='script/generate'

Então, isso economizaria ainda mais toques de tecla. script/destroy você pode querer não alias, apenas para evitar invocação acidental. ; -)

    
por 11.05.2010 / 17:12
2

Eu prefiro o iTerm para operações de terminal no OSX. link

O terminal permite a interação com o mouse (via xmouse padrão) e possui muitos terminais convencionais que não possuem.

    
por 10.05.2010 / 15:46
1

Outra opção é usar o modo shell do emacs. Se você estiver familiarizado com o emacs, você pode digitar M-x shell-mode, ele lhe dará um prompt normal. você pode usar todos os comandos normais de edição do emacs.

UM AVISO, como a seta para cima (ou C-p) realmente move o cursor para cima de uma linha, você precisa usar M-p e M-n para obter os comandos anterior e seguinte ...

Por tudo que eu sei, o vim pode ter um modo similar, mas eu acredito no culto ao Emacs, então ...

    
por 10.05.2010 / 16:41
1

Use o vi como seu editor (exportar EDITOR = vi) e então configure seu shell para usar o modo vi (set -o vi) e depois disso, você é de ouro. Deseja lembrar-se da enorme linha que você teve, aperte esc e barra para começar uma busca no histórico de comandos. Digite o primeiro par de caracteres que você digitou. Percorra-os ao bater o espaço para a frente e depois entre. Aproveite.

    
por 23.01.2011 / 11:15