Під час написання коду 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)
І я хочу скопіювати одну з різних команд у термінал, щоб перевірити її.
Спочатку, коли я копіюю і вставляю один із цих рядків, працює нормально, але якщо я змінив код і хочу запустити тест ще раз, я опиняюсь, що натискаю стрілку вгору, щоб дістатися до попередньої команди в моїй історії. Але оскільки команда мала провідний пробіл, я отримую якусь іншу команду. Що ще гірше це те, що часто попередня команда дуже схожа; можливо я додав прапор --вербоза чи щось подібне, тому я не завжди його відразу спіймаю.
В даний час моє вирішення полягає в тому, що я повинен бути обережним, щоб скопіювати команду з початку першого символу без пробілу або мені доведеться перевстановити команду. Обидва ці варіанти порушують мій ритм кодування, і я часто відчуваю, що бажаю кращого рішення.
У цьому модифікуючому прикладі моє питання:
Чи існує спосіб налаштувати gnome-термінал таким чином, що при натисканні стрілки вгору він дає останню команду, навіть якщо вона має провідну пробіл.
Я думаю, альтернативним рішенням буде ctrl + shift + c in vim, щоб скопіювати рядок у буфер обміну, але lstrip пробіл, але я вважаю за краще термінальний злом.
HISTIGNORE?