Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

縦横無尽に駆け回るvim(移動の話)

$
0
0

これは一番最初に覚えます

キー動作
h
j
k
l

ここら辺は初級レベルです。

キー動作
w単語の先頭へ進む
b単語の先頭へ戻る
0行の先頭へ
$行の末尾へ
<CR>次行にある最初の非空白文字へ
<C-f>次ページへ
<C-b>前ページへ
gg文書の先頭行へ(最初の非空白文字)
G文書の最終行へ(最初の非空白文字)
I行内最初の非空白文字でインサートモードとなる
A行末でインサートモードとなる
*カーソル下の単語を後方検索
#カーソル下の単語を前方検索
n検索を進める
N検索を戻る
%括弧間の移動

*#は単語検索となるので部分一致で検索したい場合は/[keyword]としよう。

Ex:ススメを*で検索してもヤマノススメは検索に引っかからない。

オススメの設定

vimrc
" matchit {{{
source $VIMRUNTIME/macros/matchit.vimletb:match_ignorecase =1" }}}
nmap <Tab> %
vmap <Tab> %

if/endなども%で移動できるようになるmatchitの読み込みです。
個人的に%が押しづらいため<Tab>にも割り当ています。

中級

キー動作
<C-d>半ページ次へ
<C-u>半ページ前へ
'{a-zA-Z}m{a-zA-Z}でマークしたポジションへジャンプ
gi最後に編集した位置でインサートモードとなる
ge単語の末尾へ
W単語の先頭へ進む(_:.などで繋がっているものも単語と見なす*1)
B単語の先頭に戻る(*1)
E単語の末尾へ(*1)
gE単語の末尾に戻る(*1)
f{*}行の末尾に向かってキーを検索
F{*}行の先頭に向かってキーを検索
t{*}行の末尾に向かってキーを検索(カーソルが検索文字の手前*2)
T{*}行の先頭に向かってキーを検索(*2)
;先頭に向かって繰り返して検索
,末尾に向かって繰り返して検索
<C-o>ジャンプした部分に戻る
<C-i>ジャンプした部分に戻る
g;変更履歴に戻る
g,変更履歴に進む

半ページ次へとか半ページ前へはあまり使ってないけど...
g,は私の設定上qfixhowmと競合していて使えないです。
というより変更履歴はgundoを使うので必要ないです。
ftはこの後述するEasyMotionがNOTります。

プラグインを使う

.vimrc
NeoBundle 'Lokaltog/vim-easymotion'" vim-easymotion {{{letg:EasyMotion_do_mapping =0
nmap s<Plug>(easymotion-s2)
xmap s<Plug>(easymotion-s2)
omap z <Plug>(easymotion-s2)
nmap g/ <Plug>(easymotion-sn)
xmap g/ <Plug>(easymotion-sn)
omap g/ <Plug>(easymotion-tn)letg:EasyMotion_smartcase =1
map <Leader>j<Plug>(easymotion-j)
map <Leader>k<Plug>(easymotion-k)letg:EasyMotion_startofline =0letg:EasyMotion_keys ='QZASDFGHJKL;'letg:EasyMotion_use_upper =1letg:EasyMotion_enter_jump_first =1letg:EasyMotion_space_jump_first =1hi EasyMotionTarget guifg=#80a0ff ctermfg=81" }}}

例によってNeoBundleを使います。
EasyMotion_keysは自分の押しやすいキーを指定します。
私がホームポジションあたり(+qz)しか自信がないことが露呈しましたww
EasyMotion_keysのキーが少ない場合、移動先の候補が多数あると2文字打たなければいけなかったりします。
個人的に打ち間違えて変なとこにジャンプしてイラッとするよりはいいかなと思います。
hiハイライトを変えている部分は何も設定しないと蛍光赤みたいな色だったので非常に見づらいため変えています。
なおhicolorschemeより後に書く必要があるようです。

ちなみに動作はこんな感じ

easymotion1.gif

s[AnyKey][AnyKey][EasyMotion_key]([EasyMotion_key])

easymotion2.gif

g/[Keyword][EasyMotion_key]([EasyMotion_key])

EasyMotion_key<CR><Space>を押すと最寄りの検索語にジャンプします。
画面内の移動は移動したいところの2文字を見て、s[key][key]と打ち、表示された[EasyMotion_key]でジャンプします。
またg/は[Keyword]を打っている間に検索で引っかかった単語の位置にジャンプするため、うろ覚えでも明確に検索できるので便利です。

まとめ

最終的にEasyMotionが最高すぎます。
初級編を覚えておけばvimライフで困ることはあまりないと思います。
上級がないのは仕様です。
なお赤が見づらいのは私が軽く色盲だからです。麻雀の赤ドラもたまに黒く見えます。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>