Add M-b and M-f
This commit is contained in:
		
							parent
							
								
									d7c96fc81b
								
							
						
					
					
						commit
						b08c2d03ef
					
				@ -211,6 +211,10 @@ Move right.
 | 
				
			|||||||
Delete to end of line.
 | 
					Delete to end of line.
 | 
				
			||||||
.It Ic C-u
 | 
					.It Ic C-u
 | 
				
			||||||
Delete to beginning of line.
 | 
					Delete to beginning of line.
 | 
				
			||||||
 | 
					.It Ic M-b
 | 
				
			||||||
 | 
					Move to previous word.
 | 
				
			||||||
 | 
					.It Ic M-f
 | 
				
			||||||
 | 
					Move to next word.
 | 
				
			||||||
.El
 | 
					.El
 | 
				
			||||||
.
 | 
					.
 | 
				
			||||||
.Ss Window Keys
 | 
					.Ss Window Keys
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								chat.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								chat.h
									
									
									
									
									
								
							@ -149,6 +149,8 @@ enum Edit {
 | 
				
			|||||||
	EditTail,
 | 
						EditTail,
 | 
				
			||||||
	EditPrev,
 | 
						EditPrev,
 | 
				
			||||||
	EditNext,
 | 
						EditNext,
 | 
				
			||||||
 | 
						EditPrevWord,
 | 
				
			||||||
 | 
						EditNextWord,
 | 
				
			||||||
	EditKillPrev,
 | 
						EditKillPrev,
 | 
				
			||||||
	EditKillNext,
 | 
						EditKillNext,
 | 
				
			||||||
	EditDeletePrev,
 | 
						EditDeletePrev,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								edit.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								edit.c
									
									
									
									
									
								
							@ -137,6 +137,14 @@ void edit(size_t id, enum Edit op, wchar_t ch) {
 | 
				
			|||||||
		break; case EditTail: pos = len;
 | 
							break; case EditTail: pos = len;
 | 
				
			||||||
		break; case EditPrev: if (pos) pos--;
 | 
							break; case EditPrev: if (pos) pos--;
 | 
				
			||||||
		break; case EditNext: if (pos < len) pos++;
 | 
							break; case EditNext: if (pos < len) pos++;
 | 
				
			||||||
 | 
							break; case EditPrevWord: {
 | 
				
			||||||
 | 
								if (pos) pos--;
 | 
				
			||||||
 | 
								while (pos && buf[pos - 1] != L' ') pos--;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							break; case EditNextWord: {
 | 
				
			||||||
 | 
								if (pos < len) pos++;
 | 
				
			||||||
 | 
								while (pos < len && buf[pos] != L' ') pos++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		break; case EditDeletePrev: if (pos) delete(--pos, 1);
 | 
							break; case EditDeletePrev: if (pos) delete(--pos, 1);
 | 
				
			||||||
		break; case EditDeleteNext: delete(pos, 1);
 | 
							break; case EditDeleteNext: delete(pos, 1);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								ui.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								ui.c
									
									
									
									
									
								
							@ -192,6 +192,8 @@ static void errExit(void) {
 | 
				
			|||||||
	X(KeyMeta7, "\0337") \
 | 
						X(KeyMeta7, "\0337") \
 | 
				
			||||||
	X(KeyMeta8, "\0338") \
 | 
						X(KeyMeta8, "\0338") \
 | 
				
			||||||
	X(KeyMeta9, "\0339") \
 | 
						X(KeyMeta9, "\0339") \
 | 
				
			||||||
 | 
						X(KeyMetaB, "\033b") \
 | 
				
			||||||
 | 
						X(KeyMetaF, "\033f") \
 | 
				
			||||||
	X(KeyMetaM, "\33m") \
 | 
						X(KeyMetaM, "\33m") \
 | 
				
			||||||
	X(KeyFocusIn, "\33[I") \
 | 
						X(KeyFocusIn, "\33[I") \
 | 
				
			||||||
	X(KeyFocusOut, "\33[O") \
 | 
						X(KeyFocusOut, "\33[O") \
 | 
				
			||||||
@ -622,6 +624,8 @@ static void keyCode(int code) {
 | 
				
			|||||||
		break; case KeyPasteOn:; // TODO
 | 
							break; case KeyPasteOn:; // TODO
 | 
				
			||||||
		break; case KeyPasteOff:; // TODO
 | 
							break; case KeyPasteOff:; // TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							break; case KeyMetaB: edit(id, EditPrevWord, 0);
 | 
				
			||||||
 | 
							break; case KeyMetaF: edit(id, EditNextWord, 0);
 | 
				
			||||||
		break; case KeyMetaM: waddch(windows.active->pad, '\n');
 | 
							break; case KeyMetaM: waddch(windows.active->pad, '\n');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		break; case KEY_BACKSPACE: edit(id, EditDeletePrev, 0);
 | 
							break; case KEY_BACKSPACE: edit(id, EditDeletePrev, 0);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user