だから私がしばらくVimで使ってきたコマンドは次のようになります:
map <F10> :w<CR> :!clear; make %<<CR> :!./%<<CR>
ファイルの現在の名前を取得してコンパイルして実行します。しかし、これは私のディレクトリを汚染し、それをgithubにアップロードするには、アップロードする前に拡張子のないすべてのファイルを削除する必要があります。
私がやりたいことは、それらをすべて次のようにコンパイルすることです。ゴミ箱ディレクトリなので、コマンドを次のように修正してみました。
map <F10> :w<CR> :!clear; make -C bin %<<CR> :!./bin/%<<CR>
コマンドがディレクトリを変更していることがわかりますが、-C
エラーが発生して動作しません。
*** no rule to make target '17'. Stop.
このコマンドを機能させるにはどうすればよいですか?
map <F10> :w<CR> :!clear; make -C bin %<<CR> :!./bin/%<<CR>
ベストアンサー1
:make
Vimのコマンドとオペレーティングシステムの実行可能ファイルを混同していますmake(1)
。 Vimのコマンドラインに入力すると、make
Vimのコマンドが実行されます:make
。これの効果の1つは、Vimのoptionsで定義されているオペレーティングシステムコマンドを実行することですmakeprg
。
これでmakeprg
デフォルト値があるため、make
オペレーティングシステムのコマンドmake(1)
も実行されます。ただし、Vimのコマンドは:make
オプションを受け入れないため、-C bin
Vimのコマンドラインを渡してもVimが実行されているわけではありませんmake -C bin
。実行されるオペレーティングシステムのコマンドを変更するには、次の手順を実行する必要があります。
let &makeprg = 'make -C /path/to/bin'
その後、Vimでそれを実行すると:make
OSコマンドが実行されますmake -C /path/to/bin
。
しかし、コメントで指摘したように、この問題を処理するためのより良い方法は、最初から問題を回避し、関係のないすべてのファイルを.gitignore
。 Gitリポジトリ。