diff --git a/src/constants.go b/src/constants.go
index 8be40eda8332607ec0299b157becd1a96e5f8409..c60c9582ace033a522b4237f689d1048c24b3d65 100644
--- a/src/constants.go
+++ b/src/constants.go
@@ -38,7 +38,7 @@ const (
 	defaultHistoryMax int = 1000
 
 	// Jump labels
-	defaultJumpLabels string = "qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM,<.>/?!@#$%^&*<>/?()[{]}"
+	defaultJumpLabels string = "asdfghjklqwertyuiopzxcvbnm1234567890ASDFGHJKLQWERTYUIOPZXCVBNM`~;:,<.>/?'\"!@#$%^&*()[{]}-_=+"
 )
 
 // fzf events
diff --git a/src/options.go b/src/options.go
index 10a222872e4b6faa178d6a54c28a55b404cbc9f9..ffd57e96f7de92a66628cd371b5cb07c8c8fd749 100644
--- a/src/options.go
+++ b/src/options.go
@@ -724,6 +724,7 @@ func parseOptions(opts *Options, allArgs []string) {
 			opts.History.maxSize = historyMax
 		}
 	}
+	validateJumpLabels := false
 	for i := 0; i < len(allArgs); i++ {
 		arg := allArgs[i]
 		switch arg {
@@ -817,6 +818,7 @@ func parseOptions(opts *Options, allArgs []string) {
 			opts.InlineInfo = false
 		case "--jump-labels":
 			opts.JumpLabels = nextString(allArgs, &i, "label characters required")
+			validateJumpLabels = true
 		case "-1", "--select-1":
 			opts.Select1 = true
 		case "+1", "--no-select-1":
@@ -927,6 +929,14 @@ func parseOptions(opts *Options, allArgs []string) {
 	if len(opts.JumpLabels) == 0 {
 		errorExit("empty jump labels")
 	}
+
+	if validateJumpLabels {
+		for _, r := range opts.JumpLabels {
+			if r < 32 || r > 126 {
+				errorExit("non-ascii jump labels are not allowed")
+			}
+		}
+	}
 }
 
 func postProcessOptions(opts *Options) {