Se você pode LIGAR A CORREÇÃO AUTOMÁTICA E NOME DO ARQUIVO! Essas são provavelmente as duas coisas que você economizará mais tempo. Em seguida, aprenda a usá-los - Bash e Zsh têm preenchimento de guias. O Ksh tem uma barra invertida de escape ineficiente, então eu recomendaria contra o Ksh.
Eu uso o Zsh, mas aliases como esse funcionariam em quase qualquer shell, exceto o Csh:
alias l='ls -FC --color=tty'
alias ls='ls -FC --color=tty'
alias h=history
alias m=more
alias vi=vim
alias cx='chmod +x'
Parece que um pseudônimo para 'ps' deve estar lá, mas eu me vejo usando 'ps' de várias maneiras e não encontrei nada até agora.
No Zsh, configure sua variável RPROMPT (não um erro de digitação!):
RPROMPT='%d'
O diretório inteiro aparece no lado direito da linha de comando, pronto para cortar e colar. Mais sobre isso mais tarde.
Você deve usar um Vim moderno compilado adequadamente, devido à capacidade de ter várias janelas vim em um arquivo e vários buffers. Seu .vimrc pode ter coisas como esta:
set mouse=c
set ml
set mls=5
set nowrap
set nobackup
set nonu
set showmatch
set tabstop=4
set shiftwidth=4
set showmode
set showcmd
set ruler
set notextauto
set laststatus=2
set mps=(:),{:},[:],<:>
set modelines=0
Muitas são preferências pessoais, mas acredito que as guias de 8 espaços tornam o código menos legível, e há um estudo por aí para provar isso.
Além disso, o "mouse = c" é importante. Você não deve usar o mouse para se mover dentro de um arquivo. Retirar as mãos do teclado, tocar no mouse e movê-las de volta é lento. Use o movimento do cursor "hjkl" e outras teclas de paginação e movimento do cursor.
Se você estiver usando o X11, faça algumas coisas na sua configuração do Xterm. Isso sai do meu arquivo .Xresources:
XTerm*VT100.scrollBar: true
XTerm*VT100.saveLines: 1000
XTerm*VT100.cutNewLine: false
XTerm*VT100.cutToBeginningOfLine: false
XTerm*VT100.charClass: 33:48,35:48,37:48,42:48,45-47:48,64:48,95:48,126:48
XTerm*VT100*translations: #override \n\
<Key>F2: insert-selection(PRIMARY,CUT_BUFFER0)
Dê ao Xterm uma barra de rolagem por padrão, salve 1000 linhas de texto no buffer, isso é bastante padrão.
A diretiva charClass faz com que uma "palavra" inclua itens como '.', '/' E '*'. Clique duas vezes em qualquer parte de um nome de arquivo separado por '/' e você obtém a coisa toda, menos os caracteres ':'.
cutToBeginningOfLine funciona com o Zsh RPROMPT acima. Clique três vezes no caminho do diretório de trabalho atual que aparece no RHS da sua linha de comando e você escolhe apenas o caminho: a cópia é interrompida no início da palavra. Altamente eficiente quando você estiver acostumado.
Os recursos X acima também transformam a chave em colar. Dessa forma, depois de copiar (provavelmente usando o mouse), você pode colar sem mover a mão de volta ao mouse para clicar.