vimrc は行番号をマップします。

vimrc は行番号をマップします。

私の.vimrcファイルには次の行があります。

:map <F9> :exe ':!gdbset bp "%:'.line(".").'"'<CR><CR>
:map <F8> :exe ':!gdbset clear bp "%:'.line(".").'"'<CR><CR>

gdbでブレークポイントを追加および削除するのに便利です! (私が知っている限り)問題は1つあります...何らかの理由で80年代の行番号が機能しません。 85行目にカーソルを合わせてF9を押すと、85行目にブレークポイントが配置されます。 75行目にカーソルを合わせてF9を押すと、75行目にブレークポイントが配置されます。

生成されたブレークポイントは次のとおりです。

b myfile.cc:5
b myfile.cc:75

85番国道は開いていません。 80年代の製品をテストしてみました。それらのどれも動作しません。他のすべての行はうまくいくようです。なぜ? VIMの専門家の一人がこれについて説明することができると確信しています。 「:8」が他のコマンドや他のものと解釈されるのとほぼ同じです。

ベストアンサー1

%:8利用できるファイル名修飾子したがって、Vimはコマンドの一部として解釈します:!

あなたはそれを使用することができますexpand('%')手動で展開し、%正しく引用してください。shellescape(…,1):

:map <F9> :exe '!gdbset bp'       shellescape(expand('%').':'.line('.'),1)<CR><CR>
:map <F8> :exe '!gdbset clear bp' shellescape(expand('%').':'.line('.'),1)<CR><CR>

おすすめ記事