
Vim ported to iOS - stevelosh
http://applidium.com/en/applications/vim/
======
6ren
Vim is for coding. How does this work out on the iPad?

Does one edit remote files locally, and compile/run remotely? (the benefit is
the editing _feels_ instant - no keystroke latency.)

Or has Apple let up on the "no coding for you!" iPad/iPhone terms? (I thought
they would eventually, once their dev environment is firmly established - and
they'll have to, if/when they adopt iOS on their {lap,/desk}tops - but maybe
today is not yet that day. iOS devices sell macs as dev machines)

~~~
riobard
_Vim is for coding. How does this work out on the iPad?_

With a bluetooth keyboard and a charging dock or a stand, iPad is a great
platform for Vim coding.

 _Does one edit remote files locally, and compile/run remotely? (the benefit
is the editing feels instant - no keystroke latency.)_

With Dropbox support this would be possible.

 _Or has Apple let up on the "no coding for you!" iPad/iPhone terms?_

There is no such term. The term used to be that you cannot bundle a compiler
with your app, but even that has been lifted recently with Lua interpreter
embedded in many games.

~~~
bradhe
> With a bluetooth keyboard and a charging dock or a stand, iPad is a great
> platform for Vim coding.

So, when your iPad is a laptop Vim is great!

~~~
riobard
My point is that with this and iSSH, iPad + a keyboard could be a serious
alternative to a traditional laptop for many types of programming tasks.

~~~
levesque
Any free alternatives to iSSH? I don't feel like paying 10$ just to try it
out.

