-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.h
1000万行未満のファイルの数値ソートを維持するのに十分です。多すぎると思われる場合は、いつでも変更して再コンパイルできます。