diff --git a/src/evalvars.c b/src/evalvars.c
index eb198fd..3aaae13 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -143,6 +143,7 @@
     {VV_NAME("event",		 VAR_DICT), VV_RO},
     {VV_NAME("versionlong",	 VAR_NUMBER), VV_RO},
     {VV_NAME("echospace",	 VAR_NUMBER), VV_RO},
+    {VV_NAME("argv",		 VAR_LIST), VV_RO},
 };
 
 // shorthand
@@ -2086,6 +2087,27 @@
 }
 
 /*
+ * Set the v:argv list.
+ */
+    void
+set_argv_var(char **argv, int argc)
+{
+    list_T	*l = list_alloc();
+    int		i;
+
+    if (l == NULL)
+	getout(1);
+    l->lv_lock = VAR_FIXED;
+    for (i = 0; i < argc; ++i)
+    {
+	if (list_append_string(l, (char_u *)argv[i], -1) == FAIL)
+	    getout(1);
+	l->lv_last->li_tv.v_lock = VAR_FIXED;
+    }
+    set_vim_var_list(VV_ARGV, l);
+}
+
+/*
  * Set v:register if needed.
  */
     void
diff --git a/src/main.c b/src/main.c
index 8001c3f..2ec5c26 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1009,7 +1009,11 @@
     TIME_MSG("inits 1");
 
 #ifdef FEAT_EVAL
-    set_lang_var();		/* set v:lang and v:ctype */
+    // set v:lang and v:ctype
+    set_lang_var();
+
+    // set v:argv
+    set_argv_var(paramp->argv, paramp->argc);
 #endif
 
 #ifdef FEAT_SIGNS
diff --git a/src/normal.c b/src/normal.c
index 17db06a..f2527e1 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5986,7 +5986,7 @@
 	    oap->motion_type = MCHAR;
 	    oap->inclusive = FALSE;
 	    if (has_mbyte)
-		i = mb_string2cells(ptr, STRLEN(ptr));
+		i = mb_string2cells(ptr, (int)STRLEN(ptr));
 	    else
 		i = (int)STRLEN(ptr);
 	    if (cap->count0 > 0 && cap->count0 <= 100)
diff --git a/src/proto/evalvars.pro b/src/proto/evalvars.pro
index 691eec3..bb8b5a1 100644
--- a/src/proto/evalvars.pro
+++ b/src/proto/evalvars.pro
@@ -41,6 +41,7 @@
 void set_vim_var_string(int idx, char_u *val, int len);
 void set_vim_var_list(int idx, list_T *val);
 void set_vim_var_dict(int idx, dict_T *val);
+void set_argv_var(char **argv, int argc);
 void set_reg_var(int c);
 char_u *v_exception(char_u *oldval);
 char_u *v_throwpoint(char_u *oldval);
diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim
index f10eabb..358ca81 100644
--- a/src/testdir/test_startup.vim
+++ b/src/testdir/test_startup.vim
@@ -671,3 +671,15 @@
   " clean up
   call StopVimInTerminal(buf)
 endfunc
+
+func Test_v_argv()
+  " Can't catch the output of gvim.
+  CheckNotGui
+
+  let out = system(GetVimCommand() . ' -es -V1 -X arg1 --cmd "echo v:argv" --cmd q')
+  let list = out->split("', '")
+  call assert_match('vim', list[0])
+  let idx = index(list, 'arg1')
+  call assert_true(idx > 2)
+  call assert_equal(['arg1', '--cmd', 'echo v:argv', '--cmd', 'q'']'], list[idx:])
+endfunc
diff --git a/src/version.c b/src/version.c
index 99f1570..0e92901 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,10 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2233,
+/**/
+    2232,
+/**/
     2231,
 /**/
     2230,
diff --git a/src/vim.h b/src/vim.h
index 7b2aa5b..de5873c 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1990,7 +1990,8 @@
 #define VV_EVENT	90
 #define VV_VERSIONLONG	91
 #define VV_ECHOSPACE	92
-#define VV_LEN		93	// number of v: vars
+#define VV_ARGV		93
+#define VV_LEN		94	// number of v: vars
 
 // used for v_number in VAR_SPECIAL
 #define VVAL_FALSE	0L
