VIFMで最近編集したファイルに移動する移動をどのように定義しますか?

VIFMで最近編集したファイルに移動する移動をどのように定義しますか?

ディレクトリの他の場所にあるときに、最近編集したファイルに直接移動するVIFM操作が見つかりません。そんな動きがありますか?そうでない場合は定義できますか?

時間修正ウィンドウのソートを使用してから、ggを使用して一番上に移動してみました。しかし、このようにソートすると、ディレクトリがウィンドウの上部に配置されるので、ggは私をそこに連れて行きます。近いですが、普段やってみたかったことなのでそれを成し遂げるための手間を最小化したいと思います。ありがとうございます!

答え1

これ出荷書類ビーチfnameescape最後に変更されたファイルにカーソルを移動するコマンド例が含まれていますが、ファイルはディレクトリにすることもできます。

したがって、要求された操作を正確に実行するには、以下のコードスニペットをに入れて ~/.config/vifm/vifmrcVifmを再起動してください。これで *を,f使用して、ディレクトリではなく最新のファイルに移動できます。

"Cursor to most recently modified file
noremap ,r :exe 'goto' fnameescape(system('ls -At   | head -n 1'))<CR>

"Cursor to least recently modified file
noremap ,o :exe 'goto' fnameescape(system('ls -Art  | head -n 1'))<CR>

"Cursor to most recently modified non-directory file
noremap ,f :exe 'goto' fnameescape(system('ls -Atp  | grep -vm1 /'))<CR>

"Cursor to least recently modified non-directory file
noremap ,l :exe 'goto' fnameescape(system('ls -Atrp | grep -vm1 /'))<CR>

ご覧のとおり、利便性のために他の関連マッピングも提供しています。

*ファイル名に改行文字が含まれていないとします。

どのように動作しますか?

gotoカーソルを特定のファイルに移動する Vifm 関数です。

必須ファイルは、リストされた最初の非ディレクトリファイルですls -Atp。つまり、スラッシュを含まない最初の行です。grep -v /スラッシュを含む行をフィルタリングし、この-m1オプションは最初の一致のみを返すように指示します。

BSDおよびGNU / Linuxシステムで使用できますが、-mPOSIXではこれを必要としませ grep -v / | head -n 1sed '\:/:d;q'

関連情報