I've been using vim for about 3 years and am starting to write [my first plugin](https://github.com/Matt-A-Bennett/surround-funk.vim). I've noticed when looking at the code of other popular plugins that the functions very rarely seem to achieve their aim with lines like: ```vim execute "normal! <some commands>" ``` Instead opting for using Vim's built in functions. Given the power of Vim's normal mode commands to do so much, what is the general reason for not employing them more often when writing plugins? For example is there a good reason to prefer code (A) or (B) (given that they achieve the same result): Code (A): ```vim let l = line(".") let c = col(".") call search('mysearch') call setline(line("."), 'better') call cursor(l, c) ``` Code (B): ```vim norm! mx execute "normal! /mysearch/\<CR>" normal! 0c$better norm! `x ``` Code (A) seems a little more readable, and won't clobber the marks (and not the search registers?). Is there a more important reason I'm missing?