Sử dụng ánh xạ biểu thức là cách dễ nhất để làm điều này:
nnoremap <expr> <CR> &buftype ==# 'quickfix' ? "\<CR>" : 'za'
Điều này xác định ánh xạ kiểm tra xem bạn đang ở trong cửa sổ quickfix, và sau đó thực hiện một <CR>
hoặc za
theo đó.
Xem:
:h :map-expr
:h 'buftype'
:h expr1
:h string
Ánh xạ tới hàm
Bạn cũng có thể xác định một hàm thực hiện nhập thông thường khi được gọi từ cửa sổ quickfix và 'za' nếu không. Điều này không hiệu quả cho những gì bạn đang cố gắng thực hiện, nhưng tôi sẽ để nó ở đây vì đó là thông tin hữu ích nếu bạn muốn ánh xạ tới thứ gì đó phức tạp hơn lệnh chế độ thông thường:
function! FoldingEnter()
if &buftype ==# 'quickfix'
execute "normal! \<CR>"
else
normal! za
endif
endfunction
nnoremap <CR> :call FoldingEnter()<CR>
\<
trong"<CR>" here
?