■ DroidVim (Text Editor)

DroidVim is a Vim for Android.
Vim 8.1 (Huge version), grep, diff and ctags are ready to use.
https://play.google.com/store/apps/details?id=com.droidvim

▼ Required - ARM (Android 4.1 and up), x86 (Android 4.3 and up)

■ Note:

How to quit:

  • Type ":qa" command
  • Tap "Q" button on the function bar
  • Tap "QUIT" on the navigation drawer

Direct/Normal input

By default it is set to "Direct input" (alphanumeric characters only) for normal mode commands. "Direct/Normal input"

Vim tutorial:

Type ":Vimtutor".

■ Troubleshooting:

  • By default it is set to "Direct input" (alphanumeric characters only) for normal mode commands. "Direct/Normal input"
  • If Vim freezes, tap "close window" on the menu.

Return from the background

In Android 9 or later, when returning from the background, it may return after showing a blank screen as after the app is killed.

This issue may be solved in the following way.

  • Use DroidVim frequently to increase importance
  • Add to Doze White List

For example, you can add DroidVim to the Doze White List as follows (Android 10):

  1. Open Android "Settings"
  2. "Apps & notifications"
  3. "Advanced"
  4. "Special app access"
  5. Change DroidVim's "Battery optimization" value to "Not optimized"

* DroidVim does not consume any battery since it does not perform any background processing.
* This issue occurs because DroidVim, which is determined to be less important for "Power management", is discarded from memory.

■ Tips:

Direct/Normal input

By default it is set to "Direct input" (alphanumeric characters only) for normal mode commands.
Please change Direct/Normal input by the following method. (The "Input mode at startup" can be changed by preference)

  • Tap "◇"button on the function bar.
  • One-line text box
  • Change input mode via Vim script or physical keyboard.
    "Text input mode"

Move Cursor

  • Swipe left or right in the lower half of the screen to move the cursor to the left or right
  • Swap up/down and left/right of cursor button with [○] button. If the screen of the terminal is small, it is recommended to show only the up/down buttons.
    Temporarily swap up/down and left/right of cursor button on function bar with [Ctrl] key ([ESC] to cancel)

One-line text box

When you start one-line text box (double tap at the bottom of the screen), you can use the usual input equivalent to a normal Android application.
It is convenient to change "Preference" -> "◇ button" to "One-line text box".

Recommended keyboards

1. Gboard
2. AOSP keyboard and clones
3. Hacker's keyboard

Storage access

To access internal storage, external SD card, USB memory, various cloud storages, start the file picker from the "Storage" button of the navigation drawer. (Android 4.4 or later required)
Please use the "Dropbox" button to access Dropbox files.
To read/write an external SD card, choose "Storage" → "3 dot menu" → "Show SD card".

Internal storage

Vim's netrw can access internal storage (e.g. :e.). You can access internal storage using $INTERNAL_STORAGE.
:e $INTERNAL_STORAGE

If you are using Android 6 or later, please restart DroidVim after granting storage access permission.
"Default directory"

"Share" menu

Depending on the filer or cloud storage application, it may be set to read only when opening the file via the "Share (or Open with)" menu.
If you want to edit the file opened via the "Share" menu, please use "Storage" button or ask the developer of the application.

Samba

If you want to edit the file shared by Samba, try using the following application.

Clipboard

Since DroidVim is running on the terminal emulator, you can not use the clipboard option (Basically it is for GVim). However, instead of the clipboard option DroidVim has several clipboard commands.
  • "*p - Paste text From the clipboard to Vim.
    The function bar button has the same function.
  • "*y - Copy text From Vim to the clipboard.
    The function bar button has the same function.
  • gY - Copy text From the unnamed register to the clipboard.
    e.g. yygY : Only on DroidVim

You can also copy/paste text by Android intent.

  • Paste - "Share" text from other apps
  • Copy - "Long press menu (or the menu button on the drawer)" -> "Share"

HTML and Link.

  • Open HTML file in browser.
    - "Menu" -> "Share" -> \"File\"
    - Type :ShareIntent file
  • Open the URL under the cursor.
    - gx (:h gx)

Vimfiles (.vimrc and .vim)

