秀丸な10年間からの〜
秀丸で開発し続けて10年超。12年かな。
Windowsはもちろん、Unix系だってSMB経由で秀丸を使い続けてました。
当然、色々カスタムしたり…。
そんな私がMacで開発することになって、はや6ヶ月。
最初は「Macでも秀丸をなんとか、なんとか、できやしないか…」と思ったりしました。
MacVimとの出会い
開発チームでは、Vim派とEmacs派が半分。
1日ずつ触ってみた感じ、なんとなくVimかなと。
Unix系でviを少し触ってたしね。
もう一つVimに惹かれた大きな要因。
隣の席にはVimの秘孔をすべて知り尽くした重鎮が鎮座している。
彼の秘孔を突くスピード(ブラインドタッチ)に驚愕。
Vimで何でもやっちゃう豪腕は、まるでラオウ。
流れるキータッチは、まるでトキ。
Vimに注ぐ愛は、まるでケンシロウ。
使えないプラグインに対する言葉は、まるでジャギ。
ペアコーディングで隣で見てても、彼がMacVimでコードと向き合ってることしかわからず、いつの間にかデバッグか完了してしまっている。
要するに、そんな彼にあこがれて、MacVim伝承者になろうと決めたのでした。
一日も早くVim使いにならなくちゃならない状況
チームでは、
- 朝会の議事録を
- 持ち回りで
- 各人のエディターで
- みんなの見ている前で
- スピーディーに書く
が、当たり前に行われていて、これが結構なプレッシャー。
知ってたこと
文字入力モード(インサートモード)
とそうじゃないモード
があることh
j
k
l
で上下左右にカーソルを動かすこと(でもカーソルを使う)i
a
でインサートモード
になることx
で文字を削除することyy
が行コピーすること(当然ヤンク
という言葉も知らない)p
がペースト:wq
で保存終了:q!
で保存せずに強制終了
困ったらESC
連打(ノーマルモードに移行)
行頭行末にカーソルを移動
WindowsではHome
End
Page Up
Page Down
を重宝してました。
0
:行頭へジャンプ$
:行末へジャンプctrl-u
:半画面上へctrl-d
:半画面下へgg
:ファイル先頭へG
:ファイル末尾へ
最初、カーソル移動やコピペするのにも全く指が動かず、ストレスと肩こりが本当にひどかったことも
良い思い出です。
オペレータとモーション
北斗Vim拳伝承者が私に最初に教えてくれたこと
「オペレータとモーションを組み合わせてバリバリ編集するのがVimmerのはじめの一
歩」
オペレータの例
c
:変更d
:削除y
:ヤンク(コピー)
なのでy
$
でカーソル位置から行末までコピーできちゃう。
範囲選択
実はこれが一番最初に知りたくなった機能です。
秀丸(というか一般的に)はshiftキー + カーソルキー
での範囲選択できるのに、Vimは?
v
後に知るのですが、これはビジュアルモード
への切り替えです。
せっかくなので
shift-v
:ビジュアルモードで行選択ctrl-v
:ビジュアルモードで矩形選択
検索
これも一般的にはctrl-f
のような感じでできるのに、Vimは?
/
:検索単語を指定して、n
で次の単語、N
で前の単語に移動*
:カーソルがある箇所の単語を検索してくれて、ハイライトもしてくれる
でも、用が済んだらハイライトが邪魔になります。
秀丸なんかはESC
を押せば解決なんですが、Vimは?
:noh
:ハイライトが消える
行削除
秀丸ではCtrl + Enter
で行削除ですが、Vimでは?
dd
これ、本当は削除ではなくカット。
そして、dd
は基本コマンド。らしいです。
「Emacs使いでも知ってる」と言われてしまいました。
空行挿入
秀丸ではShift + Enter
o
空行挿入してすぐにインサートモードになります。
たくさん空行挿入したい時に、連打してしまう癖が抜けません。一長一短。
O
(大文字) :今いる行の前に行挿入します。
「やり直し」と「やり直しのやり直し」
一般的にはCtrl-z
やCtrl-y
です。
u
:やり直し
アンドゥのuですね。わかりやすい。
ctrl-r
:やり直しのやり直し
リドゥですね。
アンドゥとリドゥで、なぜctrlが付いたり付かなかったりするのか謎です。
最後に編集した行にジャンプ
秀丸ではCtrl-l
。
この機能はかなり重宝していました。これ無しでは生きていけない!
`
.
でも↓の方を好んで使用してます。
g
;
正確には「編集位置をさかのぼる」です。
画面の分割
秀丸は少しカスタムすると「ウインドウ分割上下」「ウインドウ分割左右」「ウインド
ウ切り替え」ができます。私は何かのキーに割り当ててました。
ctrl-w
s
:ウインドウ分割上下ctrl-w
v
:ウインドウ分割左右ctrl-w
w
:ウインドウ切り替え(次のウインドウに移動)ctrl-w
p
:ウインドウ切り替え(前のウインドウに移動)
選択行の先頭に...
選択行の先頭にTABを入れたかったのです。
秀丸ではTABを入れたい行を選択し、Tab
キーを押すだけ。
ctrl-v
ビジュアルモードの矩形選択j
などカーソル移動でTABを入れたい行を選択I
(大文字)で行頭挿入開始し、Tab
キーを押す。esc
を押す。選択行の先頭に一気にTABがはいる。
当然Tab
ではなく//
や#
で一気にコメントアウトだって可能。
ちなみに
=
でインデントが一気に揃います。
TAB挿入で本当にやりたかったことは、インデント揃えなので、これでできちゃう。
行頭行末に移動してインサートモード
上で少し記述してしまいましたが…
I
:行頭に移動してインサートモードA
:行末に移動してインサートモード
行末までカット
ついでに
D
(大文字):カーソル位置から行末までカットC
(大文字):カーソル位置から行末までカットしてインサートモード
小文字<->大文字 変換
秀丸では右クリックメニューにあるTO UPPER CASE
やlower case
Vimを使用するようになってから、意外にこの機能を利用してたことに気づきました。
~
:カーソル下の文字の大/小文字を反転し、カーソルを右に進める
ビジュアルモードで選択してU
:大文字変換
ビジュアルモードで選択してu
:小文字変換
インクリメント/デクリメント
朝会の議事録などを書いていると、27日を28日に書き換えたりします。
数字の上で
ctrl-a
:インクリメント
数字の上でctrl-x
:デクリメント
これを知った時、なんじゃこりゃ〜って、ちょっと感動。
これから調べること
- grep