~~~
philo23
This isn't free, but it is a bit cheaper in my opinion it's miles better,
[http://www.panic.com/blog/2011/04/introducing-prompt-ssh-
for...](http://www.panic.com/blog/2011/04/introducing-prompt-ssh-for-ios/)

If I remember correctly, iSSH hasn't been updated for quite some time now.
Though I might be wrong.

~~~
daantje
An upcoming version, that fixes font rendering problems, is mentioned here:

<http://groups.google.com/group/issh/msg/f16d119aa00d3570>

------
0x0
Interesting that they actually exit on ":q", which is prohibited by the iOS
Human Interface Guidelines:
[http://developer.apple.com/library/ios/#documentation/UserEx...](http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UEBestPractices/UEBestPractices.html#//apple_ref/doc/uid/TP40006556-CH20-SW27)

Also, ":Explore" and then "-", "-", "-"... works to browse the file system, or
at least the parts allowed by the app sandbox

~~~
sc00ter
I think they're called "guidelines" for a reason, and nowhere in them is the
word "prohibited" used.

~~~
apetresc
Except that in the vast majority of cases, not following them really hurts
your chances of getting into the App Store.

Try to find a few other apps on the App Store that you can exit from within
the app, to get a sense of just how much of a "guideline" this really is.

~~~
lazerwalker
I can see two likely scenarios why this got passed:

1\. The reviewer has never used vim. As someone unfamiliar with vim, it never
occurred to them to type :q, and thus they never saw that behavior.

2\. The reviewer has used vim before, and knows how it works. With that
familiarity, the reviewer understood that :q quitting the app was the behavior
that users would expect.

------
apaprocki
... and the one feature they don't list: iCloud .vimrc sync!

~~~
Ecco
Hi. Indeed, iCloud syncing will be awesome. I did _not_ add it to this release
yet though. If anyone wants to contribute, patches are welcome!

------
edanm
I've been wanting vim support on the iPhone for a while.

I actually think it's a _big thing_ that would work well on the iPhone. The
whole _point_ of vim is that, with only a few keys, you can navigate anywhere
you want extremely quickly. Most of the limitations of the iPhone are things
like "can't see many keys at once", and "hard to go to specific lines by
dragging your finger around the screen", etc. Vim on the iPhone can fix all
that.

Haven't seen this app though, off to play with it. Hope they did a good job :)

------
tambourine_man
What's the biggest advantage over SSHing to your server? Is the interface
optimized?

I mean, you're almost never offline these days, so local storage can't be it,
right?

I suggest mapping 'jj' to ESC rather than '\'

~~~
edanm
Small tip - I use "jk" instead of "jj" for ESC.

I always thought the difference was personal preference, but there is actually
1 good reason to use "jk". If you get used to pressing "jk" all the time,
you'll probably end up using it in Normal mode as well as insert mode. "jj"
will move up 2 rows in Normal mode, while "jk" doesn't do anything. Therefore
you can use "jk" as a reflex every time you get to the keyboard, and it won't
screw you up.

~~~
ulisesrmzroche
ctrl-c, to avoid any of that stuff. 'jk' will move you one row down, and one
row up.

~~~
edanm
Yes, except ctrl-c moves you off home row, which I wanted to avoid.

Also, technically, ctrl-c is _not_ the same as escape - it also sends a cancel
signal. I actually have no idea what the practical difference is, I just know
that some commands treat it differently.

~~~
ulisesrmzroche
It doesn't check for abbreviations and doesn't trigger InsertLeave, which
essentially means that any pending command is aborted, but you're totally
right about not leaving the home row.

I just right now remapped caps-lock to control and use CTRL-[ to escape
instead.

------
toblender
Nice work. It would be nice to add a few extra keys like you were suggesting
like "tab", "ctrl" and "escape". Maybe slide them down from the top when you
swipe the edges.

Another comment, this looks great for editing a fresh file on the run, but it
would be nice to ssh into a server with existing files.

Great effort!

------
cleverjake
I'm confused, how does one use the esc key without a keyboard?

~~~
neckbeard
As explained on the splashscreen, they've remapped that to backslash. I
suspect it'd be much more useful with a BT keyboard - lack of ctrl and tab for
a start.

The font is pretty ugly too - I can't easily tell the difference between q and
g.

However, it is a neat hack, if not very usable.

~~~
daxelrod
This commit [1] seems to indicate that it's possible to change the font.

However, I can't actually figure out a way to do so; ":set guifont" doesn't
appear to work.

[1]:
[https://github.com/applidium/Vim/commit/be572d759e857de58453...](https://github.com/applidium/Vim/commit/be572d759e857de58453b4427bc8b7a66c76d379)

~~~
Ecco
Hi :-) I added font support pretty much at the last minute. Here's an example
of something that should work ":set guifont=Courier:h14"

------
superchink
How about file management? Anyone know how files are stored/accessed?

~~~
joshu
It can only edit files in $HOME, it says.

~~~
1336
You can also poke around the file system with a combination of :cd and
:Explore

:dir doesn't seem to work.

~~~
stewbrew
This could be because :dir is not a vim command.

------
kurrent
I'll check this out app out. I've tried using the touch screen keyboard on an
ipad thru ssh and using vim. it was unbearable, to say the least.

i ended up getting an asus transformer prime that has a keyboard dock and the
keys can be rebound to your like (esc, ctrl, etc) and it's the closest to the
"real thing" experience i have found on a tablet

------
kylebrown
Yet another emacs/vim article, and I always look for an excuse to get excited
but never can.

It seems that the speed at which I think/code is much slower than the speed at
which I type. So I can't imagine that I would benefit from skills in
emacs/vim-fu.

Is this preconception valid, or can anyone debunk?

~~~
Splines
This is a circular argument (or some sort of thing like that), but if you ever
find yourself at a *nix command line prompt and need to edit a file, you can
be certain that vim will be available. Basic familiarity with it can be
helpful.

Personally, I used to write a ton of perl inside Vim as a student, but these
days I'm in VS all the time, and only use Vim like I would use Notepad - when
I want to do quick edits in a file that isn't worth the heavy handed-ness that
is starting my IDE.

I'm like you - I spend more time thinking about my problems, and typing them
isn't usually a hindrance. If I find that my typing/keyboard navigation speed
is holding me back, it's a sign that I designed myself into a corner where I
have to write a ton of boilerplate/repetitive code.

~~~
Gmo
What port of Vim do you use under Windows ?

~~~
Splines
At my work we get Vim for free with your dev enlistment. It's 7.3.46, and the
version that works inside cmd.exe.

------
DrHankPym
Wow, the only thing missing now is Git / Github.

~~~
Ecco
Definitely. Unfortunately Git is GPL, and given the trouble we went through
with VLC we decided not to work on that feature. It's definitely sad though.

~~~
Argorak
Would libgit2 improve this situation for you? It comes with a linking
exception which should keep you on the safe side.

Sadly, most of the network stuff is not or only partially implemented yet,
such as clone and push. They have an example for 'fetch', though.

~~~
Ecco
Oh, I wasn't aware of this. Actually yes, it might :-) Thanks for the pointer!

------
oacgnol
Awesome news! I was searching on Cydia the other day to see if there was a vim
package available... but I'm definitely happy to see this.

~~~
jcitme
There is, though. I don't understand... personally I've been using a combo of
iSSH into my own iphone. ~/ is located at /private/var/mobile and there's no
latency (you ARE connecting to localhost). Git and vim installed means that
basically, you can be self sufficient from your iPad/iPhone, without even
needing an additional workstation to SSH into. Hell, even Python and Ruby can
be installed on the jailbroken iphone. It's basically a portable POSIX-
compatible system, after you install all the necessary packages (network-cmds
for ping, for example) you're all set.

------
nwest
"Unfortunately, without an escape key it’s not possible to leave insert mode.
That’s why by default the backslash key (‘\’) is mapped to the ‘Esc’ key.
You’re free to overwrite this setting by unmapping the backslash key."

from <http://applidium.com/en/applications/vim/support/>

~~~
kemiller
You'd think this would be a great use for a custom gesture. Actually, having
various gestures available as mappable objects would be pretty cool...

~~~
Ecco
Definitely :-) Just add this as a feature request on GitHub. I was considering
adding this, but I wasn't sure if other people would like it.

------
fpotter
If you don't feel like downloading it, here's a web-based live demo --

[http://www.pieceable.com/view/bundle/p/a2a89/com.applidium.V...](http://www.pieceable.com/view/bundle/p/a2a89/com.applidium.Vim)

As the docs say, if you want to leave insert-mode, you have to use the '\' key
since there's no ESC.

------
g3orge
I was always using "Prompt" to connect to an ssh server and then use vim there
with an external keyboard. But that's a nice touch.

~~~
kisom
I've only got a WiFi iPad and I'm offline quite a bit, so this is cool.

------
hack_edu
Does anyone know what they keyboard skin/layout is on their splash page
screenshots? Its definitely not stock.

~~~
janus
I think you have to slide two fingers to opposite sides of the screen for they
keyboard to split. (At least that is what was showed in the iOS 5 videos, I
don't have an iPad)

------
huntaub
Does anyone know how this will go down after what happened with Applidium's
attempt to port VLC?

~~~
revscat
IIRC, the decision to pull VLC from the App Store was made by one of the VLC
developers.

~~~
rmc
Apple pulled it due to it being copyright infringement. The VLC author
released their code under the GPL licence, and Apple do not distribute
software on the AppStore in a way that meets the GPL, and hence they were in
breech of the licence and could not distribute it.

------
wsxiaoys
I cannot wait for the port of NativeClient

------
its_so_on
ahahahahahahahahaha. This is hilarious. The author of vi says:

"It was really hard to do because you've got to remember that I was trying to
make it usable over a 300 baud modem. That's also the reason you have all
these funny commands. It just barely worked to use a screen editor over a
modem. It was just barely fast enough. A 1200 baud modem was an upgrade. 1200
baud now is pretty slow.

9600 baud is faster than you can read. 1200 baud is way slower. So the editor
was optimized so that you could edit and feel productive when it was painting
slower than you could think. Now that computers are so much faster than you
can think, nobody understands this anymore.

The people doing Emacs were sitting in labs at MIT with what were essentially
fibre-channel links to the host, in contemporary terms. They were working on a
PDP-10, which was a huge machine by comparison, with infinitely fast screens.

So they could have funny commands with the screen shimmering and all that, and
meanwhile, I'm sitting at home in sort of World War II surplus housing at
Berkeley with a modem and a terminal that can just barely get the cursor off
the bottom line.

It was a world that is now extinct. People don't know that vi was written for
a world that doesn't exist anymore - unless you decide to get a satellite
phone and use it to connect to the Net at 2400 baud, in which case you'll
realize that the Net is not usable at 2400 baud. It used to be perfectly
usable at 1200 baud. But these days you can't use the Web at 2400 baud because
the ads are 24KB."

source:
[http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_g...](http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/print.html)

In other words, the PRIMARY design constraint with VI was how long it took to
update a screen. All these keyboard modes and so on are about getting as
little over the wire as possible while still having a full screenful to look
at locally.

Sure, this idiom actually is very useful on a locally-running vi too (not to
mention vi over an ssh), the keyboard commands are a powerful way to interface
with the text.

But the idea of porting this to a machine that 1) will run vi locally (not on
the remote machine through an SSH session), and 2) has no keyboard

is so funny it hurts! Still, A for Effort.

~~~
stewbrew
vi != vim

I guess running a terminal locally causes some pain too?

~~~
its_so_on
no, not at all. In fact I administer my own computer with vi (meaning vim),
from a local terminal instance.

But the fact remains that porting an app like that to a touchscreen device
meant to hide systems administration (as iOS does) is getting so far BOTH from
the history of vi AND its most prevalent current usage.

That doesn't mean it's not very cool. I just thought it would be interesting
to reflect on the background.

I guess what some people say about a bluetooth keyboard...almost makes this
somehow useful. Still, that keyboard is not always going to be there.

------
nerdfiles
One could use Prompt and the vi/m or whatever server she chooses.

I imagine _intuitive_ navigation through the FILE SYSTEM will come shortly.

------
platzhirsch
Does this make any sense without plugging an external keyboard?

~~~
awolf
You don't need an external keyboard to type effectively on the iPad. It comes
with practice.

~~~
taofu
My wrists went in a week. How on earth did you manage?

~~~
awolf
Just like with a standard keyboard you need to get yourself in a decent
ergonomic position before doing prolonged iPad typing. The temptation is a lot
stronger on the iPad to fudge a little on the positioning which can very
quickly be disastrous.

Namely: 90 degree angle on the elbow joint while making sure you don't slant
your wrists up to reach the keys.

------
nerdfiles
Pretty epic. Nothing more.

I think I'm crying.

------
zerostar07
Vim is an editor. What is there to edit in an ipad?

