11

I have an application with a standard data grid in which each row represents an object.

Our current application uses F6 and F7 for add and delete, respectively. I'd like to keep these around for our legacy users but also would like to wean the user off of them over the next few versions and into the more "traditional" keys for inserting a new row and deleting the selected row. The key for deleting the selected row should, of course, be Delete.

But what key binding to use for insert?

The Insert key would make sense, but I've only used it to toggle between insert and replace mode when editing text. I don't know that I've ever seen it used to actually indicate that a new entry should be inserted. The only other meaning I can think of for the Insert key is in the old(er)-school keybindings for cut and copy, but Ctrl+X and Ctrl+C have pretty much taken over the world.

  • 2
    @Charles Wesley: Thanks for marking up the post with the keycap markup; I didn't know how to do it and now I know! – James Cronen Sep 27 '13 at 15:36
14

The Insert key is a perfectly reasonable choice. I’d like to see that become the standard. Might as well start with you. If you are currently using Insert to toggle into overtype mode, don’t. Overtype mode does more harm than good, and that kind of use of the insert key is inconsistent with how other keys are used. MS Word abandoned overtype mode years ago. It never made sense after we left character-cell word processors. It’s time we all forgot about that feature.

True, until then, users might associated the insert key with insert/overtype mode, but the insert key still remains the most obvious and least arbitrary choice, with a self-explanatory name and a keyboard position that compliments delete. All other obvious alternatives (e.g., Ctrl-I for “insert,” Ctrl-A for “add,” Ctrl-C for “create”) also have other traditional functions, functions that are actually useful and you should keep. Keyboard shortcuts are expert features. It’s okay if they take a little learning.

  • 1
    shift+insert is the traditional chord for the function described and requires no retraining. – horatio Oct 2 '13 at 17:04
  • Shift-Insert traditionally means Paste (e.g., in MS Word, Excel). Shift-Delete is Cut and Ctrl-Insert is Copy. These are old Motif standards (h71000.www7.hp.com/doc/73final/5637/5637pro_009.html). However, lots of users have never even heard of these shortcut keys (channel9.msdn.com/Forums/Coffeehouse/…), so I wouldn't rule out re-purposing them for certain user groups today. As for training, whatever you choose, if your users don't know it, they'll need to learn it. – Michael Zuschlag Oct 3 '13 at 11:41
  • I use overtype mode (Replace mode) all the time in Vim. (: Of course, it's easier to deal with when you have a fixed-width font. And good undo support is essential. – SilverWolf Oct 9 '18 at 21:55
  • Also, be aware that not all keyboards have an Insert key. Apple laptops and standard external keyboards, for example, have fn+Delete as forward-delete, but I'm not aware of any combination for Insert. – SilverWolf Oct 9 '18 at 21:56
11

Delete sould not delete the row. Delete should delete the content of the cell.

CTRL+Delete should delete the row.
CTRL+Insert should insert a new row.

  • 1
    Sounds reasonable, but it could depend on the users. To some users, Ctrl-Insert means Copy (it works in MS Word). You need to check if you have a fair number of such users. As for Delete’s function, it depends on if the UI includes the concept of selection. If so, Delete actually should delete whatever is selected. If the user selects an entire row, Delete deletes the entire row. If the user selects two characters inside a cell, Delete deletes only those two characters. If it’s just a cursor in a cell, Delete deletes one character to right. – Michael Zuschlag Sep 27 '13 at 14:16
  • 4
    Delete can delete the content of the cell once it's single- or double-clicked and activated for editing (matching Excel's behavior). But if the whole row is selected (representing an object) and the user presses delete, I'd expect the object to be deleted from the model. – James Cronen Sep 27 '13 at 14:33
  • @Michael: Definitely. This "answer" was actually intended as a shot comment, but kbd was not supported in the comments - thus it turned into an answer. What I had in mind was "CellSelection" mode. Not "FullRowSelect", nor "Edit". – Jørn E. Angeltveit Sep 28 '13 at 18:50
  • @Tenner: Sorry. I missed that you said "selected row", I was thinking "CellBrowsing" mode. – Jørn E. Angeltveit Sep 28 '13 at 18:52
  • I think whatever is selected should be deleted. I don't see the need for a separate shortcut. – Brian Ortiz Oct 1 '13 at 21:00
4

Enter would be one choice. The problem is that insert needs to specify more information than delete--where you're inserting, and generally, needs immediately to dive into the input process. Enter mimics entering a new row in a text file or a spreadsheet program, and readies people to enter more input.

People tend to delete many rows at once (one after another), making it important to have an easy keystroke. It's rarer to want to insert a bunch of rows at once--generally you want to insert a row, edit it, insert another, etc.

There are a number of problems with using Insert--some users simply don't know where it is (since they never hit it except by accident) and many keyboards simply don't have one (for example, iPads).

  • 1
    Mac keyboards in general don't have one, I believe. – Steve Bennett Oct 1 '13 at 23:57
  • Ooh, I didn't know that. Good to know, but I failed to mention that this application is Windows only for now (however, running in VMs is a possibility). Hotkey isn't the only way to add records, so this is ok for now, but good to know. – James Cronen Oct 2 '13 at 14:30
1

Either Enter or something like Shift-Enter is moderately intuitive. Using the Insert button would be completely novel, strange as that sounds.

Perhaps Ctrl+N ("new") if that works for your app, and doesn't have a bigger meaning like "new document".

  • 1
    In terms of scope, yes, Ctrl+N is used in another context to mean something else. Insert would be weird, but this is a fairly non-standard application, so adding a non-standard keybinding isn't the worst thing in the world. Thanks! – James Cronen Oct 2 '13 at 14:29
  • I think I might have seen Ctrl+I used somewhere actually, as "insert a record here". – Steve Bennett Oct 3 '13 at 1:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.