01-05-2016 01:53 PM
My proposal to ship default shortcuts in LabVIEW 2016 has been approved, and I have completed the code changes for the feature. As part of this feature, I would like to standardize the object shortcuts that will ship with LabVIEW 2016. This includes shortcuts that will be used for non-English LabVIEW. Below is the list of object shortcuts I plan on shipping in LabVIEW 2016. Note that this list has the following requirements:
1. Objects that are commonly dropped. I don't want to have a shortcut for every single item in the palettes.
2. Objects that are part of the default LabVIEW Core palette set for Windows, Mac, and Linux. That means I have excluded things like Timed Loop (Windows only), New VI Object function (requires scripting to be enabled), etc.
3. Shortcuts can be easily typed with the left hand only.
Please let me know if you have any feedback on these shortcuts. Note that they are slightly different than my original list that has been available for many years, so I'll be re-learning a few things myself as well. I'd like to have the "final" list available in the LabVIEW 2016 beta, so if you find anything glaringly offensive or absent in the list below, please reply to this thread soon.
As a reminder, you will not be forced to use these shortcuts. If you copy over your LabVIEW INI file from 2015 or earlier into 2016, your existing shortcut list will be used. This list is only the *default* set, i.e. the set that gets installed if the user doesn't have any pre-existing shortcuts defined. There will also be a button in the Quick Drop Configuration dialog to reset whatever existing shortcuts are present to the default set.
Thanks everybody for all your feedback so far, I'm really excited and hopeful that we'll see even more Quick Drop adoption take place as a result of this feature in LabVIEW 2016.
Proposed Default Front Panel Object Shortcuts (rev2)
ac | Array |
athc | File Path Control |
athn | File Path Indicator |
bc | Push Button |
bn | Round LED |
cb | Framed Color Box |
cc | Cluster |
cr | Control Refnum |
en | Enum |
erc | Error In 3D.ctl |
ern | Error Out 3D.ctl |
nc | Numeric Control |
nn | Numeric Indicator |
sac | Select a Control... |
sc | String Control |
sn | String Indicator |
vr | VI Refnum |
wc | Waveform Chart |
wg | Waveform Graph |
xg | XY Graph |
Proposed Default Block Diagram Object Shortcuts (rev2)
1dg | One Button Dialog |
2as | Matrix Size |
2dg | Two Button Dialog |
3dg | Three Button Dialog.vi |
aae | Add Array Elements |
ac | Array Constant |
ad1 | Increment |
as | Array Size |
asb | Array Subset |
atch | Match Pattern |
athc | Path Constant |
ats | Array To Spreadsheet String |
avg | Mean.vi [NI_AALBase.lvlib] |
ba | Build Array |
bath | Build Path |
bbn | Bundle By Name |
car | Compound Arithmetic |
cb | Color Box Constant |
cbr | Call By Reference |
cc | Cluster Constant |
ccat | Concatenate Strings |
cds | Conditional Disable Structure |
cerr | Clear Errors.vi |
cf | Close File |
cmd | System Exec.vi |
cr | Close Reference |
crf | Open/Create/Replace File |
cs | Case Structure |
csc | Class Specifier Constant |
cv | Current VI's Path |
dbl | To Double Precision Float |
dc | DBL Numeric Constant |
dds | Diagram Disable Structure |
dec | Decrement |
dfa | Delete From Array |
dq | Dequeue Element |
dv | Divide |
ea | Empty Array? |
eath | Empty Path Constant |
ec | Error Cluster Constant |
ecf | Error Cluster From Error Code.vi |
eq | Equal? |
eqz | Equal To 0? |
er | Error Ring |
erg | Merge Errors |
ess | Less? |
esseq | Less Or Equal? |
esseqz | Less Or Equal To 0? |
essz | Less Than 0? |
estr | Empty String/Path? |
estrc | Empty String Constant |
evstr | Event Structure |
ext | To Extended Precision Float |
fb | Feedback Node |
fc | False Constant |
fca | First Call? |
fs | For Loop |
fss | Flat Sequence Structure |
fstr | Format Into String |
fxp | To Fixed-Point |
geq | Greater Or Equal? |
geqz | Greater Or Equal To 0? |
gr | Greater? |
grz | Greater Than 0? |
i16 | To Word Integer |
i32 | To Long Integer |
i64 | To Quad Integer |
i8 | To Byte Integer |
inf | Positive Infinity |
-inf | Negative Infinity |
na | Initialize Array |
nae | And Array Elements |
nan | Not A Number/Path/Refnum? |
nc | Numeric Constant |
ndx | Index Array |
neq | Not Equal? |
neqz | Not Equal To 0? |
nes | In Place Element Structure |
nq | Enqueue Element |
nt | Not |
nv | Invoke Node |
qr | Quotient & Remainder |
ra | Reverse 1D Array |
ras | Replace Array Subset |
rbf | Read from Binary File |
rn | Property Node |
rndd | Round Towards -Infinity |
rndu | Round Towards +Infinity |
rtf | Read from Text File |
s1d | Search 1D Array |
sath | Strip Path |
sav | Select a VI... |
sb | Subtract |
sc | String Constant |
se | Select |
seng | String Length |
serr | Simple Error Handler.vi |
sgl | To Single Precision Float |
sqr | Square Root |
srt | Sort 1D Array |
sss | Search/Split String |
sta | Spreadsheet String To Array |
svr | Static VI Reference |
tc | True Constant |
tcase | To Lower Case |
tct | Tick Count (ms) |
tra | Transpose 2D Array |
tsc | To More Specific Class |
tvar | To Variant |
u16 | To Unsigned Word Integer |
u32 | To Unsigned Long Integer |
u64 | To Unsigned Quad Integer |
u8 | To Unsigned Byte Integer |
ubn | Unbundle By Name |
vae | Or Array Elements |
vc | Variant Constant |
vr | Open VI Reference |
vsr | VI Server Reference |
vtd | Variant To Data |
wat | Wait (ms) |
wbf | Write to Binary File |
wc | Waveform Constant |
ws | While Loop |
wtf | Write to Text File |
x | Multiply |
xae | Multiple Array Elements |
01-05-2016 02:55 PM
Block Diagram Functions
For me I prefer constants to have a shortcut that is the one letter for that data type, and then the letter c. There are a few exceptions but for the most part this helps discover shortcuts to constants you may have forgotten about. So for me I would make the following changes to be consistent
ac - Array Constant
pc - Path Constant
cc - Cluster Constant
ec - Error Cluster Constant
nc - Numeric Constant
sc - String Constant
vc - Variant Constant
wc - Waveform Constant (not on the list)
Here are a few I'd also change, or have changed in my personal config. For me being able to remember them is more important thant only using my right hand. If I can't remember it, it doesn't matter how useful of a shortcut it is.
ce - Clear Error (you have cerr)
me - Merge Error (I can see a preference to right handedness)
mul - Multiply (ex?)
cat - Concatenate String (currently ccat)
in - Invoke Node (right handed preference)
pn - Property Node (right handed preference)
tv - To Variant (currently tvar)
div - Divide (currently dv)
sp - Strip Path (currently sath, wasn't it always sp?)
bp - Build Path (currently bath, wasn't it always bp?)
rdf - Read From Text File (currently rt)
wrf - Write to Text File (currently wt)
db - To Double Point Precision (currently tdb)
And here are a few new functions that I don't think you have that I find useful.
cmd - System Exec.vi
sl - String Length
vi - VI Server Reference (this drops a "This VI" reference)
i8 - To Byte Integer
i16 - To Word Integer
i32 - To Long Integer
i64 - ...
u8 - ...
u16 - ...
u32 - ...
u64 - ...
ti - To Time Stamp
tra - Transpose 2D Array
inf - Positive Infinity
Front Panel Controls
Similarly to the comment about the constants earlier, I also prefer things like one letter then the letter c for control, or one letter then the letter i for indicator.
ac - Array
cc - Cluster
ec - Error Controls (this is a VI that merges both a modern Error In and Error Out)
pc - Path Control
pi - Path Indicator
sc - String Control
si - String Indicator
ni - Numeric Indicator
If we haven't already discussed this, I think you know my general opinion is that remembering the function is much more important than being able to do it with one hand. If it takes 8 seconds to find it on the palette, or takes 1.5s to type "bp" then move my hand back to the mouse, or if it takes 1.0s to type "bath" I'd still prefer typing "bp" because I'll actully use it. Maybe the other people brains are wired different, and maybe I'd remember the new method.
Actually I just noticed several of your right handled shortcuts use the right hand of the keyboard, I can't actually type bath without using my left hand since my two keyboard halfs are about 4 inches apart. Anyway glad to hear there will be some kind of standard, even if it is one I don't fully agree with.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
01-05-2016 03:18 PM
I lean towards Brian's direction, but since quick drop can have more than one shortcut for an item, maybe make shortcuts for both styles? i.e. both "bp" and "bath"?
I'll upvote these conversion types:
i8 - To Byte Integer
i16 - To Word Integer
i32 - To Long Integer
i64
u8
u16
u32
u64
sgl
dbl
ext
fxp
Also, because it is natural :
sqrt square root
/ quotient
= equals
=> greater or equal
=>0 greater or equal to zero
...
mean mean.vi (instead of getting "mean ptbypt.vi" as the top hit)
fft fft.vi (instead of getting "fft ptbypt.vi" as the top hit)
sum add array elements
product multiply array elements
round down Round towards - Inf
round up Round towards + Inf
v2d Variant to data
01-05-2016 08:49 PM
Brian Hoover wrote:
ac - Array Constant
pc - Path Constant
cc - Cluster Constant
ec - Error Cluster Constant
nc - Numeric Constant
sc - String Constant
vc - Variant Constant
wc - Waveform Constant (not on the list)
I prefer the idea of having the "c" at the end of these as well. Just extra letter does make it easier for my brain to remember what the shortcut is.
Brian Hoover wrote:
rdf - Read From Text File (currently rt)
wrf - Write to Text File (currently wt)
I would prefer these instead:
rtf - Read from Text File
wtf - Write to Text File
rbf - Read from Binary File
wbf - Write To Binary File
Going with the first letters of each main word is the easiest to remember.
01-06-2016 02:34 AM
Consistency is the key for me. I see what you did with "vae - Or Array Elements" but shortcuts like that are a deviation from how the majority are constructed and require an addtional bit of knowledge to use that should ideally be avoided.
Going with the first letter of each main word, as crossrulz suggests, works for me but suspect even this method will have issues as letter combinations get used up.
01-06-2016 06:20 AM
This news makes this IE idea relevant again - quick drop shortcut context help.
01-06-2016 07:46 AM
crossrulz wrote:
I would prefer these instead:
rtf - Read from Text File
wtf - Write to Text File
rbf - Read from Binary File
wbf - Write To Binary File
Going with the first letters of each main word is the easiest to remember.
I don't feel strongly one way or another, it's just Read in my mind can be shortened to RD, and Write to WR, maybe it is years of icon editing, and trying to squeeze every character I can.
I'd suggest that the vae for Or Array Elements may have came from the nae for And Array Elements, because aae was taken for the Add Array Elements.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
01-08-2016 02:10 PM
Thanks for the feedback, everybody! After taking into account y'all's feedback, I have posted rev 2 of the proposed default shortcuts above. Here are some notes regarding the changes:
1. I decided not to include shortcuts for multiple objects ('bath' and 'bp' for Build Path, e.g.). The reason is that, if you're moving your right hand over to the keyboard to type, then you've already incurred the penalty of the hand switch, and typing additional characters to auto-complete the object name is a negligible increase in the time it will take to specify the object. Plus, we're currently at 126 shortcuts on the diagram, which seems like a lot to me. Cutting out shortcuts for duplicate objects seemed like the easiest way to keep the size of the list down.
2. I included some shortcuts that require the right-hand to type. These are shortcuts like "i32", "cmd", etc., that don't have a legitimate left-hand-only counterpart, but are still useful shorthand for commonly-used objects.
3. I agree with the suggestions that constant shortcuts should all end in 'c', so I made that change. And to be consistent on the panel, I also made Array and Cluster be 'ac' and 'cc', respectively.
Let me know if y'all have any additional feedback on the 'rev2' lists.
01-08-2016 02:56 PM
Sweet, rev 2 looks pretty good. Obviously there are some things I don't agree with, but other things I can get used to. Besides some things I'm going to want a specific way that maybe no one else will want, which is where I can customize my setup.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
03-07-2016 10:03 AM
Forgive me if I've missed the discussion elsewhere, but have there been any requests for single-key shortcuts? I'm not sure if I just execute the query too soon, or if there's some lag in the quick drop lookup but I find that I frequently drop a CAR when I intended a CS (the S didn't make it in). Sometimes it's a WAT instead of a WS. For the common ones I've written single-key shortcuts. Anyone else had this trouble? Any appeal for single-key shortcuts?