2012-02-25 34 views
17

Tôi sẽ bắt đầu với mãLàm thế nào để mô phỏng một phím bấm bên trong một hàm Vim?

function BigScrollUp() 
    let count = 20 
    while count > 0 
    "Press" CTRL-Y <-- how do I emulate this? 
    sleep 5m 
    count -= 1 
    endwhile 
endfunction 

Tôi muốn tạo ra một chức năng để nhanh chóng di chuyển lên xuống, với hình ảnh động để tôi có thể theo dõi các nơi tôi sẽ.

+1

thấy điều này: http://stackoverflow.com/questions/6409509/scripting-number-increment-decrement-in-vim – user1227804

Trả lời

3

Hãy thử điều này:

" Press CTRL-Y: 
normal <Ctrl+v><Ctrl+y> 

Nghĩa đen gõ ctrl + v, tiếp theo là ctrl + y này sẽ dẫn đến một nhân vật duy nhất hiển thị như^Y trong kịch bản của bạn.

+0

Tôi không nghĩ nó có giá trị gửi câu hỏi của riêng tôi cho điều này, nhưng làm thế nào tôi sẽ remap Shift + g để sau khi chức năng của tôi kết thúc con trỏ của tôi được đặt ở dòng cuối cùng trong tập tin của tôi? Tôi đã thử lặp lại 'bình thường ' –

+0

Chỉ cần thử làm: ' bình thường G' Lưu ý rằng' g' không giống với 'G' trong ** vim **. –

+0

Tại sao cần có ''? – yangmillstheory

31

Bạn có thể sử dụng feedkeys(). Loại :help feedkeys để đọc thêm:

feedkeys({string} [, {mode}])    *feedkeys()* 
     Characters in {string} are queued for processing as if they 
     come from a mapping or were typed by the user. They are added 
     to the end of the typeahead buffer, thus if a mapping is still 
     being executed these characters come after them. 
     The function does not wait for processing of keys contained in 
     {string}. 
     To include special keys into {string}, use double-quotes 
     and "\..." notation |expr-quote|. For example, 
     feedkeys("\<CR>") simulates pressing of the <Enter> key. But 
     feedkeys('\<CR>') pushes 5 characters. 
     If {mode} is absent, keys are remapped. 
     {mode} is a String, which can contain these character flags: 
     'm' Remap keys. This is default. 
     'n' Do not remap keys. 
     't' Handle keys as if typed; otherwise they are handled as 
      if coming from a mapping. This matters for undo, 
      opening folds, etc. 
     Return value is always 0. 

call feedkeys("\<C-Y>") 
Các vấn đề liên quan