Add info about Backspace and Delete to the FAQ
Here is a modest attempt at cleaning it up a little bit. I changed a few phrases that seemed awkward, but I think the content is the same. -- Wolfgang Corcoran-Mathe Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
This commit is contained in:
		
				
					committed by
					
						 Roberto E. Vargas Caballero
						Roberto E. Vargas Caballero
					
				
			
			
				
	
			
			
			
						parent
						
							f210ea26c4
						
					
				
				
					commit
					e8f3513bf4
				
			
							
								
								
									
										85
									
								
								FAQ
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								FAQ
									
									
									
									
									
								
							| @@ -104,54 +104,53 @@ This is an issue that was discussed in suckless mailing list | |||||||
| <http://lists.suckless.org/dev/1404/20697.html>: | <http://lists.suckless.org/dev/1404/20697.html>: | ||||||
|  |  | ||||||
| 	Well, I am going to comment why I want to change the behaviour | 	Well, I am going to comment why I want to change the behaviour | ||||||
| 	of this key. When ascii was defined in 1968 communication | 	of this key. When ASCII was defined in 1968, communication | ||||||
| 	with computers were done using punched cards, or hardcopy | 	with computers was done using punched cards, or hardcopy | ||||||
| 	terminals (basically a typewritter machine connected with | 	terminals (basically a typewriter machine connected with the | ||||||
| 	the computer using a serial port). Due to this, ascii defines | 	computer using a serial port).  ASCII defines DELETE as 7F, | ||||||
| 	DELETE as 7F, because in the puched cards, it means all the | 	because, in punched-card terms, it means all the holes of the | ||||||
| 	holes of the card punched, so it is a kind of 'phisical | 	card punched; it is thus a kind of 'physical delete'. In the | ||||||
| 	delete'. In the same way, BACKSPACE key was a non destructive | 	same way, the BACKSPACE key was a non-destructive backspace, | ||||||
| 	back space, as in typewriter machines.  So, if you wanted | 	as on a typewriter.  So, if you wanted to delete a character, | ||||||
| 	to delete a character, you had to BACKSPACE and then DELETE. | 	you had to BACKSPACE and then DELETE.  Another use of BACKSPACE | ||||||
| 	Other use of BACKSPACE was accented characters, for example | 	was to type accented characters, for example 'a BACKSPACE `'. | ||||||
| 	'a BACKSPACE `'. The VT100 had no BACKSPACE key, it was | 	The VT100 had no BACKSPACE key; it was generated using the | ||||||
| 	generated using the CONTROL key as another control character | 	CONTROL key as another control character (CONTROL key sets to | ||||||
| 	(CONTROL key sets to 0 b7 b6 b5, so it converts H (code | 	0 b7 b6 b5, so it converts H (code 0x48) into BACKSPACE (code | ||||||
| 	0x48) into BACKSPACE (code 0x08)), but it had a DELETE key | 	0x08)), but it had a DELETE key in a similar position where | ||||||
| 	in a similar position where BACKSPACE key is located today | 	the BACKSPACE key is located today on common PC keyboards. | ||||||
| 	in common PC keyboards. All the terminal emulators emulated | 	All the terminal emulators emulated the difference between | ||||||
| 	correctly the difference between these keys, and backspace | 	these keys correctly: the backspace key generated a BACKSPACE | ||||||
| 	key generated a BACKSPACE (^H) and delete key generated a | 	(^H) and delete key generated a DELETE (^?). | ||||||
| 	DELETE (^?). |  | ||||||
|  |  | ||||||
| 	But the problem arised when Linus Torvald wrote Linux, and | 	But a problem arose when Linus Torvalds wrote Linux. Unlike | ||||||
| 	he did that the virtual terminal (the terminal emulator | 	earlier terminals, the Linux virtual terminal (the terminal | ||||||
| 	integrated in the kernel) returns a DELETE when backspace | 	emulator integrated in the kernel) returned a DELETE when | ||||||
| 	was pressed, due to the fact of the key in that position | 	backspace was pressed, due to the VT100 having a DELETE key in | ||||||
| 	in VT100 was a delete key. This created a lot of problems | 	the same position.  This created a lot of problems (see [1] | ||||||
| 	(you can see it in [1] and [2]), and how Linux became the | 	and [2]). Since Linux has become the king, a lot of terminal | ||||||
| 	king, a lot of terminal emulators today generate a DELETE | 	emulators today generate a DELETE when the backspace key is | ||||||
| 	when backspace key is pressed in order to avoid problems | 	pressed in order to avoid problems with Linux. The result is | ||||||
| 	with linux. It causes that the only way of generating a | 	that the only way of generating a BACKSPACE on these systems | ||||||
| 	BACKSPACE in these systems is using CONTROL + H. I also | 	is by using CONTROL + H. (I also think that emacs had an | ||||||
| 	think that emacs had an important point here because CONTROL | 	important point here because the CONTROL + H prefix is used | ||||||
| 	+ H prefix is used in emacs in some commands (help commands). | 	in emacs in some commands (help commands).) | ||||||
|  |  | ||||||
| 	From point of view of the kernel, you can change the key | 	From point of view of the kernel, you can change the key | ||||||
| 	for deleting a previous character with stty erase. When you | 	for deleting a previous character with stty erase. When you | ||||||
| 	connect a real terminal into a machine you describe the | 	connect a real terminal into a machine you describe the type | ||||||
| 	type of terminal, so getty configure the correct value of | 	of terminal, so getty configures the correct value of stty | ||||||
| 	stty erase for this terminal, but in the case of terminal | 	erase for this terminal. In the case of terminal emulators, | ||||||
| 	emulators you don't have any getty that can set the correct | 	however, you don't have any getty that can set the correct | ||||||
| 	value of stty erase, so you always get the default value. | 	value of stty erase, so you always get the default value. | ||||||
| 	So it means that in case of changing the value of the | 	For this reason, it is necessary to add 'stty erase ^H' to your | ||||||
| 	backspace keyboard, you have to add a 'stty erase ^H' into | 	profile if you have changed the value of the backspace key. | ||||||
| 	your profile. Of course, other solution can be that st | 	Of course, another solution is for st itself to modify the | ||||||
| 	itself modify the value of stty erase.  I have usually the | 	value of stty erase.  I usually have the inverse problem: | ||||||
| 	inverse problem, when I connect with non Unix machines, and | 	when I connect to non-Unix machines, I have to press CONTROL + | ||||||
| 	I have to press control + h to get a BACKSPACE, or the | 	h to get a BACKSPACE. The inverse problem occurs when a user | ||||||
| 	inverse, when a user connects to my unix machines from a | 	connects to my Unix machines from a different system with a | ||||||
| 	different system with a correct backspace key. | 	correct backspace key. | ||||||
|  |  | ||||||
| 	[1] http://www.ibb.net/~anne/keyboard.html | 	[1] http://www.ibb.net/~anne/keyboard.html | ||||||
| 	[2] http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-5.html | 	[2] http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-5.html | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user