Repository navigation
Releases: nol00p/Shoin
Release list
Shoin 0.1.8
Clipboard support. "+y / "+p (and "*) copy to and paste from the system clipboard, through pbcopy, wl-copy, xclip or xsel, or an OSC 52 escape over SSH. [editor] clipboard = true (or :set clipboard) sends plain y, d and p there too.
A terminal paste now arrives as one piece of text (bracketed paste) and goes in verbatim: it no longer runs as commands in Normal mode, picks up auto-indent or list markers, or leaves Insert on a jk.
dw on a line's last word no longer takes the line break with it and joins the next line on, and yw there no longer yanks the newline — vim's w rule. A d{count}w that crosses lines from the start of a line deletes whole lines, as in vim.
More operators and motions now match vim, each checked against it: cw on a word's last character changes only that character; db from a line start keeps the line break; d} keeps the blank line it stops at; dl takes a line's last character; dgg/dG work on the first/last line; 5dG and 3dgg honour the count typed before the operator; 3p pastes three times; ; after t moves on to the next match; w skips leading blanks and blank-only lines; dc cancels instead of running c; "Ayw appended to a linewise register keeps its lines intact; d2$ and d2e from a line start delete whole lines. A linewise paste lands on the first non-blank.
:w other.md no longer overwrites an existing file without !, and :wq! no longer quits when the write fails.
Saving through a symlink writes the file it points to instead of replacing the link, and a reload that only changed line endings is no longer undone by the next save.
gt only toggles the checkbox right after the list marker, never a [x] in link text.
A clipboard program that hangs is not tried again for the rest of the session, and a failed paste after an OSC 52 copy falls back to Shoin's own copy.
[editor] clipboard_background = true runs clipboard copies on a background thread, for when yanks and deletes feel slow with clipboard on. A burst of copies runs the clipboard program once, for the newest text.
:help now lists :set clipboard and the [editor] clipboard settings.
Shoin 0.1.6
Added :align [left|center|right|justified] (bare form cycles) and a matching layout.text_align config setting, controlling how each row sits within the writing column — separate from layout.align, which places the column itself on screen. Justified stretches every wrapped row to fill the measure except a paragraph's last row, which stays ragged; fenced code and table rows are always left regardless of the setting.
:export [md|txt|html|pdf] [justify], and --justify on the CLI, carry the same justification into html/txt export — the two formats shoin renders itself. md and pdf refuse the flag, since raw markup and pandoc's own template have no layout of their own to stretch.
Shoin 0.1.5
Fixed the viewport jumping around during ordinary navigation. The scroll position was recomputed fresh every frame but never persisted, so it kept re-deriving itself from a stale baseline instead of staying put while the cursor moved within view.
Added a line-number gutter: :number relative or :number absolute, or <leader>n / a bare :number to toggle it off and back to whichever mode you last used. Relative numbers read 0 at the cursor's own line; a margin too narrow to hold them (align = "left", or a narrow terminal) goes without rather than crowding the text.
Shoin 0.1.4
Dragging with the mouse now selects text, the way mouse=a does in Vim: the press puts the cursor down, dragging out of it opens a charwise Visual selection anchored there, and the selection outlives the release so y, d and the writer verbs act on it. Text panes only — a drag begun in the file tree does nothing. Set mouse = false (or :set mouse off) to hand selection back to the terminal.
Dragging while inserting follows Vim's -- (insert) VISUAL --: the selection remembers the insert session it came out of, and an operator or Esc hands typing back rather than dropping you in Normal. A second Esc leaves Insert as usual. The mode names itself once in the status line on the way in, and the caret takes the accent colour while the selection is live.
:u and :redo now work. Undo and redo were reachable only as u and Ctrl-r; :u fell through to not a command: u. All of Vim's abbreviations land — :u, :un, :und, :undo, and :red, :redo. :r and :re stay unclaimed, since :r is :read in Vim.
Shoin 0.1.3
Table rows no longer word-wrap: a row wider than the pane now stays on one line, clipped at the edge, instead of breaking its | columns across several ragged lines.
A new :help shortcuts page, bound to <leader>hl, lists every keyboard interaction — leader keys, : commands, navigation, and other keybindings — grouped by kind, on one page.