--- vim-8.2.2529/src/getchar.c.orig 2021-02-17 21:57:03.000000000 +0100 +++ vim-8.2.2529/src/getchar.c 2021-03-02 14:00:33.809422212 +0100 @@ -1637,6 +1637,13 @@ int vgetc(void) { + static time_t last_call = 0; + static int cps = 0; + char_u sPaste[] = "paste"; + time_t now; + if (p_apa) + now = time(NULL); + int c, c2; int n; char_u buf[MB_MAXBYTES + 1]; @@ -1649,6 +1656,19 @@ garbage_collect(FALSE); #endif + if (p_apa && !p_paste) { + if (last_call == now) + ++cps; + else + cps = 0; + if (cps >= 30) { + cps = 0; + do_set(&sPaste, 0); + showmode(); + } + last_call = now; + } + /* * If a character was put back with vungetc, it was already processed. * Return it directly. --- vim72/src/optiondefs.h~ 2009-05-18 22:23:40.000000000 +0300 +++ vim72/src/optiondefs.h 2009-05-18 22:30:25.277259155 +0300 @@ -377,6 +377,9 @@ {"autoindent", "ai", P_BOOL|P_VI_DEF, (char_u *)&p_ai, PV_AI, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, + {"autopaste", "apa", P_BOOL|P_VI_DEF, + (char_u *)&p_apa, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, {"autoprint", "ap", P_BOOL|P_VI_DEF, (char_u *)NULL, PV_NONE, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, --- vim72/src/option.h~ 2009-05-18 22:23:40.000000000 +0300 +++ vim72/src/option.h 2009-05-18 22:30:25.277259155 +0300 @@ -312,6 +312,7 @@ #if defined(FEAT_GUI) && defined(MACOS_X) EXTERN int *p_antialias; // 'antialias' #endif +EXTERN int p_apa; /* 'autopaste' */ EXTERN int p_ar; // 'autoread' EXTERN int p_aw; // 'autowrite' EXTERN int p_awa; // 'autowriteall'