私はvimで編集しているCファイルをコンパイルして実行するコマンドを持っています。どうしたらいいですか?ファイル名に.cがあるため、以下は動作しません。私は:!make && ./filename
を使用している場合vimでコンパイルして実行するには?
:map <leader>m :!make && ./%
私はあまりにも垂直分割ウィンドウで溶液を見てみたいと思いますので、出力を移動する方法がわかりません。
私はvimで編集しているCファイルをコンパイルして実行するコマンドを持っています。どうしたらいいですか?ファイル名に.cがあるため、以下は動作しません。私は:!make && ./filename
を使用している場合vimでコンパイルして実行するには?
:map <leader>m :!make && ./%
私はあまりにも垂直分割ウィンドウで溶液を見てみたいと思いますので、出力を移動する方法がわかりません。
あなたのシェルエスケープ:map <leader>m :!make && ./%
は、処理するMakefileを検索するmakeプログラムを呼び出します。 Makefileのレシピは、プログラムのコンパイル方法と、最終実行可能ファイルの名前の記述方法です(省略された場合はデフォルトでa.out
になります)。 編集中のファイル名(%
)は、希望の実行可能ファイル名と同じ接頭辞を持つ可能性がありますが、これは保証されていません。
.PHONY: all
all: executablename runlog
executablename: executablename.c
cc -o executablename executablename.c
runlog: executablename
./executablename >runlog
:自動コンパイル後に実行され、一時ファイルにあなたの実行可能ファイルの出力をリダイレクトし、例えばされたMakefileのレシピを書き、コンパイル、実行、およびスプリット・ウィンドウにプログラムの出力を編集するには
8つのインデントスペースは、Makefileが機能するためにタブに置き換える必要があることに注意してください。
リファレンスあなたのマッピングに一時ファイル:^M
ははCtrl +戻るを入力してから茎 :map <leader>m :!make^M:sp runlog^M
。
リーダーのショートカットで保存された時間は、余分なファイルを削除するのに費やされます。 –
Makefile内のシェルリダイレクト_> runlog_が毎回_runlog_を上書きするため、このファイルを削除する必要はありません。ファイルが気になる場合は、_/tmp/runlog_cleaned_up_by_system_にリダイレクトするか、Makefileのきれいなレシピに削除を追加してください。私はリーダーのマッピング(通常のマッピングと比較して)で時間を節約するというあなたの意図を理解していないだけでなく、私の理解のリーダーには、あなた自身のマッピングのための便利な名前空間です。 – 149
同じMakefileでコンパイルするために別のプログラムを用意しなければならないとどうしたらいいですか?ファイル名から.filetypeを除いた名前を使用する方法はありませんか? –