From: Roy Fulbright
  
  Sent: Thursday, June 15, 2023 4:48 PM
To: vim_use@googlegroups.com <vim_use@googlegroups.com>
Subject: Vim does not recognize previous command when issued within a function   
  To: vim_use@googlegroups.com <vim_use@googlegroups.com>
Subject: Vim does not recognize previous command when issued within a function
  >I can execute the following command and then enter "@:" to repeat the command.  
    
    
    
    
  
  >This works fine.
  >:windo silent/foo/|wincmd w
  >@:
  >However, when I execute the same command within a function, "@:" displays an
  >error message saying there is no  previous command.
  >How can I get the command within the function to be registered as a command for "@:"?
  >function! Find_In_Multiple_Windows(pattern)
    >if !empty(a:pattern)
    >  execute ":windo silent /" . a:pattern . "/|wincmd w"
   > endif
  >endfunction
  >nnoremap <silent>fw :call Find_In_Multiple_Windows(input("Search for: "))<CR>
  >fw
  >Search for: foo
  >@:
  >E30: No previous command line  >Note: Also posted on stackoverflow, but no responses so far.
    I just received the answer on stackoverflow, and it works perfectly!  
    
        
  
  
  Use this instead of: execute ":windo silent ...
  call feedkeys(":windo silent /" . a:pattern . "/|wincmd w\n", "t")
No comments:
Post a Comment