行番号の左側のパディングを少なくします。

行番号の左側のパディングを少なくします。

-Nスイッチを内側に切り替えると、行less番号が表示されます。ところで、行の総数が少ないにもかかわらず、不必要に大量のパディングが追加されるようです。たとえば、man less行番号が有効な出力は次のようになります。

      1 LESS(1)
      2
      3 NAME
      4        less - opposite of more
      5 
      6 SYNOPSIS
      7        less -?
      8        less --help
      9        less -V
     10        less --version
     11        less [-[+]aABcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]
...
    940       Version 487: 25 Oct 2016 

合計行数を埋めるために必要な最小量を制御または減らす方法はありますか?

私はプログラムの解決策(パイプなど)を追求できることを知っていますが、cutこの動作を制御するスイッチや設定パラメータがあるかどうか疑問に思います。

ベストアンサー1

修正する

その機能がLessにすぐに追加されました。追加のコマンドラインオプションの形で, --line-num-width=N.以下の元の答えは、Lessバージョン570より前に有効でした。コミット履歴


元の答え

いいえ、パディングを減らすオプションはありません。パディングが入っています。line.cソースコードファイル:

/*
 * Display the line number at the start of each line
 * if the -N option is set.
 */
if (linenums == OPT_ONPLUS)
{
    char buf[INT_STRLEN_BOUND(pos) + 2];
    int n;

    linenumtoa(linenum, buf);
    n = (int) strlen(buf);
    if (n < MIN_LINENUM_WIDTH)
        n = MIN_LINENUM_WIDTH;
    sprintf(linebuf+curr, "%*s ", n, buf);
    n++;  /* One space after the line number. */
    for (i = 0; i < n; i++)
        attr[curr+i] = AT_BOLD;
    curr += n;
    column += n;
    lmargin += n;
}

MIN_LINENUM_WIDTHヘッダーファイルに7として定義されているパディング量は、less.h1000万行未満のファイルの数値ソートを維持するのに十分です。多すぎると思われる場合は、いつでも変更して再コンパイルできます。

おすすめ記事