При написании кода на Python (используя gvim) я часто сохраняю сложные команды командной строки для тестовых случаев, сохраненных в моих строках документации. Распространенная ошибка, которую я трачу впустую, - это копирование всей строки из файла python и вставка его в терминал.
Например, одна из моих функций выглядит так
@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)
И я хочу скопировать одну из различных команд в терминал, чтобы проверить это.
Первоначально, когда я копирую и вставляю одну из этих строк, все работает нормально, но если я изменяю код и хочу снова запустить тест, я обнаруживаю, что нажимаю стрелку вверх, чтобы перейти к предыдущей команде в моей истории. Но так как у команды были первые пробелы, я получаю другую команду. Хуже всего то, что предыдущая команда часто очень похожа; может быть, я добавил флаг --verbose или что-то в этом роде, поэтому я не всегда ловлю его сразу
В настоящее время мой обходной путь заключается в том, что я должен быть осторожен, чтобы скопировать команду с начала первого непробельного символа, или мне нужно повторно вставить команду. Оба этих варианта нарушают мой ритм кодирования, и я часто нахожусь в поиске лучшего решения.
На этом модном примере мой вопрос:
Есть ли способ настроить gnome-терминал таким образом, чтобы при нажатии стрелки вверх он выдавал последнюю команду, даже если он имеет начальный пробел.
Я думаю, что альтернативный обходной путь будет для Ctrl + Shift + C в Vim, чтобы скопировать строку в буфер обмена, но пропустить пробел, но я бы предпочел терминальный взломать.