10 ms·
Vim ported to iOS
- 0x0 15y agoInteresting that they actually exit on ":q", which is prohibited by the iOS Human Interface Guidelines: http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UEBestPractices/UEBestPractices.html#//apple_ref/doc/uid/TP40006556-CH20-SW27 http://developer.apple.com/library/ios/#documentation/UserEx... Also, ":Explore" and then "-", "-", "-"... works to browse the file system, or at least the parts allowed by the app sandbox
- sc00ter 15y agoI think they're called "guidelines" for a reason, and nowhere in them is the word "prohibited" used.
- apetresc 15y agoExcept 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.
- sdkmvx 15y agoThis may be the one-in-a-million chance to disregard that guideline. A big rule in interface design is to do what users expect. In Vi/Vim, this means quitting on :q. Assuming that this is non-standard enough that Apple would go find somebody who knows Vim to handle the review, that person would (and obviously did) know this.
- Splines 15y agoWaze has a "Switch Off" command, although that seems to make sense since it's a way to stop running GPS. Maybe they got a pass since ":q" is a basic Vim command. People are going to type it - what should they do instead? Nothing?
- YooLi 15y agoHow many apps need an exit button? Just because you look around the App Store and don't see a bunch of apps with exit buttons doesn't mean it's because they aren't allowed. It never even crossed my mind to put an exit button in my apps because it's not a use case for my apps. I'm sure it's the same with a majority of the other apps.
- lazerwalker 15y agoI 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.
- manojlds 15y agoGuidelines here mean the "vims" ( see what I did there ) and fancies of Apple.
- LearnYouALisp 15y agoShakes head Emacs a mountain of a mole-hill, that one.
- Half_a_Bee 15y agoEspecially as the guideline is clearly there so as not to give users the misleading impression that the app's crashed. That's obviously not the case when a vim user is using the expected command to close the program.
- fpotter 15y agoIf you don't feel like downloading it, here's a web-based live demo -- http://www.pieceable.com/view/bundle/p/a2a89/com.applidium.Vim http://www.pieceable.com/view/bundle/p/a2a89/com.applidium.V... As the docs say, if you want to leave insert-mode, you have to use the '\' key since there's no ESC.
- platzhirsch 15y agoDoes this make any sense without plugging an external keyboard?
- durandal1 15y agoEven just syntax highlighting and being able to use split windows makes it very useful for things like code review or just browsing code on an iPad.
- stevelosh 15y agoIt makes more sense than many other editors, since you get a ton of functionality without modifier keys thanks to the modal interface, but it's still way better with a bluetooth keyboard.
- awolf 15y agoYou don't need an external keyboard to type effectively on the iPad. It comes with practice.
- feralchimp 15y agoSo does RSI.
- taofu 15y agoMy wrists went in a week. How on earth did you manage?
- awolf 15y agoJust 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.
- feralchimp 15y agos/plugging/using And no, it doesn't.
- deleted 15y ago[deleted]
- apaprocki 15y ago... and the one feature they don't list: iCloud .vimrc sync!
- samps 15y agoNo kidding? If I just edit $HOME/.vimrc, it will start syncing? Or do I need to do something special?
- gcv 15y agoIf it can sync .vimrc, could it also sync a directory over iCloud? That would be amazing. I'm a die-hard Emacs user, but this would be enough for me to use Vim for at least some work.
- Ecco 15y agoHi. Indeed, iCloud syncing will be awesome. I did not add it to this release yet though. If anyone wants to contribute, patches are welcome!
- oacgnol 15y agoAwesome 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.
- saurik 15y agoFTR, that was one of the first things I ported in 2007: I cannot imagine having a device without a fully working distribution of vim.
- jcitme 15y agoThere 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.
- cleverjake 15y agoI'm confused, how does one use the esc key without a keyboard?
- neckbeard 15y agoAs 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.
- deleted 15y ago[deleted]
- jcitme 15y agoIt doesn't seem retina optimized. The font is horrendous on my iPhone 4.
- Ecco 15y agoActually it is (or it should be. Just file a bug if it doesn't work for you). By default anti-aliasing is disabled, but you can toggle it on.
- daxelrod 15y agoThis 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/be572d759e857de58453b4427bc8b7a66c76d379 https://github.com/applidium/Vim/commit/be572d759e857de58453...
- Ecco 15y agoHi :-) I added font support pretty much at the last minute. Here's an example of something that should work ":set guifont=Courier:h14"
- 15y ago
- superchink 15y agoHow about file management? Anyone know how files are stored/accessed?
- nwest 15y ago"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/ http://applidium.com/en/applications/vim/support/
- pdenya 15y agoThat's great for browsing but I can't picture coding in an editor where I need to stop and look for common command keys. At the moment vim is efficient because [esc]10dd or something but it's just not viable without a keyboard. For reviewing code or making quick edits however this could be incredible. I wonder if it supports plugins.
- stevelosh 15y agonnoremap jk <esc>
- cgag 15y agoIt's hard to believe there are people who regularly use vim and still use escape.
- rkowalick 15y agoRemapping caps lock to function as escape is pretty useful here.
- halostatue 15y agoWhy? It's quite convenient for my left-hand pinky on nearly every keyboard that I use, and I've picked up the habit of doing periodic `jk` movements as I'm examining some code. I tried the `jk` combination that some people recommend, but it doesn't work for me.
- cgag 15y ago
- g3orge 15y agoI 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.
- DrHankPym 15y agoWow, the only thing missing now is Git / Github.
- rmc 15y agoApple don't allow any GPL software on iOS.
- Argorak 15y agoOther way around - the app store does not allow distributing the source along with the app. So, strictly speaking, publishing GPL software in the App Store is in violation of the GPL. If you - as a rights holder - are okay with having the source downloadable at another location, you can definitely publish GPL software using the App Store. Case in point: Battle for Wesnoth.
- 0x0 15y agoDoes the App Store explicitly disallow bundling the source code inside the app? What if you added a .zip with the source into the app, and on app startup you copy the .zip out of the Application directory into the app's Document folder, which is accessible via iTunes (as long as you set the appropriate flag in the app descriptor plist to enable document sharing)
- Argorak 15y agoI don't think so. But as always, someone has to try and get it through app store review.
- rmc 15y agoBundling of source code with binaries is not required under the GPL. You can have it on your website. However the App Store EULA etc. are incompatible with the GPL (cf. http://news.ycombinator.com/item?id=3489115 http://news.ycombinator.com/item?id=3489115)
- 15y ago
- tambourine_man 15y agoWhat'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 '\'
- hack_edu 15y agoLatency. And for those who aren't 'almost always online.'
- flogic 15y agoEven if you're online, the connection may have much more latency than you want to deal with. Depending on what you're doing a split second of latency can mean a lot.
- martinemde 15y agoUnfortunately, imap jj <Esc> in the .vimrc doesn't seem to work. :(
- edanm 15y agoSmall 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.
- kylebrown 15y agoYet 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?
- super_mario 15y agoVIM is not only about typing. It's about editing, which involves making a small change in one place, then navigating somewhere else, and making another different small change etc. This is where VIM is unbeatable, because of ridiculously many fast ways to navigate and edit intelligently (in a very small amount of keystrokes). You don't have to type 120 WPM do be faster in VIM, but if you are a fast touch typist, you can get insanely fast in VIM. Besides once you can edit faster, it's surprising how your "speed of thinking" also improves dramatically :D.
- sliverstorm 15y agoAgreed. Navigation through a file without using the mouse or arrow keys greatly speeds up misc. edits in a large tree of files. Other upsides are the ability to delete text without the backspace or delete key, and to perform more complicated operations on a file, such as full regex search-and-replace, macros, and so on. Really what it boils down to is a powerful text editor that lets you keep your hands on the keyboard at all times- which of course is not appropriate for all tasks, but very useful for many.
- knewter 15y agoThis is a huge deal, and you've done a great job expressing it. I definitely find that I think faster as a result of being a vim user / being in vim. Since most of the actual editing gets thrown to muscle memory, all I have to do is think 'gosh it'd be nice if that refactoring happened' and it does, while I'm on to thinking through the next step. I'm constantly mortified at how rarely my co-workers/employees use vim macros. I make vim do the hard parts for me.
- Splines 15y ago
- huntaub 15y agoDoes anyone know how this will go down after what happened with Applidium's attempt to port VLC?
- rmc 15y agoVLC, unlike Vim, is GPL software, which Apple ddi not allow on the AppStore/iOS. So can't see the same thing happening here.
- revscat 15y agoIIRC, the decision to pull VLC from the App Store was made by one of the VLC developers.
- rmc 15y agoApple 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.
- kurrent 15y agoI'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
- hack_edu 15y agoDoes anyone know what they keyboard skin/layout is on their splash page screenshots? Its definitely not stock.
- area51mafia 15y agoAre you referring to the Split Keyboard available in iOS 5?
- janus 15y agoI 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)
- 6ren 15y agoVim 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 15y agoVim 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 15y ago> 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 15y agoMy 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.
- 6ren 15y agoCan even connect to an Amazon instance or similar. There was a submission a while back about someone who did this for a month (IIRC), but the editor was on the remote machine.
- 15y ago
- wsxiaoys 15y agoI cannot wait for the port of NativeClient
- edanm 15y agoI'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 :)
- nerdfiles 15y agoPretty epic. Nothing more. I think I'm crying.
- zerostar07 15y agoVim is an editor. What is there to edit in an ipad?
- its_so_on 15y agoahahahahahahahahaha. 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_gift/print.html http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_g... 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.
- nerdfiles 15y agoOne could use Prompt and the vi/m or whatever server she chooses. I imagine _intuitive_ navigation through the FILE SYSTEM will come shortly.
- toblender 15y agoNice 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!