メニューを閉じる

テクノデジタルグループ

メニューを開く

2015.05.29

開発環境・ツール

Vim 便利な操作方法

こんにちは、KTです。

最近、プログラムにはVimを使ってるんですけど、周りに勧めても変な目で見られるだけなので、

Vimの地位向上のために特別な設定無しで使えるVimの機能を紹介していこうかと思います。

Linuxのサーバ上のソースなんかを触るときとかに覚えとくと便利ですよ!

 

・繰り返し

一回行った動作を複数回繰り返したいってことありますよね。

Vimでは標準でその機能が搭載されています。ノーマルモードで「.」を押すだけで、直前の動作を繰り返し実行してくれます。

 

・置換で改行

Vimでは、置換は :%s/置換前/置換後/g コマンドで行いますが、置換後に改行をしたい場合は下記のようにします。

:%s/置換前/置換後^M/g

※ ^M の位置に改行が挿入されます。

※ ^M は、 Ctrl+v → Ctrl+m で入力します(Ctrl押したままv, mを続けて入力)

※ Macでのみ確認しています。LinuxとかWindowsは分からないです。

 

・ソース整形

eclipseでいうフォーマッタ機能が、Vimには標準で搭載されています。

整形するのも簡単で、Shift + vで行選択モードになり、整形したい範囲を選択した状態で=を押すだけです。

ソース全体を整形したければ、ggVG= でOK。

ggでファイルの先頭に移動してV (Shift + v)で行選択モードになりG (Shift + g)でファイル末尾まで選択して=で整形。

 

・数値のインクリメント/デクリメント

Vimでは、Ctrl + a でカーソル位置の数値をインクリメント、Ctrl + x でデクリメントできます。

CSSなんかで、幅を微調整するときなんかに便利ですね。

ちなみに、先に任意の数字を入力しておくと、その数分インクリメント、デクリメントできるので、

10(Ctrl + a)とすることでカーソル位置の数値を10インクリメントすることもできます。

 

※ なお、注意点としては、先頭に0があると8進数とみなしてしまうので、007をインクリメントすると010になってしまいます。

事前に

:set nrformats=

とコマンドを実行しておくことで回避できます。

 

・テキストオブジェクト

※ 長々と説明しちゃってるので、よく使うコマンドのみ知りたい方は説明すっとばしてもOK

文字列を、単語毎じゃなくて特定の単位で操作したいことって結構ありますよね?

例えば、「括弧の中全部」や「シングル/ダブルクォーテーションで囲われた範囲」なんかをコピーしたり切り取ったり。

Vimでは、↑で書いたような、任意の単位で文字列を扱う機能が標準でサポートされています!

その機能を使うためのコマンドは(基本的には)たった3文字。例えば vi” や yat のような感じ。

 

1文字目→何をしたいのか(v:選択、y:コピー、d:削除、c:置換 等々)

2文字目→3文字目で指定した範囲の内側/外側指定。 i か a の2種類のみ(i:内側、a:外側)

3文字目→範囲指定。特定のアルファベット、開き括弧、クォーテーション等を指定可能。

開き括弧を指定するとその括弧が範囲となる。例:[ を指定→[〜]で囲われた範囲

特定のアルファベットは、例えば w:単語、t:HTMLタグ 等々

 

– テキストオブジェクトでよく使うコマンド

・ ciw

現在のカーソル位置の単語を置換(削除して挿入モード)

・ ci”, ca”

現在のカーソル位置の”〜”で囲われた範囲(ca”の場合は”も含む)を置換

・ ci(, ca(

現在のカーソル位置の(〜)で囲われた範囲(ca(の場合は(も含む)を置換

・ cit, cat

現在のカーソル位置のHTMLタグの中(catの場合はHTMLタグも含む)を置換

だいたい使うのはこんなところです。

なお、上で述べた通り、cをvにすれば選択、dにすれば削除、yにすればコピーします。

(ちなみに、なぜコピーなのにyなのか。Vimではコピーのことをyankと呼ぶからです)

ね、簡単でしょう?


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事