What is the best way to write faster on Vim using a non-english keyboard? - vim

I usually use Vim, and its great for the ability to do faster some actions than other editors. However, since I live in Argentina I have a Latin American keyboard, that makes everything in Vim pretty slower (to write / to search, I must press Shift+7).
Since I don't want to be changing Keyboard layouts all the time (and its pretty difficult to get used to pressing symbols as in an English keyboard), I was wondering if there was a vim plugin (of .vimrc file) that may be useful for international users.
Just for the sake of it, here's how the Latin American keyboard is laid out:
(source: support at pages.slc.edu)
By the way, I would love to go and buy an English keyboard, but unfortunately I use a Laptop.

I sympathize. You have at least a couple of options:
Since you said you'd love to buy an English keyboard, I'd recommend just changing your keyboard layout. on Windows you can do so under Regional Settings. On a basic Linux console you can use loadkeys. Under X11 you can use setxkbmap.
Just live with it the way it is. The vim help will make the most sense this way.
Search for a language map for your latin american keyboard. For instance, take a look at this one for dvorak.
I use the Dvorak keyboard layout and I just live with it the way it is. If there's a command or two that are very cumbersome, map them to something easy on your keyboard. There will inevitably be other shortcuts that are easier because of the different keyboard layout, but overall efficiency will depend on your layout and what features you use.

You can use my translit3 plugin to enter non-latin1 symbols on latin1 keyboard. Just choose one keyboard layout and write a transliteration table in order to use other symbols.

Related

Being portable with Dvorak

