LoginSignup
1
2

More than 5 years have passed since last update.

Vimでスワイプしたい

Last updated at Posted at 2018-04-20

はじめに

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 `a
    let prevPos=line('.')
    if currPos>prevPos
        normal `bma
        execute "normal! \<C-e>"
    elseif currPos<prevPos
        normal `bma
        execute "normal! \<C-y>"
    endif
endfunction

map <silent> <LeftDrag> ma<LeftMouse>:call Swipe()<CR>

解説

ほとんど参考そのままです。
ドラッグすると最初の位置をマーク(ma)した後<LeftMouse>を呼びます。
<LeftMouse>のデフォルト動作はカーソル移動なので、カーソルのある位置をマークできます(mb)。
最後に2つの行数を比べてスクロールします。

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2