Files in the home directory ($HOME) will be deleted during uninstallation. So we recommended that create .vimrc and vimfiles (.vim) in internal storage. (It can be accessed with filer app.) If you created .vimrc or vimfiles (.vim) in internal storage, create a symbolic link with the following command via Vim.
  1. :cd $HOME
  2. :!rm .vimrc
    (Delete $HOME/.vimrc)
  3. :!ln -s $INTERNAL_STORAGE/path/to/.vimrc .vimrc
  4. :!rm -rf .vim
    (Delete $HOME/.vim)
  5. :!ln -s $INTERNAL_STORAGE/path/to/.vim .vim
(You can use $INTERNAL_STORAGE to access internal storage.)

Colorscheme

DroidVim supports a 256 terminal color scheme.

:colorscheme term256
Add :set bg=light or :set bg=dark depending on the background color of the terminal.

Plugins

You can install the VimScript plugin to .vim directory.
:h plugin

you can also use packadd.

:h packages

Default directory

When you start Vim, you may want to always edit the file in a specific directory. In that case, add the following to .vimrc

" The internal storage is accessible with $INTERNAL_STORAGE cd $INTERNAL_STORAGE/path/to/directory
You can copy the "Startup directory" of "Preference" to the clipboard. ("*p or long press menu to paste)

Home directory

We do not recommend it, but you can change the Vim home directory. Please use of "Perference"->"Home directory", or add the following to .vimrc.
" The internal storage is accessible with $INTERNAL_STORAGE let $HOME = $INTERNAL_STORAGE.'/path/to/home' cd $HOME
However, if you change $HOME, you may not be able to successfully write to files that require attribute modification. For viminfo, add the following to .vimrc
set viminfo=$APPFILES/home/.viminfo

Text input mode

You can change the Text input mode from Vim script.

:ATEMod 2
0 Hide softkeyboard
1 Show softkeyboard
2 Toggle Softkeyboard
50 Normal input
51 Direct input : password
52 Alphanumeric : URI
53 Direct input : Default
54 Direct input : Raw
55 Toggle "Normal input"/"Input mode at startup" See Preferences
56 One-line text box
61 Language switch (Shift+Space)
62 Language switch (Alt+Space)

It is possible to disable word suggestions in normal mode and enable word suggestions in insert mode.
Add follows in your .vimrc.

let g:imctrl_normal = 53 let g:imctrl_insert = 50

Also you can change the Text input mode from physical keyboard. See "IME shortcuts" preference.

Android Shortcuts

Layout switch [Ctrl]+[Space] If multiple layouts are available.
Language switch [Shift]+[Space] If IME can use multiple languages.
IME switch [Meta]+[Space] If multiple IMEs are available.
[Meta] means [Windows] key or [Command] key
(Android 7 and up)

root

Since DroidVim is running on the terminal emulator, root access is possible by installing the su command. In a rooted environment, the vi command should also be available. We recommended using vi with shell or Ctrl+z. You can also use DroidVim's vim binary by running the suvim command.

■ Extra features (in-app purchase):

Git

git-cui, curl and busybox (Busybox adds many commands that do not exist on Android).

Donation

With one donation, you can use Git on all your devices, and you do not need a donation for updates.
If there is a problem please try "Uninstall -> Re-install" or "Clear the Play Store cache via Android Settings".

busybox-setup

When extra contents (git) is installed on a specific device (e.g. Samsung Galaxy Tab A6 - upgraded to Android 7.0), some commands (e.g. "ls") may not work.
In such a case, please use "busybox-setup sysbin".

  1. :shell or Ctrl-z
  2. busybox-setup sysbin

If problems still occur, initialize and setting commands.

Initialize

  1. busybox-setup clean
  2. busybox-setup

Setting commands

  1. For example, if ls does not work, execute busybox-setup sysbin ls or busybox-setup ls.
  2. If there is a command which does not work, do the same thing.
Option
all Add all busybox commands. (busybox-setup all)
{command} Add specified busybox command. (e.g. busybox-setup ls)
sysbin Use all commands of your device preferentially. (busybox-setup sysbin)
sysbin {command} Use specified command of your device preferentially. (e.g. busybox-setup sysbin ls)
clean Clear all additional commands. (busybox-setup clean)

If you run without options, the standard installation will be performed.

■ Source code:

DroidVim is an open source project.
https://github.com/shiftrot/droidvim

■ Contact:

<< Prev  |  PageTop