I've been using Dvorak for a couple of months now and have really come to enjoy it. Unfortunately not everyone shares my love and I need to use QWERTY at uni and occasionally when I program away from my desk.
I'd like to be able to use Dvorak everywhere I go, so I've been thinking I'd like to get a Dvorak keyboard that I can take with me anywhere. I'm wondering if anyone has any suggestions about this - what do you do when away from your desk when you want to use a non-standard layout?
If you use a 'portable' Dvorak keyboard, I'd like to hear about that too. I'm particularly looking for keyboards that are wireless but don't require any special software or configurations to be used. Sturdiness would be a boon too!
I've been using my own edit of a German and Swedish Dvorak keyboard layout for three years now.
As both at work and at home, I have a Windows PC, I was able to import the Keyboard Creator File I had created, and do not need to switch.
For my Apple devices, unfortunately, I could not find a way to to import it.
If it's for work, you should ask the responsible (IT?) if they can install your keyboard layout. If you tell them you are more productive this way, this should work out fine.
As for occasional keyboard usage, I think you should use your QWERTY from time to time to stay fit and get over that phase when you mix up some of the keys - there will always be situations when you may need to type a few words on a QUERTY (a friend's computer, an internet café, ...), it pays off to be flexible.
I use a mod version of Dvorak, and I use AHK script (use Ahk2Exe.exe to get win binary) to mapping qwerty to my layout on Windows. On linux, I use xmodmap.
Here is my scripts and binaries: http://whudoc.qiniudn.com/neo.html#install, and the code is hosted on GitHub: https://github.com/district10/neo_keyboard_layout/.
I use Poker II keyboard, which can be configured to have two layouts (hardware) in the same time (typical QWERTY and my version of Dvorak). As far as I know, HHKB Minila keyboard supports multi-layout too.
In brower?
https://www.branah.com/dvorak
Hope this help.
You can also try going on to http://www.theworldofstuff.com/dvorak/dvorak.html
It's not perfect, I've got various minor issues with it, but if you touchtype in Dvorak then it'll just recognise the QWERTY keystrokes as Dvorak without having to change the layout on the computer, which my work won't do. Then you can just copy and paste, and it means that even if your work won't install Dvorak, you still never need to use QWERTY.

Time to relearn touch typing? (Is this a Emacs / VIM thing?)

As a kid, I learned to type on a German keyboard1?. And even though my mom tried to make me use a "learn how to type with ten fingers" program I never did. My hands have their very own muscle memory about how to type. I found out that I use the index fingers most to reach many characters, while my hands are moving over the keyboard.
Now, here's the kicker (no flame intended!): I use and used emacs a lot and I've never really had an issue with the way I type, or at least it never felt too awkward. From time to time I like to explore VIM (and other editors) to see what has changed and which features are the new and hot features.
I came to the conclusion that, while my fingers /rest close/ to the home row, my hands move a lot and the default keyboard command layout in vim seems to prefere the fingers resting on the home row with little movement of the hands.
I don't consider myself to be a slow touch typist, but could a formal touch type education increase speed and accuracy? Furthermore is this a Emacs / VIM thing?
UPDATE: I headed over to http://typeracer.com/ :)
1: These days I type on US keyboards while switching between different layouts as needed.
Yes, you're a keyboard worker, learn to use a keyboard properly. No, it's not an Emacs / Vim thing.
If you are using emacs, makeing Caps_Lock another Ctrl key will ease strain on your little finger, when your hands are "locked" in the home row position.
for ubuntu
System->Preferences->Keyboard->
-->Layouts->Layout-Options-Ctrl key position->Make CapsLock an additional Ctrl
or for windows
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
You don't need a formal education, but a lot of discipline, concentration, dedication and hard work will make you a touch typist in a few months.
Touch typing will greatly assist you in your life, if you plan to work with computers as your day job.
Force yourself to move your hands as little as possible and use all of your fingers all of your time.
Rest your left fingers on ASDF, your right fingers on HJKL and start typing. While typing, optimize your reach for every key pressed.
If you plan to be a computer professional, touch typing should be a rite of passage, although it isn't required. But just imagine what would it look like if a master pianist didn't know all keys on piano by heart?
Not really. Especially if you are going to alt-tab to google/read documentation a lot.
Touch typing as it is good only if you are not going to use mouse and F1-F12 which is never true in modern environment.
If you are going to use them, you'll eventaually switch to some form of mutant of touch-typing.
(also whoever thouGHT that typing H with riGHT hand is briGHT idea should be shot in THe face. Left hand do it more naturally in huge amount of cases)
I'd say don't worry about it. You're not a secretary or someone who is having to take down dictated speech. It's far more important for a programmer to spend more time thinking about what they're writing rather than how they write it. If speed of typing is your biggest concern over how productive you are I think you're probably productive enough.
Do you really care? If you do, use the editor that you are more comfortable with. If are you looking for alternative, use M-x viper or learn other emacs extensions that helps you type faster.

How do I get my hands on a Dvorak keyboard?

I've always assumed that before I can use the Dvorak layout I need to purchase a Dvorak keyboard. But I can't find one on Amazon. Is it simply a matter of popping the keys off a Qwerty keyboard and moving them around?
To help you learn your way around the keyboard layout, you can physically rearrange the keys on your Qwerty keyboard. Or you can simply re-label the keys with stickers. I personally learned to type using the Dvorak layout without re-labeling or re-arranging keys, and found that it was not difficult.
Most modern OSes allow you to remap any keyboard to the Dvorak layout.
Windows XP/Vista: you can set
your mappings through Control
Panel->Regional and Language
Options->Languages->Details....
Mac OSX: System Preferences -> International -> Input Menu (thanks jmah)
Ubuntu: System -> Preferences -> Keyboard, Layouts Tab, Add..., Select the Devorak layout of your choice and optionaly set as default. You can then right-click your panel, select "Add to panel" and choose keyboard indicator. You can then switch between layouts. (Thanks Vagnerr)
If you are a touch typer, you will benefit greatly from the Dvorak layout.
The way I taught myself Dvorak as a touch typer was to tape a small copy of the layout to my monitor. Then I practiced typing by looking at the copy instead of the keys.
That was six years ago. I still use stardard Qwerty keyboards, but I haven't looked at what the keys says since I first learned to touch type 20 years ago.
You could go with Das Keyboard Ultimate, which has no letters on the keys. You will become a touch Dvorak typist in no time flat. Or you could wimp out and put labels on the keys.
I learned Dvorak by changing the layout using the OS. I printed out a keyboard layout and taped it below my monitor so I could refer to it without looking down at the keys.
Later, once I learned where the keys were, I printed out stickers and put them on the keys caps.
To this day, I just rely on the OS layout switching to get Dvorak.
I tried to rearrange the letters once, on some keyboards it doesn't work. Since the letters are different in shape based on the row they are in.
Well if you have a fat wallet then an Optimus Keyboard would give you Dvorak(and qwerty and azerty and any combination!)
You can just rearrange your keys on your current keyboard and change the layout.
Here is the key layout:
I'm not seeing the image, so here is the direct link.
If you're going to rearrange the physical keyboard, go for a Model M with removable key caps.
Switchable between qwerty and Dvorak: DvortyBoard
Cheap, but you need the OS to remap the keys: Hooleon
Don't get a dvorak keyboard. Non-touch-typing dvorak is as bad for your wrists, and as slow, as non-touch-typing qwerty. There is absolutely no point. You want to get out of that habit.
Change the layout in your OS and learn not to rely on looking at the keyboard. If anything, pop off the keycaps and put them back in randomly. If you absolutely must buy new hardware, get a Das Keyboard or any other blank keyboard.
I got two of these (one for work and one for home), and I love them:
http://matias.ca/dvorak/
It's also switchable via a button to Qwerty, as a concession to your colleagues who may need to type on it.
My only complaint is a very minor one: after 4 years, some of the labels started to fade or scratch off.
If you're just learning Dvorak, good luck. The best thing I did is switch to it 100% of the time. When I was switching back to Qwerty for speed, all I did was scramble my brain. Dvorak will be slower while you're on the learning curve, but it's well worth it. A lot less stress on the fingers in the long run, and after 12 years, I actually type faster on Dvorak than I ever did on Qwerty.
Best way to practice: open a book or magazine and copy some paragraphs in Dvorak. If you find a tricky paragraph, type it out two or three times until the patterns start to become muscle memory.
Good luck!
You'll have trouble getting the keys to fit (perhaps you could just draw over them) but yeah, you should be able to switch layout within the OS.
I don't know how much you are prepared to invest, but I think the Optimus Maximus keyboard from Art Lebedev Studios would be a good choice, since you can switch keyboard layout quite easily and no need for the key pop-up.
On most PC keyboards the keys have in each row have a different shape. The tops of the keycaps are at a different angle. This provides a slight front-to-back curvature of the top surface of the keys. (You can see this if you peer at the keys from the side).
If you go moving keys between rows, the tops of the keys will not line up... the keyboard will look strange and feel "bumpy" and uneven. Not good for touch typing.
Solutions:
A flat keyboard - a few manufacturers produce keyboards where all the keycaps are the same shape. Apple and Sun keyboards are like this, and I think most Logitech keyboards too... But be careful of the new Apple aluminium keyboard -- it may be harder to remove the keycaps safely.
Also, you are best starting with a US QWERTY keyboard. Other national layouts have some different keys, and you won't be able to get standard Dvorak by re-arranging.
You could try getting a custom keyboard from Unicomp. They offer an IBM buckling spring style keyboard called the "Customizer 104/105" that is available in many different languages, including US-Dvorak if you ask for it. I have purchased a couple of keyboards from this company and the quality is top notch. If you want a new buckling spring keyboard, this is the only company that I am aware of that offers them.
This keyboard is hardwired so you don't have any of the issues that you would have if you switch the keyboard layout in the OS - like your log-in key map being different than your account key map, or problems with remoting into another computer.
Unicomp Keyboards
You can just change the layout in your OS. It actually would be better not to get a Dvorak keyboard so you can learn Dvorak without being dependent on looking at the keys. A great typing tutor to help you learn is Stamina Typing Tutor (just google it), which has an on screen keyboard so you don't have to look at your keys. And when you aren't just practicing you can print out the Dvorak layout from Google images and refer to that as you type. If you really want to get a hardwired keyboard search Matias Dvorak on Amazon. That's the only keyboard I could find on Amazon that was Dvorak, and it has a button to switch between Qwerty and Dvorak. I would not rearrange your keys though since most OS's don't switch to Dvorak until the user logs in.

Best keyboard for custom Dvorak-based programming layout

I'm considering switching to a Dvorak-based keyboard layout, but one optimized for programming (mostly) Java and python (e.g. DDvorak, Programmer Dvorak, etc.). What particular keyboard would be best for such an undertaking? I'd consider either natural or straight keyboards.
Thanks.
I strongly discourage you from learning a layout that has been heavily optomized for any one programming language (or even a class of them..) it's much, much easier to change languages than keylayouts, and you'll have a lot of trouble finding the tweaked layouts on any random computers you need to use.
That said, I've used dvorak for years (something like 7-8 years now) on a Kinesis Contoured keyboard and it works wonderfully. The kinesis is programmable, switches between qwerty/dvorak, and you can remap the keys all you want (so you could try out ddvorak or programmer dvorak pretty easily, without making software changes, if you wanted).
The contoured keyboard also forces you to touch-type more "correctly", since you can't easily reach across the keyboard with the wrong hand.
Typematrix
(source: typematrix.com)
Plain vanilla dvorak is best imho. Yes, it does move 3 or 4 keys such as {}: etc out of the way, but you quickly get used to them in the new position, and after a while it makes no odds at all.
The pay off comes in being able to use any random pc - flick the keyboard layout to standard dvorak (which is on just about all PC's, unlike most obscure programmer layouts), and away you go. If you're used to a non-standard dvorak layout, and are forced to use a normal dvorak layout on a qwerty labeled keyboard, I suspect you're in for a whole ton of backspaces (and curse words).
I've only been using dvorak for a few years, but I can't imagine programming using anything else. (Especially with vim, the dvorak layout seems to end up with lots of the keys in much handier positions =)
oh, and as mentioned above - kinesis contoured keyboard is the way to go if you're considering changing layouts for R.S.I issues.
I think the ErgoDox is probably the best option. You used to have to order the components and build it yourself, but now you can purchase it assembled. Here is what it looks like when completed:
I think the ErgoDox is the best option. Apparently the DataHand also supports Dvorak, but I think it would have a pretty steep learning curve:
The components for the ErgoDox typically run about $250 when all is said and done, although it can definitely be built for less than that. I think the DataHand costs around $800.
Any 'normal' keyboard should be pretty much adequate for dvorak, including simple ergonomic (split in equal halves) keyboards. Some of the more esoteric split-ergonomic keyboards that aren't equally split may cause problems with the way that dvorak weights the finger usage though.
If you're going to learn dvorak, I would personally avoid plain dvorak, as it moves punctuation commonly used in programming, such as parenthesis, brackets, braces, etc too far away from the hands: There are a number of 'programmer dvorak' implementations out there which adjust dvorak for this 'oversight'.
I started this post in reply to Tom's post but it grew slightly long.
I learned to touch type at the same time as switching to the Dvorak layout and found that using a qwerty keyboard helped a lot. It stopped me from being tempted to look down at the keyboard. There's no reason to need the labels if your going to touch type and learning to touch type is more important than changing to dvorak.
Right now I'm using the Programmers Dvorak layout that I've made slight modifications to and find it easier than qwerty was.
I recently found out about the Developer's Dvorak but think it's too different for me to learn while still being able to use normal dvorak. It changes the vowel placement and just about half the other keys.
If you are planning on using a custom keyboard layout that's very far from the norm it's good to have something like Portable Keyboard Layout that you can put in a portable drive to use on any [windows] computer.
Do you use a natural keyboard, or a straight one? Keyboard preference can be intensely personal, but many higher-end keyboards have keys fitted specifically for the location of the key (slant and curvature), meaning for Dvorak you'll need to ignore the labels, move the keys and eliminate that advantage, or go with something like the blank das keyboard
My BROTHER of keyboard land. I think I found the holy grail in terms of programming keyboards. Behold the keyboard that retains the layout within the keyboard. I have a custom Dvorak keyboard layout not particularly for programing, mostly for essay writing. I do program a lot though. That retains programmable macros within its brain. That has 24 function buttons. And that has mechanical switches (if it had cherry blue or buckling it would be perfect, it currently sports alps, which arent bad at all). It is based on the renowned Northgate omnikey.
CVT Avanat Stella
http://www.theregister.co.uk/2005/11/07/avant_keyboard_review/
On the other hand, you could go 150 bucks under with the IBM Workstation, its legendary buckling spring design is a holy grail among typists. And its 24+ function buttons should prove useful. Plus its vintage goodness is something any geek would adore.
Although switching a keyboard format through software is an easy fix, having a keyboard like the Typematrix helps alot. I've been using the Typematrix 2030 for 4 years now and own 2 boards. One is for work and the other is for home use. I can now use any keyboard I want but the typematrix is definitely more comfortable and timely. This keyboard comes with software that will aid you in learning Dvorak if you don’t know how to type yet.

Is it possible to be ambikeyboardrous?

I switched to the dvorak keyboard layout about a year ago. I now use dvorak full-time at work and at home.
Recently, I went on vacation to Peru and found myself in quite a conundrum. Internet cafes were qwerty-only (and Spanish qwerty, at that). I was stuck with a hunt-and-peck routine that grew old fairly quickly.
That said, is it possible to be "fluent" in both qwerty and dvorak at the same time? If not, are there any good solutions to the situation I found myself in?
I've never used a public computer, but carry a keyboard and(/or, if you are good enough) just change the settings on the machine.
There's a special place in hell for people that change keyboard mappings on public computers.
Web
For your situation of being at a public computer that you cannot switch the keyboard layout on, you can go to this website:
http://www.dvzine.org/type/DVconverter.html
Use this to translate your typing and then use copy paste. I found this very useful when I was out of the country and had to write a bunch of emails at public computers.
USB Drive
Put this Dvorak Utility on your USB drive.
Run this app and it will put a icon in the system tray on windows. This icon will switch the computer between the two keyboard layouts and it works. (If you have tried switching back and forth from dvorak to qwerty you will know what I mean. Windows does the worst job of this one bit of functionality.)
Very possible. Although I became sadly mono-keyboarded after learning Dvorak, my wife is equally speedy at both. She recommends learning the other layout slowly, with frequent breaks to reacquaint with the previous layout.
DVAssist on a USB stick should make it easy to switch layouts on random computers. I
Yes, it is very possible. Just remember to use Qwerty every once in a while. I've been leaning Dvorak myself for about 2 weeks, and I'm up to 75wpm average. I use Qwerty every day for a bit, but most of the time I'm using Dvorak. My Qwerty speed is still averaging around 100wpm.
I also learnt the Korean Dubeolshik layout several years ago, and I average about 100wpm on that too.
Learning different keyboard layouts is much easier than learning multiple languages. And people still manage to remember their native tongue! So if you ever knew Qwerty, with a good bit of practice you should be able to get back up to speed on that fairly quickly.
That said, is it possible to be "fluent" in both qwerty and dvorak at the same time? If not, are there any good solutions to the situation I found myself in?
I've switched to Dvorak a few years ago and I've been fluent in qwerty and dvorak most of the time since (only slightly slower in qwerty than I used to be; much faster than I used to be when I use dvorak instead).
I found that the only part where switching back and forth was really hard was the beginning: I needed a few months until dvorak felt natural enough so that switching back and forth wouldn't confuse me (and hurt the learning curve). After a few months, switching back and forth was a little awkward, but quickly became entirely natural after I got used to it (school computers and a few games didn't easily let me change to dvorak, so it was nice to be able to work either way). So I think if you practice this a bit, it should be fine :)
Incidentally, once I was comfortable with both layouts, learning other layouts was extremely easy in comparison to learning dvorak. It took me only a few hours until I felt more comfortable typing Japanese characters (Hiragana direct input) than I did spelling them out, even though I had to learn it by hitting all keys and seeing what produced which character. It felt a bit like it did with languages -- once you knew two well, learning other similar languages is a lot easier than it was for the second :)
FWIW, I did finally find solution to the situation. I had my travel buddy (who is still stuck in the qwerty stone age) type while I dictated. That was a 10x speed improvement over my hunting-and-pecking. And much easier, too.
I'm ambidkeyboardwhatever, but in two different languages, so that helps with the muscle memory that someone mentioned. I use a Qwerty in English and Azerty in French. My colleagues curse every time they try to use my computer!
I looked briefly at learning Dvorak, but that would only be able to replace Qwerty, because it doesn't have the accented characters.
Having said all that, whatever keyboard layout you choose, the most important thing is to learn to touch-type!
Myself, I type 40wpm Dvorak versus 80wpm QWERTY, which roughly correlates with how often I use these layouts. It takes me about a minute of typing to fully make the switchover.
My sister has managed to train herself to type QWERTY on full-size keyboards but Dvorak on the miniature keyboard on her ASUS Eee, and has no trouble switching between two keyboards at will. She does have major problems when trying to use Dvorak on a full-size keyboard or QWERTY on the Eee, so I guess it's something related to muscle memory.
So, with some qualifications, I'd say that yes, it is completely possible to be "ambikeyboardrous".
Yes, it's completely possible to be fluent in both Dvorak and Qwerty, but you have to specifically work at it to develop the dual fluency. When I began to learn Dvorak it initially crippled me in Qwerty, so I wasn't able to type easily in either layout. But I was dealing with carpal tunnel and unable to do much typing anyway, so learning Dvorak couldn't make me any slower. After several months of switching between Dvorak and Qwerty increasingly often, the switch got easier and easier every time.
Now I can switch instantly. It's like there's a keyboard layout mode switch in my subconscious. I can't see it, but I can tell my brain what layout I want to use, and my fingers do the rest.
But if you're interested in learning Dvorak, consider whether it's worth the effort:
If you're interested in Dvorak to improve your typing speed, my advice is not to get your hopes up. It takes a long time to learn and I'm not convinced it improves typing speed. And it makes basic key shortcuts like those for cut/copy/paste a lot more annoying.
If you're interested in Dvorak because it seems like a cool ability or would look good on a CV, don't bother. Learning a foreign language is far more interesting.
If you're interested in Dvorak to reduce hand pain, give it a go. I'm not sure if it reduced my hand pain or not, but I can believe that it would, because it definitely reduces the distance one's fingers have to travel.
I've been typing Dvorak for about 10 yearns now. I find that I can switch back to qwerty pretty fluently after a few min. I have to look at the keyboard at first but, it comes back. What's funny is that I can only switch back to Qwerty if I'm using a computer or keyboard thats not mine. If I switch the mode to Qwerty on my own laptop, I just struggle. It has to be in Dvorak. =)
Yes. I type Dvorak on a Kinesis Advantage keyboard on my desktops, but type qwerty on my Macbook. Possibly it helps that they are so different, my muscles figure out what it is that they are typing on.
I would say no. I have used both, and they are different for very good reason (warning, history lesson)
The Dvorak keyboard is optimal, the qwerty layout was designed so that the pegs on a typewrier would not collide (so letters that often come next to each other are split up)
Because these are so different, its really not possible to be really good on both. You will find that even if you look at the keyboard while typing you eventually develop muscle memory that allows you to know where the keys are. This will get ALL messed up if you start moving where the keys are.
#Thomas Owens - the person in that cafe after you is going to be proper befuddled :-D
I guess to be good on both you'd have to alternate all the time. I have enough trouble switching between my laptop and desktop keyboards :-)
I'm using a homemade version of QWERTY (with all french letters mapped) at home and at work. I am personally stuck when I have to use the usual layout here (AZERTY). I feel your pain.
For what I have witnessed, everyone gets used to a single mapping, and trying to use an other layout is quite hard.
I've never used a public computer, but carry a keyboard and(/or, if you are good enough) just change the settings on the machine.

Resources