bufread,bufnew keymaps修改电流缓冲液,而不是在neovim和vim中打开的缓冲区
我无法弄清楚为什么我的c ++文件缓冲区中的keymaps被 in 文件中的规则覆盖。我虽然bufread
打开新文件后执行,对吗?
我有以下vimrc
配置:
autocmd FileType cpp
\ nnoremap <buffer> <f5> :up<cr>:!g++ -Wall -Wextra -Wshadow -Wno-sign-conversion -O2 -o a.out % && ./a.out < in<cr>
\| nnoremap <buffer> <f6> :split in<cr>
autocmd BufRead,BufNew in
\ nnoremap <buffer> <f5> :up<cr>:!./a.out < in<cr>
\| nnoremap <buffer> <f6> :wq<cr>
\| echom "in file loaded " . winbufnr(0)
f6之后的VIM输出(:Mess
):
in file loaded 1
in file loaded 2
f6之后的NVIM输出:
in file loaded 1
按下F6之前没有输出。
当我在中打开文件从test.cpp
(通过F6或Direct :sp
)中打开时,C ++ keymaps不再存在,从test.cpp :
:nnoremap <buffer>
n <F6> *@:wq<CR>
n <F5> *@:up<CR>:!./a.out < in<CR>
我的其他f5
其他文件的keymaps工作正常。任何帮助都将受到赞赏
I can't scratch my head around why my keymaps in C++ file buffer are getting overwritten by rules for in
file. I though BufRead
executes after opening new file, right?
I have the following vimrc
configuration:
autocmd FileType cpp
\ nnoremap <buffer> <f5> :up<cr>:!g++ -Wall -Wextra -Wshadow -Wno-sign-conversion -O2 -o a.out % && ./a.out < in<cr>
\| nnoremap <buffer> <f6> :split in<cr>
autocmd BufRead,BufNew in
\ nnoremap <buffer> <f5> :up<cr>:!./a.out < in<cr>
\| nnoremap <buffer> <f6> :wq<cr>
\| echom "in file loaded " . winbufnr(0)
Output in vim after F6 (:mess
):
in file loaded 1
in file loaded 2
Output in Nvim after F6:
in file loaded 1
There is no output before pressing F6.
When I open file in
from test.cpp
(either through F6 or direct :sp
), C++ keymaps are no longer there, from test.cpp
:
:nnoremap <buffer>
n <F6> *@:wq<CR>
n <F5> *@:up<CR>:!./a.out < in<CR>
My other F5
keymaps for other files are working just fine. Any help is appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
用
BufNewFile
事件替换,它可以按预期工作
Replaced
BufNew
withBufNewFile
event and it works as expected