If you are a Vim user and you edit a lot of Markdown files, this is the app for you!
This app lets you edit Markdown with an editor pane and a preview pane. The editor pane has Vim emulation and automatically scrolls the preview pane as you scruff around in the editor.
There is also an outline pane that shows the headings in the Markdown document and lets you scroll to a particular heading with a tap (iPad only).
I like to store my Markdown files in the cloud and edit them on multiple devices. The app is designed to accommodate this. Just choose a folder on your Dropbox, Google Drive, or OneDrive in the settings and you’ll be all set. Note that the app will automatically reload unchanged files when a remote change is detected, but because iOS does not sync cloud drives in the background this is not as useful as you might think. You will have to open your drive in the Files app to force a sync, and then your remote changes will appear in the editor.
There are currently bugs and omissions in the Vim emulation, but it will improve with time. I use the app every day as it is, and you may also find the current state sufficient.
If there is a bug or omission in Vim mode that is bothering you, please complain to markdown-vim@brandonthomson.com. I will fix any problems you report within a month or so. Note that if the app hasn’t been updated in the last two months, probably something has taken my attention away from the App Store and I’m not able to update it right now. I will get to your request when I’m able to.
This app works on iPhones, 11” iPads, and 13” iPads.
On 11” iPads you will only have 65 columns to work with in the editor. The gq
command has been configured to wrap to 65 columns on 11” iPads by default. This is configurable in the settings, and you might want to set it to 65 columns on all your devices if you have an 11” iPad.
When your external keyboard is disconnected, the app will go to insert mode so you can still edit files with your onscreen keyboard. I like using this on iPhone, but it will work with any device. Note that you cannot use vim’s normal mode with an onscreen keyboard.
The leader key and leader key shortcuts are not configurable in this app, but there are a few pre-defined shortcuts that you might want to use:
,b
- Open folder browser
,[
- Wrap current text in {{{…}}} (vim fold)
:w
- Write (save) current file
:e
- Revert current file to saved version
:e {filename}
- Edit file in selected folder (or Documents, if no folder selected)
:{number}
- Go to line number (e.g., :42
)
Escape
- Exit to normal mode (from any mode)
i
- Enter insert mode at cursor
a
- Enter insert mode after cursor
A
- Enter insert mode at end of line
I
- Enter insert mode at first non-whitespace character
o
- Insert new line below and enter insert mode
O
- Insert new line above and enter insert mode
s
- Substitute character (delete and enter insert mode)
S
- Substitute line (delete line content and enter insert mode)
C
- Change to end of line (delete to end and enter insert mode)
v
- Enter visual mode
V
- Enter visual line mode
:
or ;
- Enter command mode
h
- Move left
j
- Move down
k
- Move up
l
- Move right
w
- Move to next word start
b
- Move to previous word start
e
- Move to end of current word
0
- Move to beginning of line
^
- Move to first non-whitespace character
$
- Move to end of line
Control-U
- Scroll half page up
Control-D
- Scroll half page down
gg
- Go to first line
G
- Go to last line (not implemented yet)
f{char}
- Find character forward on line
F{char}
- Find character backward on line
t{char}
- Move to before character forward on line
T{char}
- Move to after character backward on line
/
- Start forward search
n
- Repeat last search forward
N
- Repeat last search backward
x
- Delete character under cursor
dw
- Delete word
dd
- Delete current line
D
- Delete to end of line
yy
or Y
- Yank (copy) current line
p
- Put (paste) after cursor
P
- Put (paste) before cursor
~
- Toggle case of character under cursor
r{char}
- Replace character under cursor with {char}
J
- Join current line with next line
u
- Undo last change
Control-R
- Redo last undone change
h
, j
, k
, l
- Extend selection
0
- Extend selection to beginning of line
d
or x
- Delete selected text
y
- Yank (copy) selected text
j
, k
- Extend line selection
d
or x
- Delete selected lines
y
- Yank (copy) selected lines
gq
- Wrap selected text at 80 columns
gq
- Wrap current paragraph at 80 columns (works in normal and visual line modes)