Komut satırı geçmişini incelemek için gnome terminalindeki yukarı ok, baştaki boşluk ile komutları yoksayar. Bir geçici çözüm var mı?


0

Python kodunu yazarken (gvim kullanarak), dokümanlarımda kaydedilen test durumları için genellikle karmaşık komut satırı komutları tutarım. Yaptığım yaygın bir zaman kaybı hatası, tüm satırı python dosyasından kopyalayıp terminale yapıştırmak.

Örneğin, fonksiyonlarımdan biri buna benziyor

@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)

Ve test etmek için çeşitli komutlardan birini terminale kopyalamak istiyorum.

Başlangıçta bu satırlardan birini kopyalayıp yapıştırdığımda iyi çalışıyor, ancak kodu değiştirip testi tekrar çalıştırmak istersem, geçmişimdeki önceki komutu almak için kendimi yukarı oka basarak buluyorum. Ama komutun önünde boşluk olduğu için başka bir komut daha alıyorum. Bunu daha da kötüleştiren şey, genellikle önceki komutun çok benzer olmasıdır; belki bir --Beyaz bayrak veya başka bir şey eklemiştim, o yüzden hemen yakalayamıyorum.

Şu anda geçici çözümüm, ilk boşluk olmayan karakterin başından itibaren komutu kopyalamaya dikkat etmem veya komutu yerine getirmem gerektiğidir. Bu seçeneklerin ikisi de kodlama ritmimi bozuyor ve sıklıkla kendimi daha iyi bir çözüm için istediğimi düşünüyorum.

Bu aşağılayıcı örnek ile sorum şu:

Gnome-terminalini yukarı ok tuşuna bastığınızda size en son boşluk bıraksa bile son komutu verecek şekilde yapılandırmanın bir yolu var mıdır?

Sanırım alternatif bir geçici çözüm ciml + shift + c 'nin vim in panoya kopyalanması fakat boşlukları doldurmak için olacağını, fakat bir terminal kesmesini tercih ederim.

Yanıtlar:


3

Bunun nedeni ignorespace değeri $HISTCONTROL. itibaren man bash:

HISTCONTROL

Komutların nasıl olduğunu kontrol eden, iki noktalardan oluşan bir değerler listesi   geçmiş listesine kaydedildi. Eğer değerler listesi içeriyorsa   yoksay, boşluk karakteri ile başlayan satırlar   geçmiş listesine kaydedildi.

Neden olabilir HISTIGNORE Değişken, genellikle atlamak için komutlar içerir

Sadece kabuk geçmişinizi yeniden yapılandırın ~/.bashrc farklı varsayılanları ayarlayarak;

HISTIGNORE=ignoredups

Veya muhtemelen HISTIGNORE?
Daniel Beck

@DanielBeck: Teşekkürler, ben sadece bunu düzenliyordum
Ingo Karkat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.