对于obj = NewClass("hi")
obj.msg
//will print Hi
中名为neovim
的插件,您实际上根本不需要知道该插件,这只是我从使用条件语句进行映射时得到的错误,我想进行如下所示的条件映射,如果我在功能上做错了,请编写正确的功能。
如果您认为我的整个方法是错误的,那也可能发生,那么请给我正确的路径
对于javascript
float-term
对于c
nnoremap <F5> :FloatermNew node %<CR>
对于c ++
nnoremap <F5> :FloatermNew gcc % && ./a.out<CR>
对于python
nnoremap <F5> :FloatermNew g++ % && ./a.out<CR>
现在我希望所有这些都可以使用一个快捷键nnoremap <F5> :Floaterm python3 %<CR>
。
我这样做了,但收到错误消息
F5
错误
nnoremap <expr> <F5> My_mapping()
function! My_mapping
if &filetype ==# 'c'
nnoremap <F5>:FloatermNew gcc % && ./a.out <CR>
elseif &filetype ==# 'c++'
nnoremap <F5>:FloatermNew g++ % && ./a.out <CR>
elseif &filetype ==# 'js'
nnoremap <F5>:FloatermNew node % <CR>
elseif &filetype ==# 'py'
nnoremap <F5>:FloatermNew python3 % <CR>
else
nnoremap <F5><CR>
endif
endfunction
任何人都可以修复错误吗?或者如果我完全不赞成这种方法,那么谁能定义新的方法
答案 0 :(得分:0)
autocmd FileType javascript nnoremap <buffer> <F5> :w<esc>:FloatermNew node %<CR>
autocmd FileType c nnoremap <buffer> <F5> :w<esc>:FloatermNew gcc % && ./a.out && rm a.out<CR>
autocmd FileType cpp nnoremap <buffer> <F5> :w<esc>:FloatermNew g++ % && ./a.out && rm a.out<CR>
autocmd FileType python nnoremap <buffer> <F5> :w<esc>:FloatermNew python3 %<CR>
autocmd FileType typescript nnoremap <buffer> <F5> :w<esc>:FloatermNew ts-node %<CR>