terrychou / ivim Goto Github PK
View Code? Open in Web Editor NEWA vim port to iOS.
A vim port to iOS.
Vim, of course, works best with a hardware keyboard. Mostly it works well, but special keys like <Ctrl>
and <Esc>
are not recognized properly.
<Esc>
doesn't seem to work at all: I must use the software keyboard to enter this.<Ctrl>
seems to register (so that <C-a>
is different from a
), but <C-a>
seems to do nothing. For example, if in normal mode I type <C-a>
over a number, nothing happens, though typing just a
does what's expected.I should add that I normally use the Dvorak layout on my external keyboard, but the problem remains if I switch back to the standard US keyboard. (Incidentally, one issue with other iOS apps with Dvorak keyboards is that entering codes ignores the Dvorak layout. For example, hitting the s
key when in Dvorak layout will enter o
, but holding down the Ctrl
key while hitting the s
key wrongly enters <C-s>
when it should enter <C-o>
.)
Is it possible to add custom colorschemes to iVim?
Please enable more file type to be able to open document picker,
I recently developing elixir files with .exs and .ex file extension.
It is grayed out in the document picker currently
Hi,
it would make programming on the iPad without a keyboard much faster if the top n autocomplete options could be displayed and selectable in the line above the keyboard, where the extended keyboard buttons are right now. Similar to what one gets for natural language for example when writing text messages. Also, with iOS 11 most special characters are directly accessible from the on-screen keyboard, making most of the extended keyboard buttons somewhat redundant and possibly freeing up space.
I have no idea how hard this would be to implement, just wanted to write down the idea somewhere.
Best,
Bob
Every time I press i for 'insert mode', the following message appears:
Error detected while processing function InsertStatuslineColor:
E254: Cannot allocate colour DarkYellow
Press ENTER or type command to continue
I, then pressed something and I can continue to edit as normal. The colour of the -- INSERT -- indicator is blue instead of DarkYellow. Everything else runs smoothly.
For your info. Note I am using 'salarized' colorscheme.
Would it be possible to have "open-in-place", so iVim can edit documents inside the cloud, or inside the sandbox of other apps? This really makes the editor more useful.
The $MYVIMRC and $MYGVIMRC do not get set set when ivim starts up. One of them should be set depending on which init file is found.
I’ll look at the code over the weekend and submit a patch if it's an easy solution.
From the command line, enter
let g:a_very_long_global_variable_name = 1
iVim instantly crashes. Any global variable name with 30 or more characters will make iVim crash.
Note that this is particularly problematic when a global variable name is defined in .vimrc
or a plugin or any other file source
d on launch: iVim immediately crashes, leaving the user no choice (as far as I can see) but to delete the iVim app (and so all user files), re-download it, and recreate everything in the .vim folder.
I’m using Working Copy, and can open files using idoc perfectly, but is it possible to set the working directory to a Working Copy repo base directory? I often need to jump between numerous files, and while I haven’t tried installing any plugins yet (I use ctrl+p on my laptop), being able to browse to files using :e
rather than through the idoc UI all the time would be a huge timesaver.
I am hesitant to import
files to the iVim workspace as this will require exporting back to Working Copy in order to commit / sync / etc.
using :idoc files picker, most file formats are greyed out and can thus not be opened.
Is there a workaround/ is it an iOS restriction?
thanks
I have attempted to install and use the following fonts in iVim:
The first one (Camino Code) works as expected. The other two (I have tried the versions with and without ligatures) install properly and are listed when I call the :ifont
command but when I try to switch to them nothing happens.
I have also tried setting the fonts in the .vimrc file but those changes will accept the font height I select :h17 but will use CamingoCode instead of the option I attempted to set.
Can you give me some guidance to troubleshoot this further? Pragmata Pro is a TrueType font. Pitch is an .otf font. According to :help
both file types are supported. I can use these fonts in Vim on the terminal and nvim-qt on the desktop.
I have attempted to uninstall all fonts and only install one (without CamingoCode) to see if that made a difference. It didn’t.
p.s. Thank you for creating iVim. It is the best port of Vim I have found for iOS and I use it every day. I’m starting to become “one of those Vim people” in part because this app exists.
Looks like taglist.vim plugin couldn't be loaded. Is it because system() is not supported? Would be great if it can be supported.
Another issue, looks like tags are not supported if opened from iOS document picker. Is this true/solvable?
Thank you.
Gaints' shoulders
should be Giants'
In the Applidium port, using a two finger drag to scroll would cause iOS's on screen keyboard to close, which, on a phone, was much nicer for reading long segments of text.
This port doesn't seem to do that. Is there another method of closing the soft keyboard, and, if not, is it possible to create one, or reinstate the old behaviour?
Hi, is there a way to use a white background instead of black while keep using the default color theme? Would be great if this can be added.
I'm using a 3rd party software keyboard. When I hide it, only lower-case letter input from my external keyboard will be registered by iVim. i
,w
, etc and esc
are fine. Backspace
, ;
, :
and ABC
are not.
The default Apple keyboard is disabled.
App Store version 1.32, iOS 9.3.3.
i tried to install vim-plug https://github.com/junegunn/vim-plug by putting their plug.vim into ~/.vim/autoload/, however, the command of plug are not registered
I mentioned in #8 that long global variable names will crash iVim immediately. When this happens on startup because the variable name is in .vimrc
, iVim becomes unusable and must be re-installed, and any customizations in .vim
must be recreated.
It would be nice, therefore, to have the possibility of something equivalent to vim -u NONE
so that the user can recover without starting over. One possibility here would be to have an option in iVim's entry in the Settings.app such that when toggled iVim will launch without .vimrc or plugins on the next launch: the equivalent of vim -u NONE
.
In Files.app I have some files and some folders marked with tags, and I can successfully access them through the Browse panel.
In iVim, :idoc
allows browsing of files much like in Files.app. However, selecting a tag in the Browse panel will display only a list of files with that tag, and will not display any folders that have that tag.
iVim does not appear to support iOS autocorrect functionality. Or, if it does, there is a setting I haven't found. I can certainly understand not wanting autocorrect on when writing code, but I use iVim for writing prose of varying kinds (and I suspect many on iOS do, or would) and it is very useful for a careless touch typist like me. I have come to rely on it both on iOS and on my desktop iMac.
Any chance this will be supported in the future? Perhaps with a setting to enable/disable?
Other comments:
As a serious Vim user for over 30 years, this port is really useful and complete. The use of the extended keyboard row for ESC is perfect with my Smart Keyboard. The implementation of :idocuments is the best I have seen on iOS. The only real limitation of the port is the fact that iOS doesn't allow keys to repeat, so I have to move around using arrow keys if I am going very far.
Thanks for a great piece of software.
The new section in the Settings app is fairly sparse. I know what the Arguments setting is for because I've been following developments here on github, but I wouldn't have been confident in guessing what it did if I hadn't. Without having tried it, I'm also pretty unclear on what the Always toggle does.
I think some descriptive labels would be helpful. For Arguments I'd suggest something like:
Command line options to pass to Vim. See
:help startup-options
for possible values.
I think you can implement this with the FooterText
key of PSGroupSpecifier
.
<Ctrl>
[arrow] mappings normally work fine. However, when <CapsLock>
is mapped to <Ctrl>
, the corresponding <CapsLock>
[arrow] mappings are not registered.
To reproduce:
:set omnifunc=syntaxcomplete#Complete
Then start typing something and trigger omni-completion (<c-x><c-o>
). iVim crashes immediately.
I understand the stickiness of the <Ctrl>
key, but for my uses it's too sticky. Most of the time, when I enter a command, I do it once and then go back no non- commands. So for me, at least, it is annoying to have to swipe the <Ctrl>
key, hit a normal key, re-swipe the <Ctrl>
key, and get on with my editing. Would it be better to "release" the <Ctrl>
key after the first code has been entered? (This is what other iOS apps I'm familiar with do.)
Of course, this is largely a matter of personal preference, so feel free to just say "no".
Please add support for VimWiki.
Occasionally, users need to copy/paste things to the system clipboard. While it's always possible using, say "+p and "+y, it's not too easy for the average user.
It would be possible to add "Copy" and "Paste" buttons to the extra keyboard (the one with Esc, Tab, ...) to allow the user to copy and paste to/from the system clipboard, as in @eminarcissus branch of VimIOS: https://github.com/eminarcissus/VimIOS
One of the main issues I have with iVim is simply this:
I keep a bunch of text files in my Dropbox. I'd like to be able to edit those with iVim when I'm offline out for an assignment. Then, when I get back within wifi coverage, iVim would need to sync them.
This is a very simple and common workflow, but on iOS I find it excruciatingly difficult to implement.
Do you think iVim could possible do this at some point?
Extended Keyboard is great paired with the software keyboard, but I find I rarely use it when I have hardware keyboard attached (especially since caps lock can be remapped). I usually end up starting every session with the long press to dismiss the extended keyboard.
What do you think about defaulting the keyboard extension to off when an external keyboard is attached?
Greetings. Congratulations on porting to the iOS vim, which I consider the best Editor out there! 😄
I began using vimrc to set up my ivim and noticed what appears to be a problem. Specifically, when I make ivim read the vimrc, I cannot use ctrl-A to select all the text in the file that is being edited. I use ctrl-A together with ctrl-C to copy text from ivim into other iOS apps. However, if I do not read vimrc when starting ivim, then ctrl-A works just fine.
Is this is a ‘bug’ or am I overlooking something?
Thanks!
This is not a problem for me — I'm actually still running Vim 7.4 on all my computers — I'm just curious: why is iVim Vim 7 and not Vim 8?
Is it possible to have a vimrc?
I used :set num but it was reset after a restart
In my vimrc, I have single-character mappings that work just fine. But no multi-key mapping seems to work at all, which includes all <Leader>
mappings: the first key gets ignored, and subsequent keys are taken as if the first key were not pressed. For example:
nmap <Leader>m :messages<CR>
When I type my <Leader>
key (currently set to ,
, but changing it doesn't seem to matter), nothing happens; when I then type m
, Vim waits for another key so that it can set a mark.
Am I missing something?
I should add: This is a fantastic project, which greatly improves previous efforts. idoc
and ishare
work brilliantly. Congratulations on your work this far!
For many years, I have mapped ‘s-space’ to PageUp, but I can’t seem to get any combination of lower and upper case lettering to work in iVim. I can get ‘space’ to map to PageDown just fine, though. What’s the magic combination in iVim?
(And thanks again for helping me through some basics a few days ago - iVim is absolutely AWESOME on the iPad!)
iVIm is great! Just wondering whether it will work OK in IOS 11?
Also, is there a way to copy text to and from iVim and other apps via the clipboard?
When I installed Fira Code ttf and otf fonts ligatures are not displaying when the font is selected via .vimrc nor via :ifont selection.
I use the appstore version of iVim and most of the time the files are not saved on exit using: ":q!".
I tried with the virtual keyboard and also with an external keyboard. Same problem!
Working Copy is a (fantastic) git client for iOS. The combination of solid git + iVim would make for a great local development environment.
Working Copy supports two approaches:
The latter is more powerful (and supports a full suite of git commands, but also includes simple read file/write file/list files), the former might be more generic.
It would be great if iVim supported one of these approaches -- integrating a simple webdav client should make it possible to tie things in to netrw.
I currently share my vimrc
across many devices, and, although sharing it will not be possible with iVim, I'd still like to be able to just copy it in whenever I make meaningful changes. I therefore need a way of detecting that I'm running in iOS.
I've come up with the following, which just catches the error thrown when running my usual OS detection code, but is there a better way?
if has("unix")
try
let s:uname = system("uname")
echom "NOT iVim"
catch /^Vim\%((\a\+)\)\=:E484/
echom "This is iVim"
endtry
endif
when I use iOS11 file to open a ttf font to iVim using the share extension, it displays an error says the
"failed to import font [font name]". I tried serval different fonts and it won't work.
The new external keyboard support is great. It make iVim really easier to use.
However, I found that some events are not forwarded to the app. <D-R>
is sent, and triggers the nmap associated, but <D-V>
is not sent (it never arrives into input_special_name and input_special_key).
As far as I can tell, the missing keys are: <D-V>
, <D-C>
, <D-X>
and <D-Z>
I do not see iVim listed among the apps in iTunes file sharing. I recall that the old Vim app had that feature. Is there a plan to add iTunes file sharing to iVim?
On a related note, what is the best way to transfer my .vim folder to iVim? With :idocuments
command I seem to be able to import a single file at a time.
It would be useful to be able to see the iVim version number in the intro page and with the version command. Probably on the settings page as well. I have multiple copies of ivim on my system and sometimes get confused which is which.
Vim allows many different colorschemes
, but the software keyboard displayed is currently always a light one.
Ideally, I'd like Vim to auto-adjust the keyboard colour (with UIKeyboardAppearance) based on the background
setting, but any method of setting the keyboard colour would work for me.
This is not actually an issue, but I can't find any other way of contacting you on your github profile.
This port is awesome. This fixes all the issues I had with the Applidium port that made it unusable for me.
Thanks!
Sorry for the intrusion in this fashion, but I'm not sure what the best way to ask general support questions is. If this isn't appropriate, I'd really appreciate knowing the right approach.
Is there a way to add key mappings to iVim? If so, what would be the correct way to map something like
nnoremap <Ctrl-t> i<C-R>=strftime('%Y-%m-%d %H:%M:%S')<CR><Tab>
in iOS? I use this "Windows-version of a timestamp" key mapping a lot in editing logs, data files for research projects, etc.
When opening a directory via the document picker, iVim could create an alias file in disk using the following method:
https://developer.apple.com/documentation/foundation/nsurl/1408532-writebookmarkdata
This way, iVim could navigate to a previously opened directory without having to go through the document picker again.
Hitting the dictation button on the soft keyboard causes iVim to crash. Once the dictation keyboard appears pressing either the keyboard or mute icons triggers the crash.
Turning off dictation in the settings app works around the problem.
I created a directory which I no longer require. Deleting files in netrw by pressing D
works fine, but attempting to delete this directory results in the message Cannot fork
followed by a string of errors.
I'm guessing this is because netrw somehow deletes files directly (perhaps with delete()
?) but deletes directories by attempting to shell out, which fails because this is not supported in iVim.
IIRC I could delete the directory via iTunes File Sharing (once that's available in the App Store version!) but is there any way of deleting it from iVim itself?
As the subject says, deleting a character sends ^H
. Is that intended? Shouldn't it send <BS>
?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.