Inconsistent home/end behavior in bulleted list item on iOS

An apparent bug is causing inconsistent behavior when using keyboard shortcuts on an external keyboard (Apple’s Magic Keyboard on a 12.9-in 2019 iPad Pro) to attempt to go to the beginning or end of a line in a soft-wrapped bullet list item.

Steps to reproduce

  1. Create bulleted list item that soft-wraps onto multiple lines
  2. Use Cmd+left and Cmd+right arrow keys to try to move cursor to beginning and end of lines in that item.

Expected result

Cursor moves to beginning or end of current line.

Actual result

Cursor moves to location in a different line, the beginning/end of the entire list item, or the beginning/end of current line, depending on where it started. Also, behavior changes based on its new location (i.e., entering the opposite keystroke won’t necessarily return it to where it just came from).


Operating system: ios 15.4.1 (Apple iPad)
Login status: not logged in
Live preview: on
Legacy editor: off
Base theme: dark
Community theme: Blue Topaz
Snippets enabled: 2
Safe mode: off
Plugins installed: 12
Plugins enabled: 8
1: Calendar
2: Kanban
3: Better Word Count
4: Advanced Tables
5: Templater
6: Style Settings
7: Advanced URI
8: Shortcuts extender

Additional information

  • Happened in both split view and fullscreen view.
  • Did NOT happen in the same vault/file on macOS in v0.14.6.
  • I copied/pasted a couple lines several times to create sample text for a demo video. Strangely, the home/end behavior at the top followed the first instance of this text (i.e., cursor went from the beginning of the bulleted list item to the end of that first copy). If I typed additional letters/words after the first copy of the text, the home/end behavior would include that as part of the first-copy text that it brackets.

GIF of the behavior:

Obsidian iOS cursor home-end behavior 220505

Update: it’s possible this is caused by or related to a plugin, since it does not appear to occur in a copy of the sandbox vault using vanilla Obsidian. Any quick way to narrow that down, or is it just repeated testing while turning off plugins one by one?

you can use the plugin/method divide and conquer.