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

秀丸を10年使い続けた私が、MacVimと出会って困って訊いて調べて… 徒然備忘録

$
0
0

秀丸な10年間からの〜

秀丸で開発し続けて10年超。12年かな。
Windowsはもちろん、Unix系だってSMB経由で秀丸を使い続けてました。
当然、色々カスタムしたり…。

そんな私がMacで開発することになって、はや6ヶ月。
最初は「Macでも秀丸をなんとか、なんとか、できやしないか…」と思ったりしました。

MacVimとの出会い

開発チームでは、Vim派とEmacs派が半分。
1日ずつ触ってみた感じ、なんとなくVimかなと。
Unix系でviを少し触ってたしね。

もう一つVimに惹かれた大きな要因。
隣の席にはVimの秘孔をすべて知り尽くした重鎮が鎮座している。
彼の秘孔を突くスピード(ブラインドタッチ)に驚愕。
Vimで何でもやっちゃう豪腕は、まるでラオウ。
流れるキータッチは、まるでトキ。
Vimに注ぐ愛は、まるでケンシロウ。
使えないプラグインに対する言葉は、まるでジャギ。
ペアコーディングで隣で見てても、彼がMacVimでコードと向き合ってることしかわからず、いつの間にかデバッグか完了してしまっている。
要するに、そんな彼にあこがれて、MacVim伝承者になろうと決めたのでした。

一日も早くVim使いにならなくちゃならない状況

チームでは、

  • 朝会の議事録を
  • 持ち回りで
  • 各人のエディターで
  • みんなの見ている前で
  • スピーディーに書く

が、当たり前に行われていて、これが結構なプレッシャー。

知ってたこと

文字入力モード(インサートモード)そうじゃないモードがあること
hjklで上下左右にカーソルを動かすこと(でもカーソルを使う)
iaインサートモードになること
xで文字を削除すること
yyが行コピーすること(当然ヤンクという言葉も知らない)
pがペースト
:wqで保存終了
:q!で保存せずに強制終了
困ったらESC連打(ノーマルモードに移行)

行頭行末にカーソルを移動

WindowsではHomeEndPage UpPage 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-zCtrl-yです。

u:やり直し

アンドゥのuですね。わかりやすい。

ctrl-r:やり直しのやり直し

リドゥですね。
アンドゥとリドゥで、なぜctrlが付いたり付かなかったりするのか謎です。

最後に編集した行にジャンプ

秀丸ではCtrl-l
この機能はかなり重宝していました。これ無しでは生きていけない!

`.

でも↓の方を好んで使用してます。

g;

正確には「編集位置をさかのぼる」です。

画面の分割

秀丸は少しカスタムすると「ウインドウ分割上下」「ウインドウ分割左右」「ウインド
ウ切り替え」ができます。私は何かのキーに割り当ててました。

ctrl-ws:ウインドウ分割上下
ctrl-wv:ウインドウ分割左右
ctrl-ww:ウインドウ切り替え(次のウインドウに移動)
ctrl-wp:ウインドウ切り替え(前のウインドウに移動)

選択行の先頭に...

選択行の先頭にTABを入れたかったのです。
秀丸ではTABを入れたい行を選択し、Tabキーを押すだけ。

ctrl-vビジュアルモードの矩形選択
jなどカーソル移動でTABを入れたい行を選択
I(大文字)で行頭挿入開始し、Tabキーを押す。
escを押す。選択行の先頭に一気にTABがはいる。

当然Tabではなく//#で一気にコメントアウトだって可能。

ちなみに

=

でインデントが一気に揃います。
TAB挿入で本当にやりたかったことは、インデント揃えなので、これでできちゃう。

行頭行末に移動してインサートモード

上で少し記述してしまいましたが…

I:行頭に移動してインサートモード
A:行末に移動してインサートモード

行末までカット

ついでに

D(大文字):カーソル位置から行末までカット
C(大文字):カーソル位置から行末までカットしてインサートモード

小文字<->大文字 変換

秀丸では右クリックメニューにあるTO UPPER CASElower case
Vimを使用するようになってから、意外にこの機能を利用してたことに気づきました。

~:カーソル下の文字の大/小文字を反転し、カーソルを右に進める
ビジュアルモードで選択してU:大文字変換
ビジュアルモードで選択してu:小文字変換

インクリメント/デクリメント

朝会の議事録などを書いていると、27日を28日に書き換えたりします。

数字の上でctrl-a:インクリメント
数字の上でctrl-x:デクリメント

これを知った時、なんじゃこりゃ〜って、ちょっと感動。

これから調べること

  • grep

Viewing all articles
Browse latest Browse all 5608

Trending Articles



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