はじめに
iVimを使っているとスワイプでスクロールしたくなります。
指を2本使えばホイール相当の動きをしますが、スマホなら1本指でやりたいものです。
探してみると、マークのおもしろい使い方を見つけたので共有しておきます。
スクリプト
function! Swipe()"mark b is the current cursor position"mark a is the previous cursor position
normal mb
let currPos=line('.')
normal `alet prevPos=line('.')if currPos>prevPos
normal `bma
execute "normal! \<C-e>"elseif currPos<prevPos
normal `bma
execute "normal! \<C-y>"endifendfunction
map <silent><LeftDrag>ma<LeftMouse>:call Swipe()<CR>
解説
ほとんど参考そのままです。
ドラッグすると最初の位置をマーク(ma)した後<LeftMouse>を呼びます。
<LeftMouse>のデフォルト動作はカーソル移動なので、カーソルのある位置をマークできます(mb)。
最後に2つの行数を比べてスクロールします。