web-dev-qa-db-ja.com

lessコマンドを動的に更新する方法はありますか?

私はwatchコマンドが好きですが、 その制限 があります。

watchの機能をlessで模倣できるかどうか知りたいです。実行中のスクリプトによって動的に変更されるため、主にディレクトリをスクロールする機能を探しています。

146
Zaid

lessでは、Fと入力して、ファイルの最後から読み続けることができます(tail -fなど)。 :eとファイル名を入力して別のファイルを表示できますが、残念ながら現在のファイルの名前を入力すると、lessはファイルを再ロードしません。ただし、 sabgentontype :eで提案されている現在のファイルを再読み取りするためのトリックがあり、存在しないファイルの名前を入力します;これにより、lessはエラーメッセージを表示し、現在のファイルを再ロードします。

watch lsの代替品をお探しの場合は、次のようなものがあります。

  • 最新のファイルマネージャー(Nautilus、Thunar、Konqueror、Dolphin、Finderなど)は、ビューをリアルタイムで更新します。
  • Emacsにはリアルタイムの更新機能はありませんが、auto-revert-modeを使用すると、ファイルまたはディレクトリが5秒ごとに再ロードされます(遅延は構成可能です)。
  • W3mは主にWebブラウザですが、通過可能なディレクトリとテキストファイルビューアになります。 Rを押して、(ローカル)URLをリロードします。

Shift+F lesstailfと同様にします。つまり、ファイルにさらにデータが追加されると、更新されます。

68
balki

単にタイプ:

less +F filename

これは、エディター内で「F」を押すことをエミュレートします。

44
jhclark

manページは非常に有益です。彼らに脅されないでください。とりわけ、man lessは、Rコマンドを使用して次のことができると述べています。

   R      Repaint the screen, discarding any buffered input.  Useful if the file is changing while it is being viewed.

(この質問は6年以上前のものですが、Google検索で出てくるので、リンクをクリックしてここにたどり着いたのは私だけではありません。)

23
destenson

lessを実行しているときの「F」キーは、tail -fと同様の「フォロー」を実行しますが、それがここで探しているものを達成するかどうかはわかりません。

5
Dave Jennings

私は通常タイプするだけです G 一度に出力をテールする。 CIFSのようなネットワークファイルシステムで特に役立ちます。

5
jorb

R for repaintは常にファイルをリロードするとは限りません。[1]

常にファイルをリロードする回避策は、hqを押すことです。これにより、ヘルプページが開き、終了します。ファイルを強制的に再読み込みするという副作用があります。


[1] Rが実行し、リロードしない状況の例をいくつか示します。

  • >および>>の変更:リロードされます
  • sed -i、gEdit、TextEdit:リロードしないでください
  • Linuxの場合、viの変更:リロードされます
  • Macでは、viの変更:リロードしないでください

違いは、iノードが変更されるかどうかにあると思います(ls -i foo.txtで確認できます)。 iノードが変更された場合、Rは機能しません。

3
wisbucky

Vimを使用してファイルを読み取り、次のマッピングを.vimrcファイルに追加すると、ファイルを簡単にリロードできます ,r

let mapleader = ","
nnoremap <leader>r :edit <CR>

ファイルをすでに編集している場合は、vimが文句を言うことに注意してください。に変えるだけ

let mapleader = ","
nnoremap <leader>r :edit! <CR>

変更を無視します。

1
puk

代わりにそれをtail -fにパイプすることもできますが、その場合は出力に従います。ただし、出力を移動(スクロール)する機能は失われます。

0
Gert

私はこのスレッドを他の人と同じように見つけました。すでにファイルの最後にいるときの解決策を追加したいと思います。「g」の後に「G」を付けると、ファイルが強制的に更新されます。

端末プログラム(SecureCRT)でこのためのマクロボタンを作成しました。マクロは単に「gG」です。

0
ZMitchell

ブラウザの使用を嫌がらない場合は、次のコマンドで Algernon Webサーバーを起動できます。

algernon -a -t /directory/name

ファイルのリストが表示され、自動更新されます http:// localhost:3000 /

0
Alexander