@@ -1252,6 +1252,60 @@ def test_undo_after_replace(self):
12521252 reader , _ = self ._run_vi (events )
12531253 self .assertEqual (reader .get_unicode (), "hello" )
12541254
1255+ def test_D_delete_to_eol (self ):
1256+ events = itertools .chain (
1257+ code_to_events ("hello world" ),
1258+ [
1259+ Event (evt = "key" , data = "\x1b " , raw = bytearray (b"\x1b " )), # ESC
1260+ Event (evt = "key" , data = "0" , raw = bytearray (b"0" )), # BOL
1261+ Event (evt = "key" , data = "w" , raw = bytearray (b"w" )), # forward word
1262+ Event (evt = "key" , data = "D" , raw = bytearray (b"D" )), # delete to EOL
1263+ ],
1264+ )
1265+ reader , _ = self ._run_vi (events )
1266+ self .assertEqual (reader .get_unicode (), "hello " )
1267+
1268+ def test_C_change_to_eol (self ):
1269+ events = itertools .chain (
1270+ code_to_events ("hello world" ),
1271+ [
1272+ Event (evt = "key" , data = "\x1b " , raw = bytearray (b"\x1b " )), # ESC
1273+ Event (evt = "key" , data = "0" , raw = bytearray (b"0" )), # BOL
1274+ Event (evt = "key" , data = "w" , raw = bytearray (b"w" )), # forward word
1275+ Event (evt = "key" , data = "C" , raw = bytearray (b"C" )), # change to EOL
1276+ ],
1277+ code_to_events ("there" ),
1278+ )
1279+ reader , _ = self ._run_vi (events )
1280+ self .assertEqual (reader .get_unicode (), "hello there" )
1281+ self .assertEqual (reader .vi_mode , ViMode .INSERT )
1282+
1283+ def test_s_substitute_char (self ):
1284+ events = itertools .chain (
1285+ code_to_events ("hello" ),
1286+ [
1287+ Event (evt = "key" , data = "\x1b " , raw = bytearray (b"\x1b " )), # ESC
1288+ Event (evt = "key" , data = "0" , raw = bytearray (b"0" )), # BOL
1289+ Event (evt = "key" , data = "s" , raw = bytearray (b"s" )), # substitute
1290+ ],
1291+ code_to_events ("j" ),
1292+ )
1293+ reader , _ = self ._run_vi (events )
1294+ self .assertEqual (reader .get_unicode (), "jello" )
1295+ self .assertEqual (reader .vi_mode , ViMode .INSERT )
1296+
1297+ def test_X_delete_char_before (self ):
1298+ events = itertools .chain (
1299+ code_to_events ("hello" ),
1300+ [
1301+ Event (evt = "key" , data = "\x1b " , raw = bytearray (b"\x1b " )), # ESC
1302+ Event (evt = "key" , data = "X" , raw = bytearray (b"X" )), # delete before
1303+ ],
1304+ )
1305+ reader , _ = self ._run_vi (events )
1306+ self .assertEqual (reader .get_unicode (), "helo" )
1307+ self .assertEqual (reader .vi_mode , ViMode .NORMAL )
1308+
12551309
12561310@force_not_colorized_test_class
12571311class TestHistoricalReaderBindings (TestCase ):
0 commit comments