Quando escrevo código python (usando gvim), geralmente mantenho comandos complexos de linha de comando para casos de teste salvos em minhas docstrings. Um erro comum de perda de tempo que eu faço é copiar toda a linha do arquivo python e colá-lo no terminal.
Para um exemplo, uma das minhas funções é semelhante a esta
@profile
def incremental_test(ibs, qaid_list, daid_list=None):
"""
Plots the scores/ranks of correct matches while varying the size of the
database.
Args:
ibs (list) : IBEISController object
qaid_list (list) : list of annotation-ids to query
CommandLine:
python dev.py -t inc --db PZ_MTEST --qaid 1:30:3 --cmd
python dev.py --db PZ_MTEST --allgt --cmd
python dev.py --db PZ_MTEST --allgt -t inc
python dev.py -t inc --db PZ_MTEST --qaid 1:30:3 --cmd
python dev.py -t inc --db PZ_Master0
python dev.py -t inc --db GZ_ALL --ninit 100 --noqcache
Example:
>>> from ibeis.all_imports import * # NOQA
>>> ibs = ibeis.opendb('PZ_MTEST')
>>> qaid_list = ibs.get_valid_aids()
>>> daid_list = None
"""
from ibeis.model.hots import automated_matcher
ibs1 = ibs
num_initial = ut.get_argval('--ninit', type_=int, default=0)
return automated_matcher.incremental_test(ibs1, num_initial)
E eu quero copiar um dos vários comandos no terminal para testá-lo.
Inicialmente, quando copio e colo uma dessas linhas funciona bem, mas se eu alterar o código e quiser executar o teste novamente, me vejo pressionando a seta para cima para acessar o comando anterior no meu histórico. Mas como o comando tinha espaços em branco iniciais, recebi outro comando. O que torna isso pior é que muitas vezes o comando anterior é muito semelhante; talvez eu tenha adicionado uma bandeira --verbose ou algo assim, então nem sempre o vejo imediatamente.
Atualmente, minha solução alternativa é que eu tenho que ter cuidado para copiar o comando desde o início do primeiro caractere que não seja espaço em branco ou eu tenho que repassar o comando. Ambas as opções quebram meu ritmo de codificação e muitas vezes me pego querendo uma solução melhor.
Com este exemplo modificador, minha pergunta é:
Existe uma maneira de configurar o gnome-terminal de tal forma que, quando você pressiona a seta para cima, ele lhe dará o último comando, mesmo que ele tenha espaço em branco no início.
Eu acho que uma solução alternativa seria para ctrl + shift + c no vim para copiar a linha para a área de transferência, mas lstrip o espaço em branco, mas eu preferiria um hack terminal.