Vim autocmd不使用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> autocmd!文件类型*.c nnoremap cc:!gcc-o%:p:r% 自动驾驶!文件类型*.c nnoremap cr:!gcc-o%:p:r%:!%:p:r 自动驾驶!文件类型*.cpp*.cc nnoremap cc:!g++-o%:p:r% 自动驾驶!文件类型*.cpp*.cc nnoremap cr:!g++-o%:p:r%:!%:p:r
我这样修改了它,它成功了:Vim autocmd不使用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> autocmd!文件类型*.c nnoremap cc:!gcc-o%:p:r% 自动驾驶!文件类型*.c nnoremap cr:!gcc-o%:p:r%:!%:p:r 自动驾驶!文件类型*.cpp*.cc nnoremap cc:!g++-o%:p:r% 自动驾驶!文件类型*.cpp*.cc nnoremap cr:!g++-o%:p:r%:!%:p:r,vim,Vim,我这样修改了它,它成功了: 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++
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>
autocmd!文件类型c nnoremap cc:!gcc-o%:p:r%
自动驾驶!文件类型c nnoremap cr:!gcc-o%:p:r%:!%:p:r
自动驾驶!文件类型cpp nnoremap cc:!g++-o%:p:r%
自动驾驶!文件类型cpp nnoremap cr:!g++-o%:p:r%:!%:p:r
文件类型自动命令使用要匹配的文件类型,而不是文件名。您可以改为使用c和cpp。请参见:h文件类型
。但是,您的问题并不止于此:
- 这些是全局映射。如果打开一个c文件,映射就会改变。打开一个cpp文件,无论您在哪个缓冲区中,映射都会更改。改用
。请参见nnoremap
:h:map local
- 使用
autocmd代码>没有组<代码>自动MD代码>将删除以前定义的所有代码并添加到当前自动命令中。最好使用
创建一个组augroup
- 您也可以选择使用
%谢谢。将这些东西放入ftplugin目录是可取的,但是vim似乎无法识别cpp.vim,并且当打开一个cpp文件时,它会将c.vim作为源文件,并忽略前者。还有其他解决方法吗?我已经做了一个快速测试,在创建ftplugin
时没有问题。如果您想查看源代码,可以查看~/.vim/ftplugin/cpp.vim
…了解您对“已工作”的有限理解。请参阅Peter Rincker的答案,了解与此相关的其余问题。:scriptnames
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