diff --git a/src/option.c b/src/option.c
index 22dcfc5..c6230c4 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1218,11 +1218,12 @@
  * does not need to be expanded with option_expand().
  * "opt_flags":
  * 0 for ":set"
- * OPT_GLOBAL   for ":setglobal"
- * OPT_LOCAL    for ":setlocal" and a modeline
- * OPT_MODELINE for a modeline
- * OPT_WINONLY  to only set window-local options
- * OPT_NOWIN	to skip setting window-local options
+ * OPT_GLOBAL     for ":setglobal"
+ * OPT_LOCAL      for ":setlocal" and a modeline
+ * OPT_MODELINE   for a modeline
+ * OPT_WINONLY    to only set window-local options
+ * OPT_NOWIN	  to skip setting window-local options
+ * OPT_ONECOLUMN  do not use multiple columns
  *
  * returns FAIL if an error is detected, OK otherwise
  */
@@ -1290,7 +1291,7 @@
 	else if (STRNCMP(arg, "termcap", 7) == 0 && !(opt_flags & OPT_MODELINE))
 	{
 	    showoptions(2, opt_flags);
-	    show_termcodes();
+	    show_termcodes(opt_flags);
 	    did_show = TRUE;
 	    arg += 7;
 	}
diff --git a/src/proto/term.pro b/src/proto/term.pro
index 949b350..6f0f081 100644
--- a/src/proto/term.pro
+++ b/src/proto/term.pro
@@ -80,7 +80,7 @@
 void term_get_fg_color(char_u *r, char_u *g, char_u *b);
 void term_get_bg_color(char_u *r, char_u *g, char_u *b);
 char_u *replace_termcodes(char_u *from, char_u **bufp, int flags, int *did_simplify);
-void show_termcodes(void);
+void show_termcodes(int flags);
 int show_one_termcode(char_u *name, char_u *code, int printit);
 void update_tcap(int attr);
 void swap_tcap(void);
diff --git a/src/term.c b/src/term.c
index c20da0c..a8819a3 100644
--- a/src/term.c
+++ b/src/term.c
@@ -6217,9 +6217,10 @@
 /*
  * Show all termcodes (for ":set termcap")
  * This code looks a lot like showoptions(), but is different.
+ * "flags" can have OPT_ONECOLUMN.
  */
     void
-show_termcodes(void)
+show_termcodes(int flags)
 {
     int		col;
     int		*items;
@@ -6244,12 +6245,13 @@
     msg_puts_title(_("\n--- Terminal keys ---"));
 
     /*
-     * do the loop two times:
+     * Do the loop three times:
      * 1. display the short items (non-strings and short strings)
      * 2. display the medium items (medium length strings)
      * 3. display the long items (remaining strings)
+     * When "flags" has OPT_ONECOLUMN do everything in 3.
      */
-    for (run = 1; run <= 3 && !got_int; ++run)
+    for (run = (flags & OPT_ONECOLUMN) ? 3 : 1; run <= 3 && !got_int; ++run)
     {
 	/*
 	 * collect the items in items[]
@@ -6259,9 +6261,10 @@
 	{
 	    len = show_one_termcode(termcodes[i].name,
 						    termcodes[i].code, FALSE);
-	    if (len <= INC3 - GAP ? run == 1
+	    if ((flags & OPT_ONECOLUMN) ||
+		    (len <= INC3 - GAP ? run == 1
 			: len <= INC2 - GAP ? run == 2
-			: run == 3)
+			: run == 3))
 		items[item_count++] = i;
 	}
 
diff --git a/src/testdir/test_set.vim b/src/testdir/test_set.vim
index 7215772..4035248 100644
--- a/src/testdir/test_set.vim
+++ b/src/testdir/test_set.vim
@@ -1,5 +1,7 @@
 " Tests for the :set command
 
+source check.vim
+
 function Test_set_backslash()
   let isk_save = &isk
 
@@ -45,4 +47,32 @@
   setglobal textwidth&
 endfunc
 
+func Test_set_termcap()
+  CheckNotGui
+
+  let lines = split(execute('set termcap'), "\n")
+  call assert_match('--- Terminal codes ---', lines[0])
+  " four columns
+  call assert_match('t_..=.*t_..=.*t_..=.*t_..=', lines[1])
+
+  for keys_idx in range(len(lines))
+    if lines[keys_idx] =~ '--- Terminal keys ---'
+      break
+    endif
+  endfor
+  call assert_true(keys_idx < len(lines))
+  " three columns
+  call assert_match('t_.. .*t_.. .*t_.. ', lines[keys_idx + 1])
+
+  let more_lines = split(execute('set! termcap'), "\n")
+  for i in range(len(more_lines))
+    if more_lines[i] =~ '--- Terminal keys ---'
+      break
+    endif
+  endfor
+  call assert_true(i < len(more_lines))
+  call assert_true(i > keys_idx)
+  call assert_true(len(more_lines) - i > len(lines) - keys_idx)
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index d0057b3..5c822be 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3731,
+/**/
     3730,
 /**/
     3729,
