for
ループシミュレーションが欲しいビビム。
ファイルを選択しない場合は、現在のファイル名を引数として入力して出力:!echo %f
を表示できます。echo
複数のファイルを選択した場合、:!echo %f
生成された出力は、選択したecho
すべてのファイル名がスペースと引数で連結された場所です。
echo
選択した各ファイルに任意のプログラム(例:)を適用するにはどうすればよいですか?だから
echo file1
echo file2
echo file3
...
変える
echo file1 file2 file3
私のオプションは何ですか?
PS:次のBashコードのVifmシミュレーションが欲しいです。
for f in file1 file2 file3; do
echo $f
done
答え1
オプション1:カスタムコマンド
:com loop for f in %f; do %a "$f"; done
~/.config/vifm/vifmrc
必ずコマンド設定に入れてください。
ls -l
選択した各ファイルに適用するには、以下を発行します。
:loop ls -l
2つのマクロが使用されます。
%f
選択したファイル名を正しく引用してください。%a
議論。私達の例ではls
および-l
。
オプション2:地図
:noremap b :!for f in %f; do "$f"; done<A-B><A-B><Left>
常に地図設定を維持するには、もう一度入力してください~/.config/vifm/vifmrc
。
通常モードまたはビジュアルモードでキーを押すとコマンドラインbにforループが表示され、カーソルは間に便利な位置にあるので、do
必要な"$f"
コマンドを入力してキーを押すだけですEnter。
<A-B><A-B><Left>
カーソルの位置決めは、コマンドラインモードでAlt+Bカーソルを前の単語の先頭に移動しLeft(明らかに)左に1行移動することによって行われます。
ノート&
:実行に時間がかかり、Vifmの実行中にブロックされたくない場合は、このコマンドをバックグラウンドに追加することを忘れないでください。
答え2
これにより、所望の出力が生成される。
:!echo %f | xargs -n 1 echo
もちろん、for
使いやすいようにコマンド(たとえば)を定義できます。
:com for echo %f | xargs -n 1
次に、次のように入力します。
:for echo