ターミナル上で長い行の折返しをさせないようにする
Pocket

普段利用する際には問題ないのだが、本当にごくたまに、ターミナル上で長い行がいる場合、折り返さずに切り落として表示していほしいことがある。
(今回の場合、自分でも何をトチ狂ったのかbashファンクションでインクリメンタルサーチを作ってたので、そこで困ったという背景)

表示される内容がASCIIだけであれば、cutなどでターミナル幅を超える文字数を削除するようにすればいいのだが、UTF-8とかが含まれているとそれも難しくなってくる。
さて、どうすればいいのだろう…?と調べていたところ、どうやらDECエスケープシーケンスを利用してターミナル側の行末オートワープ機能を無効化してやればいいようだ(こんなオプションがあったのか…)。

Sponsored Links

printf '\033[?7l' # 行末オートワープ機能(折返し機能)の無効化
command ...
printf '\033[?7h' # 行末オートワープ機能(折返し機能)の有効化

 

これで、ターミナルの幅を超える内容は折り返されずに非表示になる。
(あまり役に立つ機会は多くないだろうけど)

 

【参考】

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*