現在編集中のファイルからプログラムを実行するために、私の~/vimrc
ファイルのキーをマップしたいと思います。どうすればいいですか?これで互換性が壊れますか?<F4>
vim
indent
vi
よろしくお願いします。
答え1
マニュアルページにはヒントさえありませんが、stdin(つまりFD 0)から読み取ってstdout(つまりFD 1)に書き込むパイプの操作を処理することがわかり--help
ました。indent
この職業以内にWim。
マップされたコマンドで始まります。
map <F4> :!indent<CR>
ファイルの最初の行に移動してビジュアルモード(Ctrl-v)に入ります。その後、キーを押すとCtrl-Endファイルの最後の行に移動します。すべての行を含む最後の行の幅に1ブロック(vimのすべての行の末尾にある改行文字)を加えた値が強調表示されているように見えます。外部コマンドを介してこのブロックを提供する場合、垂直方向が唯一の決定要因であるため、幅は重要ではありません。行が含まれている場合は、行全体になります。
今あなたは押して急いF4でください。 これが私がテストしたものです効果がある。 IMOは簡単です。必要に応じて、ファイル全体の代わりにセクションを簡単にインデントすることもできます。別のアイデアは、マッピングからreturnを削除して<CR>
直接Enterキーを押す必要がありますが、goオプションも提供することですindent
。その後、さまざまなスタイルを混合して一致させることができます。ハハ。
ファイル全体を自動的に選択するようにマッピングするには、呼び出してindent
コマンドモードおよび/または元の場所に戻ります。より複雑な構成では、これが可能であると確信しています。残念ながら、私は現在vimプログラミングについて何も知らないので、それがどのように機能するのか私に言うことはできません。しかし、そのような人がいるかもしれません。その前には6つのキーストローク要件(:1
ファイルの先頭に移動するには+ return、ctrl-v
ファイルの先頭に移動するには+ return、ctrl-end
ファイルの最後に移動するには+ return、最後に+ return)を満たす必要がありますF4
。
答え2
私はこれがうまくいくと思います。
map <F4> !indent %<CR>
私の考えは、システムの隣で何が起こるかによって異なりますが、少なくともファイルを再ロードする必要があります。
しかし、indent
実際に何が起こっていますか?あなたが試すことがより簡単な方法で達成できるように聞こえます。