Тогда я предпочитаю это:
map <F12> :set hls!<CR>
imap <F12> <ESC>:set hls!<CR>a
vmap <F12> <ESC>:set hls!<CR>gv
И почему? Поскольку это переключатели переключатель: если выделение идет, то нажимающий F12 выключает его. И наоборот. HTH.
Я думаю, проблема может заключаться в том, что вы используете метод «Клонировать».
Попробуйте « DrawToBitmap » - это работало у меня в прошлом.
Вот пример, который сохраняет растровое изображение из элемента управления "plotPrinter":
int width = plotPrinter.Size.Width;
int height = plotPrinter.Size.Height;
Bitmap bm = new Bitmap(width, height);
plotPrinter.DrawToBitmap(bm, new Rectangle(0, 0, width, height));
bm.Save(@"D:\TestDrawToBitmap.bmp", ImageFormat.Bmp);
Помните о сохранении непосредственно в C, поскольку это не разрешено с более новыми версиями окна, попробуйте использовать SaveFileDialog.
SaveFileDialog sf = new SaveFileDialog();
sf.Filter = "Bitmap Image (.bmp)|*.bmp|Gif Image (.gif)|*.gif|JPEG Image (.jpeg)|*.jpeg|Png Image (.png)|*.png|Tiff Image (.tiff)|*.tiff|Wmf Image (.wmf)|*.wmf";
sf.ShowDialog();
var path = sf.FileName;