[英]Vim autocmd not working with nnoremap
我正在嘗試設置vim來編譯和運行編輯器中的c和c ++程序,但這些似乎不起作用:
autocmd! filetype *.c nnoremap <leader>cc :!gcc -o %:p:r %<cr>
autocmd! filetype *.c nnoremap <leader>cr :!gcc -o %:p:r %<cr>:!%:p:r<cr>
autocmd! filetype *.cpp *.cc nnoremap <leader>cc :!g++ -o %:p:r %<cr>
autocmd! filetype *.cpp *.cc nnoremap <leader>cr :!g++ -o %:p:r %<cr>:!%:p:r<cr>
FileType自動命令使用文件類型而不是文件名來匹配。 您可以改為使用c和cpp。 請參閱:h FileType
。 但是你的問題並沒有就此結束:
nnoremap <buffer>
。 請參閱:h :map-local
autocmd!
沒有一個團體。 autocmd!
將刪除所有先前定義的並添加當前自動命令。 最好用augroup
創建一個組。 %<
而不是%:r
。 :h ftplugin
和:h after-directory
全部一起:
augroup CBuild
autocmd!
autocmd filetype c nnoremap <buffer> <leader>cc :!gcc -o %:p:r %<cr>
autocmd filetype c nnoremap <buffer> <leader>cr :!gcc -o %:p:r %<cr>:!%:p:r<cr>
autocmd filetype cpp nnoremap <buffer> <leader>cc :!g++ -o %:p:r %<cr>
autocmd filetype cpp nnoremap <buffer> <leader>cr :!g++ -o %:p:r %<cr>:!%:p:r<cr>
augroup END
我用這種方式修改它並且它有效:
autocmd! filetype c nnoremap <leader>cc :!gcc -o %:p:r %<cr>
autocmd! filetype c nnoremap <leader>cr :!gcc -o %:p:r %<cr>:!%:p:r<cr>
autocmd! filetype cpp nnoremap <leader>cc :!g++ -o %:p:r %<cr>
autocmd! filetype cpp nnoremap <leader>cr :!g++ -o %:p:r %<cr>:!%:p:r<cr>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.