Vico Editor (Mac text editor)
vicoapp.com
vicoapp.com
It's missing a few of the basic vim movement commands (which I have on a wallpaper I put together http://naleid.com/blog/2010/10/04/vim-movement-shortcuts-wal...), but has most of the big ones. The ones I use quite a bit that don't seem implemented are:
C-d - half page down
C-u - half page up
ge/gE - go to the end of the previous word (you do have e/E for next word)
( - previous sentence
) - next sentence
ci (change inside)
idiom. I've gotten so used to ci(, ci', and cit (change inside html tag).
You can see
(sidemap setKey:"<c-d>" toAction:"scroll_downward:")
(sidemap setKey:"<c-u>" toAction:"scroll_upwards:")
So apparently they are planned, just not yet implemented. I haven't messed with the file much to see what else you can do with it, but I imagine there's a way to override it in .vimrc style and customize it.
There's definitely some neat stuff in there, though.
Probably because I'm not a huge vim user, and was only previously aware of the :q syntax you mentioned.
Something things:
Padding on the left file pane would be nice. http://cl.ly/3m223V172r3R3b1B1P1A
Also, with the left pane, some way to navigate between files like NERDTree allows would be useful.
vi' and similar should be supported. It means visual select inside quotes.
If you use command-w to kill the last open tab, so that nothing is open, you can't use the command-line ':', which is useful when changing directories to work on another project
Again, I love this project
Is people doing something else with tabs that I'm missing here?
Personally I use some (2-7?) buffers in vim and cycle through them. When I don't anticipate editing a file for a while I close that buffer.
But I agree with you, I hate quitting vim, it seems like I lose my place much easier when I no longer have those files open.
Once you free yourself from this list of things that are "open" (whatever that means) you simply stop caring about the number of items in what is effectively just a "recently visited" list. What value is there in killing those buffers if there's no list for them to clutter? (yes there are lists of buffers in Emacs but you only see them if you want to)
In that light here's my answer to your question: Because he hasn't exited his editor and the number of "open files" has no significance or impact on workflow. While you're deciding whether or not to close a file and trying to anticipate when you may edit it next he's already moved on to editing the next thing.
A couple of years ago I used to keep 100s of tabs open in FF. Then I went mobile and started caring about watts. Not the same situation, but I think it influenced my few-files-open habits.
These days I use TextMate more than Emacs and for small personal projects I like quickly switching between say the readme, makefile, code, and test with Cmd-[1-9]. If there are few files to edit tabs can be advantageous. This stuff is highly personal and dependent on workflow.
Main exception being the alternate buffer for which I have a quick shortcut - (<leader>, - <leader> being set to ,) The consequence is I usually have piles of buffers open at once.
Edit: sjs puts it better above. Having to think 'is this file already opened or not' and then using that information to determine the command you use to switch to it is rather annoying.
1) Look at docs in one pane and code in another
2) Look at some combination of the model/view/controller triad at the same time
3) Look at a header file and the implementation file
4) Work on a rake (for example) task while seeing the code it will run
5) Look at two different spots in the same file
edit 6) work on a javascript file next to the HTML page it's used in
7) look at a class and its superclass at the same time
8) look at a class and the code that's calling it at the same time
* no explicit saves: files automatically autosave
* the editor keeps a max of N tabs open using least-recently-used
* browser-like navigation by clicking into symbols combined with forward/back history
The autosave part was weird at first, but it makes so much sense. Why bother with explicit saving, prompting "do you want to save", manually closing tabs, etc. Combined with the navigation features, you never care which tabs are open. Edit history plus version control are much better than a simple save/discard model.
Neat, my TextMate themes were automatically found by Vico.
[edit] Okay just figured out how to open different files in split panes. It's a little non-intuitive (you have to select the pane and the use the Open Files drop down, and have that file open in another tab (?!)). Would be nice to be able to select that pane and then just click the file I want in there in the Explorer.
Would really like to have some integration with Git. I don't see the Git .tmbundle available in the list.
It would be nice to be able to bring over a lot of the features of Vim, or maybe you can and I don't see it.
Looks like it's scriptable with Nu - http://programming.nu/index - which I haven't heard of.
The symbol list on the right is also great, makes jumping to methods a breeze with nice animated highlighting. I'm really starting to dig this.
:e <some file>
:vsp <another file> " for vertical split
:sp <yet another file> " for horizontal split
Like so many others, I'll be keeping my eyes peeled.
nnoremap <D-d> <C-w>v<C-w>l
nnoremap <D-D> <C-w>s<C-w>j
This makes cmd-d open up a vertical split, and cmd-shift-d open up a horizontal one. Same keybindings as in iterm2 and I find them easier than the chording that you have to do normally (which makes my hand feel like it's using emacs).
As someone who's already gone up the Vim learning curve, though, I'd like a way to use all the customizations I've already collected. There doesn't seem to be a way to accomplish this now, but I'll be keeping an eye on it.
My wishlist, right off the bat (note I know some of this might be unreasonable, but that's why it's a wishlist ;) Mostly centered around a quick transition from MavVim to Vico...
* Would be excellent if I could import a vim colorscheme
* Would be excellent if it could read/use my .vimrc
* Would be _excellent_ if it supported vim bundles/add-ons, but I know that's basically asking for vim :)
* In editing a Ruby file, I wrote 'def' it colored and indented my second line, but only colored my 'end' -- didn't outdent it properly. Small annoyance. Also would be great if I could configure it to auto-insert an 'end' for every 'def' or 'Class' or 'if' etc....
Keep up the great work and get an RSS feed up on your blog so we can keep track of updates...
TextMate is a joke. Nothing worse than missed opportunity. Such a huge community behind it and MacroMates seems completely incapable of providing a new release.
MacroMates totally dropped the ball. What a shame. Everybody was suing TextMate, everyone was talking about it a few years ago, and they didn't capitalise on that.
Overall it looks fantastic, but I am pretty dead set on my MacVim ways with my various plugins that it is going to be hard to get me to switch.
A few things that would be nice:
- Command line launching (like the "mate" or "mvim" commands)
- Ability to edit tmbundles within the app
- Downloading tmbundles seems to duplicate tab triggers
- Snippets still use hard tabs even if you've selected space-based indentation (soft tabs)
- Hitting backspace when you are using soft tabs and are in the "indentation part of the line" should go back that number of spaces instead of just one
Vico is like so close to becoming my main editor, if only these things are fixed. As others have said, a .vimrc-style config would be cool (as would a :retab command), but those aren't deal breakers for me like the above things are.
ln -s /Applications/Vico.app/Contents/MacOS/vicotool /usr/local/bin/vico vico .
vico ~/projects/jarinudom.com* Firefox's AdBlock seems to be blocking your hotlinked Twitter icon, so there is no obvious Twitter link to follow. The "Follow Vico on Twitter" text should probably be included in your <a href>.
I'm sure nu is million times better than Vimscript, and it probably wouldn't be hard for me to port my half dozen custom key bindings to it, but vim has a lot of existing plugins...
It's definitely not as fun to implement, but I'd much prefer to see a custom GUI that's really vim under the hood.
I've been getting irritated with emacs'... rough edges a lot lately and am tempted to scratch my own itch with an emacs slant :-)
It looks like a great app, but I'm still leery of basing something as important as my editor on a closed code base again.
There are also some great alternatives out there, notably Redcar, which is both open and full of Textmate like features.
This adversity to switching editors is a common trait in programmers I can't quite understand. We programmers learn new things all the time, it's part of what makes us excel in our profession. And yet, adopting a new editor is apparently extremely hard.
Arguing against something because it takes away coding time is a sign that you probably need to broaden your experience.
Although one essential change to the defaults is to remap CapsLock to be the same as Control --see System Prefs-- and then using Control-F to move the cursor forward one. Helps you get past automatically inserted closing brackets with minimal hand movement. I find that really tedious and annoying otherwise.
Great program though. Keep up the good work.
(nmap map:"<ctrl-a>" to:"!!open 'peepopen:///path/to/your/code/folder?editor=vico'; return true; <CR>")
ctrl-a will then open peepopen and the selected file will be opened in vico.
(edit: never mind, I went ahead and got it)
Excellent program, though! I look forward to watching it as it develops further!
Great to see split views are there from the start.
I love emacs, but this is one of the sticking points that's really been bothering me of late.
On a side note, it looks like with emacs's set-window-vscroll command, you can actually make it display a fraction of a line. Has anyone had any luck hacking this into a way to do smooth, continuous scrolling?
Vim is just hard work getting going, e.g. in HTML I like to have the closing tag automatically done for me which im sure vim can do but i've just not had chance to look into. There are 100 other small things like this which I solve one at a time but often I just go 'cock it' and open it up in another editor. But then I want to split the window and open vim again....
It's beautiful because you can just write (or paste) text, then easily add the markup afterwards.
(1) http://www.vim.org/scripts/script.php?script_id=2540 (2) http://www.vim.org/scripts/script.php?script_id=1879
It took me one month and a half to stop using TextMate. Once you are accustomed to oOaAiI, rR, wWeEbB or ci( or all the rest it's very hard to open TextMate and take it seriously.
alias json='python -mjson.tool'
I'm not much of a vi/vim/macvim user, but I bet you could pipe an open json document through that command pretty easily right in the editor.Another screenshot: http://ydeck.com/vico.png
Looks like Visual Block Mode isn't yet supported... did anybody find this?
keep up the good work, this has potential.
http://www.irradiatedsoftware.com/cinch/ (for mouse)
http://www.irradiatedsoftware.com/sizeup/ (for keyboard)
http://mizage.com/divvy/ (the one I use)
That said, I use ShiftIt(1), it's free, keyboard based and does EXACTLY what I want it to do.
If you want to try tiling window managers + Vim, your best bet is to use MacPort to install gvim and either wmii, awesome or ion3. Other WMs worth trying are wmfs, dwm, xmonad… you'll need manual compiling though.
I am looking into getting into Android development. Is it worth doing it without using Eclipse?
Here's the basic problem: you're writing a text editor. Stop doing that. It's 2007. Saying to yourself "I'm gonna build my own text editor" is as silly as saying "I'm gonna build my own build system" or "I'm gonna build my own amusement park."
It's what makes the human being stupid and at the same time a genius: Always trying to make something better (even if you know you can't). Otherwise we wouldn't have lower consumption cars, color TVs and so on, right?
sigh. No joy for PPC users, again. This is a huge part of why I'm not sticking with Apple hardware again once I replace my laptop.
At this point, I fully expect that if I were to buy an Intel series Apple system in the next couple of years, shortly afterward Apple would switch everything over to their new A-series hardware.
I have certain investments in my current development system, too, like the early-model SSD that has made it possible for me to haul this thing around in the car to client appointments every day for the last couple of years.
I'm just sick of having perfectly good hardware that gets aged out of being able to run text editors. Yesterday, I discovered I can't run pianobar (easily) anymore because the Pandora protocol changed, MacPorts appears to be dead, and homebrew is Intel-only. (There is a PPC fork of the Intel version of homebrew, but the documentation for it is all pulled directly from the Intel fork, and I'm completely stumped at how to actually get it to work.)
On top of all that, I get to enjoy the economics of owning a device whose secondary market is falling off a cliff.
Anybody's welcome to point out all the benefits of this kind of situation -- the longevity of Apple hardware, the supposed lower TCO -- or the fact that I should be budgeting a certain amount every year towards new hardware anyway, but it's not likely to change the fact that I've been through this one too many times now and it's just not something that, to me, is worth continuing to hassle with.
First, get the latest version of Xcode that's compatible with your OS. You can find older versions of Xcode by clicking on "Developer Tools" on the right side of this page: http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/w... (you may need a free Apple developer account).
sceaga has a branch for Tiger and another branch for PPC, I happened to be using Tiger on PPC, so I picked the Tiger branch. From https://github.com/sceaga/homebrew , you want to click "Switch Branches" on the left, choose your branch, then click "Download on the right. Or, just click one of these:
https://github.com/sceaga/homebrew/tarball/powerpc
https://github.com/sceaga/homebrew/tarball/tiger
I opted to install into my home directory, rather than /usr/local, so to get it into place, all I had to do was extract the tarball, put the resulting directory where I wanted it (I called it "brew"), and then add $HOME/brew/bin and $HOME/brew/sbin to my $PATH.
If you want it in /usr/local, see the instructions at https://github.com/mxcl/homebrew/wiki/Installation , but in the "curl" line, replace their URL with the one you picked above.
You should now be able to type "brew" and see its usage message.
At this point, "brew install" worked for me, except that it wasn't chmodding binaries as executable. At the end of installations, it was giving a bunch of messages like "file: invalid option -- h". This appears to be because my 10.4 PPC version of "file" doesn't support "-h". To fix this, I installed the gnu version instead:
brew install libmagic
chmod +x ~/brew/Cellar/libmagic/5.04/bin/file
brew link libmagic #libmagic doesn't add gnu "file" to your PATH without this command, because it doesn't want to override the OS-provided "file"
After that, homebrew seems to work, with the following caveats: 1. "brew update" (which updates the package manager
itself) will try to update from the non-PPC, upstream
version of homebrew. I just don't use this command.
2. "brew doctor" complains that my gcc is too old
(because I can't use the latest Xcode) and can't
seem to detect that I have X11 installed, even
though I do.
I've also found the people in #machomebrew on irc.freenode.net to be a helpful bunch, although not many have experience with homebrew on PPC.Let me know how it goes!
I had a busy day so I didn't get to try this out until just now. Somehow, despite staring at the github project page and clicking on everything that I thought was clickable and grinding my teeth in frustration, I never noticed the "Downloads" button. So now I feel like an idiot, but I'm an idiot with a working homebrew. Thank you. :-)
You sound like my friend who won't upgrade to an HDTV "because the price keeps dropping." :D
It might be understandable if this was some kind of resource-hungry multimedia application, but a text editor? Like you say, "come on".
Also, Apple is notorious for wanting to own as much of their vertical as possible. They hate dealing with other companies for critical components, especially processors. They've become quite good at the processor transition at this point, and now that they own their own microprocessor and are using it in all of their mobile devices -- and touting the superior benefits of their processor every chance they get -- I'd be willing to make a pretty big bet that moving at least their entire laptop line over to the A series processors is already on their development roadmap.
I think the writing's on the proverbial wall and, like I said, I'm just tired of getting caught by it every time it happens.
On its left, there is a low end Dell PC running an up to date Ubuntu that cost me 350 € two years ago waiting for this day to come.
That said, MacPorts is still alive and kicking, the latest update was a few months ago.
I like vim but if you are emacs user and are happy. Why would you want to switch?
It all falls down to what you prefer.