2015-06-24 3 views
1

Я хочу использовать Ctrl-E to scroll несколько (здесь 10) строк вниз. Я хочу это в обычном exec "norm! ... картографирования как такCtrl-E в строке Vimscript в строке `exec '!" ... `

nnoremap <leader>e :<C-U>exec "norm! 10\<C-E>"<CR> 
nnoremap <leader>y :<C-U>exec "norm! 10\<C-Y>"<CR> 

Если нажать <leader>y все работает, как ожидалось (я перечисляю 10 строк вверх). Но если я нажимаю <leader>e я получаю следующее сообщение об ошибке (и ожидается его прокручивать 10 строк вниз):

E114: Missing quote: "norm! 10\" 
E15: Invalid expression: "norm! 10\" 
Press ENTER or type command to continue 

Кто-нибудь знает, как я могу это исправить?

Редактировать: Причина, по которой я строю строку и выполняю ее, заключается в том, что я могу рассчитать количество строк, прокручиваемых выражением (здесь f()).

nnoremap <leader>e :<C-U>exec "norm! ". f() ." \<C-E>"<CR> 
+1

Почему не 'nnoremap е 10 '? – romainl

+0

@romainl Хорошая точка. Я отредактировал сообщение, чтобы подумать, что я действительно хочу большего. Я собирался сделать отдельный вопрос с реальной проблемой, с которой я столкнулся. (Не уверен. Вот как я должен это делать, и меня все еще интересует этот точный вопрос) – rappj

ответ

0

Делают это так:

nnoremap <leader>e :<C-u>exec "norm! 10<C-v><C-e>"<CR> 
nnoremap <leader>y :<C-u>exec "norm! 10<C-v><C-y>"<CR>